Merge "hal: Separate out USB 32 bit 6ch recording policy support"
diff --git a/configs/msmsteppe/mixer_paths_idp.xml b/configs/msmsteppe/mixer_paths_idp.xml
index 83951cf..e3ce36e 100644
--- a/configs/msmsteppe/mixer_paths_idp.xml
+++ b/configs/msmsteppe/mixer_paths_idp.xml
@@ -296,6 +296,8 @@
<ctl name="RX INT1 DEM MUX" value="NORMAL_DSM_OUT" />
<ctl name="RX_COMP1 Switch" value="0" />
<ctl name="RX_COMP2 Switch" value="0" />
+ <ctl name="HPHL_COMP Switch" value="0" />
+ <ctl name="HPHR_COMP Switch" value="0" />
<ctl name="EAR_RDAC Switch" value="0" />
<ctl name="HPHL_RDAC Switch" value="0" />
<ctl name="HPHR_RDAC Switch" value="0" />
@@ -2056,6 +2058,8 @@
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX_COMP1 Switch" value="1" />
<ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHR_COMP Switch" value="1" />
<ctl name="HPHL_RDAC Switch" value="1" />
<ctl name="HPHR_RDAC Switch" value="1" />
</path>
@@ -2103,7 +2107,15 @@
</path>
<path name="voice-headphones">
- <path name="headphones" />
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX_CDC_DMA_RX_0 Channels" value="Two" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
</path>
<path name="voice-line">
@@ -2291,6 +2303,7 @@
<ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
<ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
<ctl name="HPHL_RDAC Switch" value="1" />
</path>
diff --git a/configs/msmsteppe/msmsteppe.mk b/configs/msmsteppe/msmsteppe.mk
index dc4df7a..0ff9e8b 100644
--- a/configs/msmsteppe/msmsteppe.mk
+++ b/configs/msmsteppe/msmsteppe.mk
@@ -84,6 +84,7 @@
hardware/qcom/audio/configs/msmsteppe/audio_platform_info_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_qrd.xml \
hardware/qcom/audio/configs/msmsteppe/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \
hardware/qcom/audio/configs/msmsteppe/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
+ hardware/qcom/audio/configs/msmsteppe/sound_trigger_mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_qrd.xml \
hardware/qcom/audio/configs/msmsteppe/mixer_paths_idp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_idp.xml \
hardware/qcom/audio/configs/msmsteppe/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
hardware/qcom/audio/configs/msmsteppe/mixer_paths_tavil.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil.xml \
@@ -228,4 +229,10 @@
android.hardware.audio@2.0-service \
android.hardware.audio@2.0-impl \
android.hardware.audio.effect@2.0-impl \
- android.hardware.soundtrigger@2.1-impl
+ android.hardware.soundtrigger@2.1-impl \
+ android.hardware.audio@4.0 \
+ android.hardware.audio.common@4.0 \
+ android.hardware.audio.common@4.0-util \
+ android.hardware.audio@4.0-impl \
+ android.hardware.audio.effect@4.0 \
+ android.hardware.audio.effect@4.0-impl
diff --git a/configs/msmsteppe/sound_trigger_mixer_paths.xml b/configs/msmsteppe/sound_trigger_mixer_paths.xml
index bd114de..441e1c2 100644
--- a/configs/msmsteppe/sound_trigger_mixer_paths.xml
+++ b/configs/msmsteppe/sound_trigger_mixer_paths.xml
@@ -58,6 +58,10 @@
<ctl name="TX DMIC MUX2" value="ZERO" />
<ctl name="TX DEC3 MUX" value="MSM_DMIC" />
<ctl name="TX DMIC MUX3" value="ZERO" />
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="None"/>
+ <ctl name="EC Reference Channels" value="Zero"/>
+ <ctl name="EC Reference Bit Format" value="0"/>
+ <ctl name="EC Reference SampleRate" value="0"/>
<path name="listen-voice-wakeup-1">
<ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
@@ -202,5 +206,11 @@
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
+ <path name="echo-reference a2dp">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
</mixer>
diff --git a/configs/msmsteppe/sound_trigger_mixer_paths_qrd.xml b/configs/msmsteppe/sound_trigger_mixer_paths_qrd.xml
new file mode 100644
index 0000000..954780a
--- /dev/null
+++ b/configs/msmsteppe/sound_trigger_mixer_paths_qrd.xml
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--- Copyright (c) 2014-2018, The Linux Foundation. All rights reserved. -->
+<!--- -->
+<!--- Redistribution and use in source and binary forms, with or without -->
+<!--- modification, are permitted provided that the following conditions are -->
+<!--- met: -->
+<!--- * Redistributions of source code must retain the above copyright -->
+<!--- notice, this list of conditions and the following disclaimer. -->
+<!--- * Redistributions in binary form must reproduce the above -->
+<!--- copyright notice, this list of conditions and the following -->
+<!--- disclaimer in the documentation and/or other materials provided -->
+<!--- with the distribution. -->
+<!--- * Neither the name of The Linux Foundation nor the names of its -->
+<!--- contributors may be used to endorse or promote products derived -->
+<!--- from this software without specific prior written permission. -->
+<!--- -->
+<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
+<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
+<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
+<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
+<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
+<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
+<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
+<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
+<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
+<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
+<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+
+<mixer>
+ <!-- These are the initial mixer settings -->
+ <ctl name="LSM1 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="LSM2 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="LSM3 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="LSM4 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="LSM5 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="LSM6 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="LSM7 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="LSM8 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="None" />
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="TX DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX0" value="ZERO" />
+ <ctl name="TX SMIC MUX0" value="ZERO" />
+ <ctl name="TX DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX1" value="ZERO" />
+ <ctl name="TX SMIC MUX1" value="ZERO" />
+ <ctl name="TX DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX2" value="ZERO" />
+ <ctl name="TX DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX3" value="ZERO" />
+ <ctl name="ADC1_MIXER Switch" value="0" />
+ <ctl name="ADC2_MIXER Switch" value="0" />
+ <ctl name="ADC2 MUX" value="ZERO" />
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="None"/>
+ <ctl name="EC Reference Channels" value="Zero"/>
+ <ctl name="EC Reference Bit Format" value="0"/>
+ <ctl name="EC Reference SampleRate" value="0"/>
+
+ <path name="listen-voice-wakeup-1">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM1 Port" value="TX_CDC_DMA_TX_3" />
+ <ctl name="LSM1 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-2">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM2 Port" value="TX_CDC_DMA_TX_3" />
+ <ctl name="LSM2 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-3">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM3 Port" value="TX_CDC_DMA_TX_3" />
+ <ctl name="LSM3 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-4">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM4 Port" value="TX_CDC_DMA_TX_3" />
+ <ctl name="LSM4 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-5">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM5 Port" value="TX_CDC_DMA_TX_3" />
+ <ctl name="LSM5 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-6">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM6 Port" value="TX_CDC_DMA_TX_3" />
+ <ctl name="LSM6 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-7">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM7 Port" value="TX_CDC_DMA_TX_3" />
+ <ctl name="LSM7 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-8">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM8 Port" value="TX_CDC_DMA_TX_3" />
+ <ctl name="LSM8 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-1 preproc">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM1 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM1 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-2 preproc">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM2 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM2 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-3 preproc">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM3 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM3 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-4 preproc">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM4 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM4 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-5 preproc">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM5 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM5 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-6 preproc">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM6 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM6 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-7 preproc">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM7 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM7 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-8 preproc">
+ <ctl name="TX_CDC_DMA_TX_3 LSM Function" value="SWAUDIO" />
+ <ctl name="LSM8 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM8 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="listen-ape-handset-mic">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="ADC0" />
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="listen-ape-handset-mic-preproc">
+ <path name="listen-ape-handset-mic"/>
+ </path>
+
+ <path name="listen-ape-handset-dmic">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="ADC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="ADC2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ </path>
+
+ <path name="listen-ape-handset-tmic">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="Three" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="listen-ape-handset-qmic">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="Four" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC0" />
+ </path>
+
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+ <path name="echo-reference a2dp">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+</mixer>
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index e8da091..0b7fee6 100755
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -3226,6 +3226,22 @@
return ret;
}
+static bool check_snd_device_is_speaker(snd_device_t snd_device)
+{
+ bool ret = false;
+
+ if (snd_device == SND_DEVICE_OUT_SPEAKER ||
+ snd_device == SND_DEVICE_OUT_SPEAKER_WSA ||
+ snd_device == SND_DEVICE_OUT_SPEAKER_VBAT ||
+ snd_device == SND_DEVICE_OUT_SPEAKER_PROTECTED ||
+ snd_device == SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT ||
+ snd_device == SND_DEVICE_OUT_SPEAKER_PROTECTED_RAS ||
+ snd_device == SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT_RAS) {
+ ret = true;
+ }
+ return ret;
+}
+
int check_hdset_combo_device(snd_device_t snd_device)
{
int ret = false;
@@ -6409,7 +6425,12 @@
backend_cfg.bit_width = usecase->stream.out->bit_width;
backend_cfg.sample_rate = usecase->stream.out->sample_rate;
backend_cfg.format = usecase->stream.out->format;
- backend_cfg.channels = audio_channel_count_from_out_mask(usecase->stream.out->channel_mask);
+ if (!(hw_info_is_stereo_spkr(my_data->hw_info)) &&
+ check_snd_device_is_speaker(snd_device))
+ backend_cfg.channels = 1;
+ else
+ backend_cfg.channels =
+ audio_channel_count_from_out_mask(usecase->stream.out->channel_mask);
}
if (audio_extn_is_dsp_bit_width_enforce_mode_supported(usecase->stream.out->flags) &&
(adev->dsp_bit_width_enforce_mode > backend_cfg.bit_width))
diff --git a/post_proc/Android.mk b/post_proc/Android.mk
index a91f479..b7d97c0 100644
--- a/post_proc/Android.mk
+++ b/post_proc/Android.mk
@@ -39,6 +39,10 @@
LOCAL_SRC_FILES += asphere.c
endif
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_INSTANCE_ID)), true)
+ LOCAL_CFLAGS += -DINSTANCE_ID_ENABLED
+endif
+
LOCAL_CFLAGS+= -O2 -fvisibility=hidden
ifneq ($(strip $(AUDIO_FEATURE_DISABLED_DTS_EAGLE)),true)
@@ -118,10 +122,6 @@
LOCAL_CFLAGS += -DHW_ACC_HPX
endif
-ifeq ($(strip $(AUDIO_FEATURE_ENABLED_INSTANCE_ID)), true)
- LOCAL_CFLAGS += -DINSTANCE_ID_ENABLED
-endif
-
LOCAL_MODULE:= libhwacceffectswrapper
LOCAL_VENDOR_MODULE := true