Merge "hal: Pick correct platform info for scuba IDP and QRD"
diff --git a/configs/holi/audio_platform_info_qrd.xml b/configs/holi/audio_platform_info_qrd.xml
index bf38a05..2d51fc3 100644
--- a/configs/holi/audio_platform_info_qrd.xml
+++ b/configs/holi/audio_platform_info_qrd.xml
@@ -109,7 +109,7 @@
<param key="hifi_filter" value="false"/>
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="hfp_pcm_dev_id" value="39"/>
- <param key="input_mic_max_count" value="4"/>
+ <param key="input_mic_max_count" value="2"/>
</config_params>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
diff --git a/configs/holi/mixer_paths_qrd.xml b/configs/holi/mixer_paths_qrd.xml
index 9b7a3c0..c328d66 100644
--- a/configs/holi/mixer_paths_qrd.xml
+++ b/configs/holi/mixer_paths_qrd.xml
@@ -3445,7 +3445,7 @@
</path>
<path name="speaker-mic">
- <path name="amic3" />
+ <path name="amic1" />
</path>
<path name="speaker-protected">
@@ -3685,7 +3685,7 @@
</path>
<!-- Dual MIC devices -->
- <path name="handset-dmic-endfire">
+ <path name="speaker-dmic-endfire">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
<ctl name="TX DEC1 MUX" value="SWR_MIC" />
<ctl name="TX SMIC MUX1" value="SWR_MIC0" />
@@ -3700,7 +3700,7 @@
<ctl name="ADC2 MUX" value="INP3" />
</path>
- <path name="speaker-dmic-endfire">
+ <path name="handset-dmic-endfire">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
<ctl name="TX DEC1 MUX" value="SWR_MIC" />
<ctl name="TX SMIC MUX1" value="SWR_MIC4" />
diff --git a/configs/holi/sound_trigger_mixer_paths.xml b/configs/holi/sound_trigger_mixer_paths.xml
index a97883c..ab8455e 100644
--- a/configs/holi/sound_trigger_mixer_paths.xml
+++ b/configs/holi/sound_trigger_mixer_paths.xml
@@ -270,6 +270,31 @@
<ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
</path>
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_1" />
+ <ctl name="EC Reference Channels" value="One"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+ <path name="echo-reference handset">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="One"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_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 headset">
+ <path name="echo-reference headphones" />
+ </path>
+
<path name="echo-reference a2dp">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX"/>
<ctl name="EC Reference Channels" value="Two"/>
diff --git a/configs/holi/sound_trigger_mixer_paths_qrd.xml b/configs/holi/sound_trigger_mixer_paths_qrd.xml
index f1ca51f..089ee7a 100644
--- a/configs/holi/sound_trigger_mixer_paths_qrd.xml
+++ b/configs/holi/sound_trigger_mixer_paths_qrd.xml
@@ -250,12 +250,13 @@
</path>
<path name="listen-ape-handset-mic">
+ <ctl name="VA_CDC_DMA_TX_0 Channels" value="One" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA DEC0 MUX" value="SWR_MIC" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC0" />
- <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
- <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" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC2 MUX" value="INP3" />
</path>
<path name="listen-ape-handset-mic-preproc">
@@ -267,16 +268,14 @@
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="VA DEC0 MUX" value="SWR_MIC" />
- <ctl name="VA SMIC MUX0" value="SWR_MIC0" />
- <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
- <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" />
- <ctl name="VA DEC1 MUX" value="SWR_MIC" />
- <ctl name="VA SMIC MUX1" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
<ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC0" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
</path>
<path name="listen-ape-handset-tmic">
@@ -318,6 +317,31 @@
<ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
</path>
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_1" />
+ <ctl name="EC Reference Channels" value="One"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+ <path name="echo-reference handset">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="One"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_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 headset">
+ <path name="echo-reference headphones" />
+ </path>
+
<path name="echo-reference a2dp">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX"/>
<ctl name="EC Reference Channels" value="Two"/>
diff --git a/configs/holi/sound_trigger_platform_info.xml b/configs/holi/sound_trigger_platform_info.xml
index 3c35eb2..4f13869 100644
--- a/configs/holi/sound_trigger_platform_info.xml
+++ b/configs/holi/sound_trigger_platform_info.xml
@@ -50,7 +50,7 @@
<!-- Param used to match and obtain device backend index -->
<param backend_dai_name="VA_CDC_DMA_TX_0" />
<!-- Param used to indicate if SVA has dedicated SLIM ports -->
- <param dedicated_sva_path="true" />
+ <param dedicated_sva_path="false" />
<param dedicated_headset_path="false" />
<param platform_lpi_enable="true" />
<param enable_debug_dumps="false" />
@@ -138,7 +138,7 @@
<param lpi_mode="NON_LPI_BARGE_IN" />
<param app_type="2" /> <!-- app type used in ACDB -->
<param pdk5_app_type="5" />
- <param in_channels="3"/> <!-- Module input channels -->
+ <param in_channels="2"/> <!-- Module input channels -->
<module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0x00012C1C, 0x0, 0x00012C14" />
diff --git a/configs/lahaina/mixer_paths.xml b/configs/lahaina/mixer_paths.xml
index 7f77f18..237b256 100644
--- a/configs/lahaina/mixer_paths.xml
+++ b/configs/lahaina/mixer_paths.xml
@@ -359,6 +359,7 @@
<ctl name="ADC2_BCS Disable" value="0" />
<ctl name="ADC3 MUX" value="INP4" />
<ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="TX LPI Enable" value="0" />
<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" />
@@ -514,6 +515,10 @@
<ctl name="GSM mode Enable" value="ON" />
</path>
+ <path name="tx-lpi-enable">
+ <ctl name="TX LPI Enable" value="1" />
+ </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"/>
diff --git a/configs/lahaina/mixer_paths_cdp.xml b/configs/lahaina/mixer_paths_cdp.xml
index bd4ddd6..faeb34d 100644
--- a/configs/lahaina/mixer_paths_cdp.xml
+++ b/configs/lahaina/mixer_paths_cdp.xml
@@ -346,6 +346,7 @@
<ctl name="ADC2_BCS Disable" value="0" />
<ctl name="ADC3 MUX" value="INP4" />
<ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="TX LPI Enable" value="0" />
<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" />
@@ -501,6 +502,10 @@
<ctl name="GSM mode Enable" value="ON" />
</path>
+ <path name="tx-lpi-enable">
+ <ctl name="TX LPI Enable" value="1" />
+ </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"/>
diff --git a/configs/lahaina/mixer_paths_qrd.xml b/configs/lahaina/mixer_paths_qrd.xml
index 10b7768..88d2ae0 100644
--- a/configs/lahaina/mixer_paths_qrd.xml
+++ b/configs/lahaina/mixer_paths_qrd.xml
@@ -355,6 +355,7 @@
<ctl name="ADC2_BCS Disable" value="0" />
<ctl name="ADC3 MUX" value="INP4" />
<ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="TX LPI Enable" value="0" />
<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" />
@@ -506,6 +507,10 @@
<ctl name="GSM mode Enable" value="ON" />
</path>
+ <path name="tx-lpi-enable">
+ <ctl name="TX LPI Enable" value="1" />
+ </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"/>
diff --git a/configs/lahaina/mixer_paths_shimaqrd.xml b/configs/lahaina/mixer_paths_shimaqrd.xml
index f0bc069..a5edd21 100644
--- a/configs/lahaina/mixer_paths_shimaqrd.xml
+++ b/configs/lahaina/mixer_paths_shimaqrd.xml
@@ -2692,11 +2692,11 @@
</path>
<path name="speaker-mic">
- <path name="dmic5" />
+ <path name="dmic6" />
</path>
<path name="speaker-mic-liquid">
- <path name="dmic5" />
+ <path name="dmic6" />
</path>
<path name="speaker-mic-sbc">
@@ -2994,15 +2994,15 @@
<path name="handset-dmic-endfire">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC4" />
+ <ctl name="TX DMIC MUX1" value="DMIC1" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX DMIC MUX2" value="DMIC5" />
</path>
<path name="speaker-dmic-endfire">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC2" />
+ <ctl name="TX DMIC MUX1" value="DMIC5" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="TX DMIC MUX2" value="DMIC1" />
</path>
@@ -3075,7 +3075,7 @@
<path name="speaker-dmic-broadside">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC3" />
+ <ctl name="TX DMIC MUX1" value="DMIC5" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="TX DMIC MUX2" value="DMIC1" />
</path>
@@ -3093,21 +3093,21 @@
<path name="three-mic">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Three" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC2" />
+ <ctl name="TX DMIC MUX1" value="DMIC1" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
<ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
- <ctl name="TX DMIC MUX3" value="DMIC3" />
+ <ctl name="TX DMIC MUX3" value="DMIC5" />
</path>
<path name="speaker-tmic">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Three" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC4" />
+ <ctl name="TX DMIC MUX1" value="DMIC5" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="TX DMIC MUX2" value="DMIC1" />
<ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
- <ctl name="TX DMIC MUX3" value="DMIC2" />
+ <ctl name="TX DMIC MUX3" value="DMIC3" />
</path>
<path name="voice-speaker-tmic">
@@ -3118,13 +3118,13 @@
<path name="speaker-qmic">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Four" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC4" />
+ <ctl name="TX DMIC MUX1" value="DMIC5" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX DMIC MUX2" value="DMIC2" />
<ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
<ctl name="TX DMIC MUX3" value="DMIC3" />
<ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
- <ctl name="TX DMIC MUX4" value="DMIC2" />
+ <ctl name="TX DMIC MUX4" value="DMIC1" />
</path>
<path name="speaker-qmic-liquid">
diff --git a/configs/lahaina/sound_trigger_mixer_paths.xml b/configs/lahaina/sound_trigger_mixer_paths.xml
index bd5587f..5823598 100644
--- a/configs/lahaina/sound_trigger_mixer_paths.xml
+++ b/configs/lahaina/sound_trigger_mixer_paths.xml
@@ -354,18 +354,28 @@
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
- <path name="echo-reference headset">
- <ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0"/>
+ <path name="echo-reference handset">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0" />
<ctl name="EC Reference Channels" value="One"/>
<ctl name="EC Reference Bit Format" value="S16_LE"/>
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_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 headset">
+ <path name="echo-reference headphones" />
+ </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/lahaina/sound_trigger_mixer_paths_qrd.xml b/configs/lahaina/sound_trigger_mixer_paths_qrd.xml
index f4e4ce8..099845c 100644
--- a/configs/lahaina/sound_trigger_mixer_paths_qrd.xml
+++ b/configs/lahaina/sound_trigger_mixer_paths_qrd.xml
@@ -314,18 +314,28 @@
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
- <path name="echo-reference headset">
+ <path name="echo-reference handset">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
<ctl name="EC Reference Bit Format" value="S16_LE"/>
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_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 headset">
+ <path name="echo-reference headphones" />
+ </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/lahaina/sound_trigger_mixer_paths_shimaidp.xml b/configs/lahaina/sound_trigger_mixer_paths_shimaidp.xml
index fcf5a7e..04781a8 100644
--- a/configs/lahaina/sound_trigger_mixer_paths_shimaidp.xml
+++ b/configs/lahaina/sound_trigger_mixer_paths_shimaidp.xml
@@ -339,13 +339,24 @@
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
- <path name="echo-reference headset">
+ <path name="echo-reference handset">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
<ctl name="EC Reference Bit Format" value="S16_LE"/>
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_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 headset">
+ <path name="echo-reference headphones" />
+ </path>
+
<path name="echo-reference a2dp">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX"/>
<ctl name="EC Reference Channels" value="Two"/>
diff --git a/configs/lahaina/sound_trigger_mixer_paths_shimaidps.xml b/configs/lahaina/sound_trigger_mixer_paths_shimaidps.xml
index 9064c69..654bfa2 100644
--- a/configs/lahaina/sound_trigger_mixer_paths_shimaidps.xml
+++ b/configs/lahaina/sound_trigger_mixer_paths_shimaidps.xml
@@ -310,13 +310,24 @@
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
- <path name="echo-reference headset">
+ <path name="echo-reference handset">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
<ctl name="EC Reference Bit Format" value="S16_LE"/>
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_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 headset">
+ <path name="echo-reference headphones" />
+ </path>
+
<path name="echo-reference a2dp">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX"/>
<ctl name="EC Reference Channels" value="Two"/>
diff --git a/configs/lahaina/sound_trigger_mixer_paths_shimaqrd.xml b/configs/lahaina/sound_trigger_mixer_paths_shimaqrd.xml
index ee0074a..c8e9c07 100644
--- a/configs/lahaina/sound_trigger_mixer_paths_shimaqrd.xml
+++ b/configs/lahaina/sound_trigger_mixer_paths_shimaqrd.xml
@@ -255,6 +255,7 @@
</path>
<path name="listen-ape-handset-mic">
+ <ctl name="VA_CDC_DMA_TX_0 Channels" value="One" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC1" />
@@ -271,7 +272,7 @@
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DEC1 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC1" />
- <ctl name="VA DMIC MUX1" value="DMIC2" />
+ <ctl name="VA DMIC MUX1" value="DMIC5" />
</path>
<path name="listen-ape-handset-tmic">
@@ -283,7 +284,7 @@
<ctl name="VA DEC1 MUX" value="MSM_DMIC" />
<ctl name="VA DEC2 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC1" />
- <ctl name="VA DMIC MUX1" value="DMIC2" />
+ <ctl name="VA DMIC MUX1" value="DMIC3" />
<ctl name="VA DMIC MUX2" value="DMIC5" />
</path>
@@ -306,10 +307,16 @@
<path name="listen-ape-headset-mic">
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA DEC0 MUX" value="SWR_MIC" />
- <ctl name="VA SMIC MUX0" value="ADC1" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC1" />
+ <ctl name="VA_CDC_DMA_TX_0 Channels" value="One" />
+ <ctl name="DEC0_BCS Switch" value="1" />
+ <ctl name="TX_AIF2_CAP Mixer DEC0" value="1" />
<ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP2" />
- <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX1_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX2_CH3" />
+ <ctl name="BCS Channel" value="CH2" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
</path>
<path name="echo-reference">
@@ -319,13 +326,24 @@
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
- <path name="echo-reference headset">
+ <path name="echo-reference handset">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
<ctl name="EC Reference Bit Format" value="S16_LE"/>
<ctl name="EC Reference SampleRate" value="48000"/>
</path>
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_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 headset">
+ <path name="echo-reference headphones" />
+ </path>
+
<path name="echo-reference a2dp">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX"/>
<ctl name="EC Reference Channels" value="Two"/>
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index a236f2c..9d9cb7b 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1307,6 +1307,8 @@
platform_set_island_cfg_on_device(adev, usecase->in_snd_device, false);
platform_set_power_mode_on_device(adev, usecase->in_snd_device, false);
platform_reset_island_power_status(adev->platform, usecase->in_snd_device);
+ if (voice_is_lte_call_active(adev))
+ platform_set_tx_lpi_mode(adev->platform, false);
ALOGD("%s: disable island cfg and power mode in voice tx path",
__func__);
}
@@ -1427,6 +1429,10 @@
platform_get_power_mode_on_device(adev->platform, snd_device)) {
platform_set_island_cfg_on_device(adev, snd_device, true);
platform_set_power_mode_on_device(adev, snd_device, true);
+ if (voice_is_lte_call_active(adev) &&
+ (snd_device >= SND_DEVICE_IN_BEGIN &&
+ snd_device < SND_DEVICE_IN_END))
+ platform_set_tx_lpi_mode(adev->platform, true);
ALOGD("%s: enable island cfg and power mode on: %s",
__func__, device_name);
}
@@ -9088,7 +9094,7 @@
ALOGD("%s: mode %d , prev_mode %d \n", __func__, mode , adev->mode);
adev->prev_mode = adev->mode; /* prev_mode is kept to handle voip concurrency*/
adev->mode = mode;
- if( mode == AUDIO_MODE_CALL_SCREEN ){
+ if (mode == AUDIO_MODE_CALL_SCREEN) {
adev->current_call_output = adev->primary_output;
voice_start_call(adev);
} else if (voice_is_in_call_or_call_screen(adev) &&
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 955ba32..346d9a3 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -325,6 +325,7 @@
bool is_vbat_speaker;
bool is_bcl_speaker;
bool gsm_mode_enabled;
+ bool lpi_enabled;
bool is_slimbus_interface;
bool is_internal_codec;
bool is_default_be_config;
@@ -2050,6 +2051,24 @@
}
}
+void platform_set_tx_lpi_mode(void *platform, bool enable)
+{
+ struct platform_data *my_data = (struct platform_data *)platform;
+ struct audio_device *adev = my_data->adev;
+
+ if (!enable && my_data->lpi_enabled) {
+ my_data->lpi_enabled = false;
+ ALOGV("%s: disabling TX LPI mode", __func__);
+ audio_route_reset_and_update_path(adev->audio_route, "tx-lpi-enable");
+ }
+
+ if (enable) {
+ my_data->lpi_enabled = true;
+ ALOGD("%s: enabling TX LPI mode", __func__);
+ audio_route_apply_and_update_path(adev->audio_route, "tx-lpi-enable");
+ }
+}
+
static struct csd_data *open_csd_client(bool i2s_ext_modem)
{
struct csd_data *csd = calloc(1, sizeof(struct csd_data));
@@ -3199,6 +3218,7 @@
my_data->use_sprk_default_sample_rate = true;
my_data->fluence_in_voice_comm = false;
my_data->ec_car_state = false;
+ my_data->lpi_enabled = false;
my_data->is_multiple_sample_rate_combo_supported = true;
platform_reset_edid_info(my_data);
diff --git a/hal/platform_api.h b/hal/platform_api.h
index 7039d5d..f68d6e7 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -305,6 +305,7 @@
int platform_set_audio_device_interface(const char * device_name, const char *intf_name,
const char * codec_type);
void platform_set_gsm_mode(void *platform, bool enable);
+void platform_set_tx_lpi_mode(void *platform, bool enable);
bool platform_can_enable_spkr_prot_on_device(snd_device_t snd_device);
int platform_get_spkr_prot_acdb_id(snd_device_t snd_device);
int platform_get_spkr_prot_snd_device(snd_device_t snd_device);
diff --git a/hal/voice.c b/hal/voice.c
index 034eaa0..fdca74a 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -203,6 +203,8 @@
disable_snd_device(adev, uc_info->out_snd_device);
disable_snd_device(adev, uc_info->in_snd_device);
+ adev->voice.lte_call = false;
+
list_remove(&uc_info->list);
free(uc_info);
@@ -231,6 +233,11 @@
return -EINVAL;
}
+ if (!adev->current_call_output) {
+ ALOGE("start_call: invalid current call output");
+ return -EINVAL;
+ }
+
uc_info = (struct audio_usecase *)calloc(1, sizeof(struct audio_usecase));
if (!uc_info) {
ALOGE("start_call: couldn't allocate mem for audio_usecase");
@@ -639,6 +646,11 @@
return err;
}
+bool voice_is_lte_call_active(struct audio_device *adev)
+{
+ return adev->voice.lte_call;
+}
+
bool voice_get_mic_mute(struct audio_device *adev)
{
return adev->voice.mic_mute;
@@ -823,6 +835,7 @@
adev->voice.volume = 1.0f;
adev->voice.mic_mute = false;
adev->voice.in_call = false;
+ adev->voice.lte_call = false;
for (i = 0; i < max_voice_sessions; i++) {
adev->voice.session[i].pcm_rx = NULL;
adev->voice.session[i].pcm_tx = NULL;
diff --git a/hal/voice.h b/hal/voice.h
index 1f0978a..290ca3d 100644
--- a/hal/voice.h
+++ b/hal/voice.h
@@ -61,6 +61,7 @@
bool use_device_mute;
float volume;
bool in_call;
+ bool lte_call;
};
struct power_mode_cfg {
@@ -93,6 +94,7 @@
bool voice_is_in_call_or_call_screen(const struct audio_device *adev);
bool voice_is_in_call_rec_stream(const struct stream_in *in);
int voice_set_mic_mute(struct audio_device *dev, bool state);
+bool voice_is_lte_call_active(struct audio_device *adev);
bool voice_get_mic_mute(struct audio_device *dev);
int voice_set_volume(struct audio_device *adev, float volume);
int voice_check_and_set_incall_rec_usecase(struct audio_device *adev,
diff --git a/hal/voice_extn/voice_extn.c b/hal/voice_extn/voice_extn.c
index 1882f11..99e7706 100644
--- a/hal/voice_extn/voice_extn.c
+++ b/hal/voice_extn/voice_extn.c
@@ -615,6 +615,14 @@
}
if (is_valid_vsid(vsid) && is_valid_call_state(call_state)) {
+ err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_CALL_TYPE, str_value,
+ sizeof(str_value));
+ if (err >= 0) {
+ if (!strncmp("LTE", str_value, sizeof("LTE"))) {
+ adev->voice.lte_call = true;
+ ALOGD("%s: %s call is active",__func__, str_value);
+ }
+ }
ret = update_call_states(adev, vsid, call_state);
} else {
ALOGE("%s: invalid vsid:%x or call_state:%d",