diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2019-11-16 02:29:42 -0800 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2019-11-16 02:29:42 -0800 |
commit | eed592f9f4725675f902eec412d2c6e3dc93084f (patch) | |
tree | d08e268f31f6c4dcb449187917b18980c26ad723 | |
parent | 3226e8dcb4be3ec878869f0f821b0d3615ea1b41 (diff) | |
parent | 4a6aff442eb253a0ef28fb68af6ff62ea02d26bc (diff) | |
download | hardware_qcom_audio-eed592f9f4725675f902eec412d2c6e3dc93084f.tar.gz hardware_qcom_audio-eed592f9f4725675f902eec412d2c6e3dc93084f.tar.bz2 hardware_qcom_audio-eed592f9f4725675f902eec412d2c6e3dc93084f.zip |
Merge 4a6aff442eb253a0ef28fb68af6ff62ea02d26bc on remote branch
Change-Id: I004f75cb6293eeda7af8eb6b5322383be384d893
-rw-r--r-- | configs/atoll/audio_platform_info_intcodec.xml | 4 | ||||
-rw-r--r-- | configs/atoll/mixer_paths.xml | 5 | ||||
-rwxr-xr-x[-rw-r--r--] | configs/atoll/mixer_paths_qrd.xml | 17 | ||||
-rw-r--r-- | configs/atoll/mixer_paths_wcd937x.xml | 5 | ||||
-rw-r--r-- | configs/kona/audio_platform_info_intcodec.xml | 4 | ||||
-rw-r--r-- | configs/kona/kona.mk | 1 | ||||
-rw-r--r-- | configs/lito/audio_platform_info_intcodec.xml | 22 | ||||
-rw-r--r-- | configs/lito/lito.mk | 1 | ||||
-rw-r--r-- | configs/msm8937/msm8937.mk | 1 | ||||
-rw-r--r-- | configs/msm8998/msm8998.mk | 1 | ||||
-rw-r--r-- | configs/msmnile/msmnile.mk | 1 | ||||
-rw-r--r-- | configs/msmsteppe/msmsteppe.mk | 8 | ||||
-rw-r--r-- | configs/sdm660/sdm660.mk | 1 | ||||
-rw-r--r-- | configs/sdm710/sdm710.mk | 1 | ||||
-rw-r--r-- | configs/sdm845/sdm845.mk | 1 | ||||
-rw-r--r-- | configs/trinket/trinket.mk | 1 | ||||
-rw-r--r-- | hal/Android.mk | 4 | ||||
-rw-r--r-- | hal/audio_extn/audio_extn.h | 3 | ||||
-rw-r--r-- | hal/audio_hw.c | 31 |
19 files changed, 87 insertions, 25 deletions
diff --git a/configs/atoll/audio_platform_info_intcodec.xml b/configs/atoll/audio_platform_info_intcodec.xml index b479cfc3..7c44d9f5 100644 --- a/configs/atoll/audio_platform_info_intcodec.xml +++ b/configs/atoll/audio_platform_info_intcodec.xml @@ -122,7 +122,9 @@ <device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/> + <device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/> + <device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_HANDSET" interface="WSA_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_SPEAKER" interface="WSA_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_1" interface="WSA_CDC_DMA_RX_0"/> @@ -189,9 +191,7 @@ <device name="SND_DEVICE_IN_VOICE_DMIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_SPEAKER_QMIC" interface="TX_CDC_DMA_TX_3"/> - <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/> - <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_REC_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/> diff --git a/configs/atoll/mixer_paths.xml b/configs/atoll/mixer_paths.xml index 9d7487fb..c8863590 100644 --- a/configs/atoll/mixer_paths.xml +++ b/configs/atoll/mixer_paths.xml @@ -2972,6 +2972,7 @@ <ctl name="TX DMIC MUX1" value="DMIC0" /> <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" /> <ctl name="TX DMIC MUX2" value="DMIC3" /> + <ctl name="TX_DEC2 Volume" value="84" /> </path> <path name="speaker-dmic-endfire"> @@ -2980,6 +2981,7 @@ <ctl name="TX DMIC MUX1" value="DMIC0" /> <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" /> <ctl name="TX DMIC MUX2" value="DMIC3" /> + <ctl name="TX_DEC2 Volume" value="84" /> </path> <path name="dmic-endfire"> @@ -3069,6 +3071,7 @@ <ctl name="TX DMIC MUX2" value="DMIC1" /> <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" /> <ctl name="TX DMIC MUX3" value="DMIC3" /> + <ctl name="TX_DEC3 Volume" value="84" /> </path> <path name="speaker-tmic"> @@ -3079,6 +3082,7 @@ <ctl name="TX DMIC MUX2" value="DMIC0" /> <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" /> <ctl name="TX DMIC MUX3" value="DMIC3" /> + <ctl name="TX_DEC3 Volume" value="84" /> </path> <path name="voice-speaker-tmic"> @@ -3094,6 +3098,7 @@ <ctl name="TX DMIC MUX2" value="DMIC1" /> <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" /> <ctl name="TX DMIC MUX3" value="DMIC3" /> + <ctl name="TX_DEC3 Volume" value="84" /> <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" /> <ctl name="TX DMIC MUX4" value="DMIC4" /> </path> diff --git a/configs/atoll/mixer_paths_qrd.xml b/configs/atoll/mixer_paths_qrd.xml index f845fd4b..66871ef6 100644..100755 --- a/configs/atoll/mixer_paths_qrd.xml +++ b/configs/atoll/mixer_paths_qrd.xml @@ -3204,14 +3204,23 @@ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" /> <ctl name="ADC1_MIXER Switch" value="1" /> <ctl name="TX DEC2 MUX" value="SWR_MIC" /> - <ctl name="TX SMIC MUX2" value="ADC1" /> + <ctl name="TX SMIC MUX2" value="ADC2" /> <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" /> - <ctl name="ADC2_MIXER Switch" value="1" /> - <ctl name="ADC2 MUX" value="INP3" /> + <ctl name="ADC3_MIXER Switch" value="1" /> + <ctl name="ADC3 MUX" value="INP4" /> </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="ADC1" /> + <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" /> + <ctl name="ADC2_MIXER Switch" value="1" /> + <ctl name="ADC2 MUX" value="INP3" /> + <ctl name="TX DEC2 MUX" value="SWR_MIC" /> + <ctl name="TX SMIC MUX2" value="ADC0" /> + <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" /> + <ctl name="ADC1_MIXER Switch" value="1" /> </path> <path name="dmic-endfire"> diff --git a/configs/atoll/mixer_paths_wcd937x.xml b/configs/atoll/mixer_paths_wcd937x.xml index c4784fd2..813ecc7a 100644 --- a/configs/atoll/mixer_paths_wcd937x.xml +++ b/configs/atoll/mixer_paths_wcd937x.xml @@ -2981,6 +2981,7 @@ <ctl name="TX DMIC MUX1" value="DMIC0" /> <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" /> <ctl name="TX DMIC MUX2" value="DMIC3" /> + <ctl name="TX_DEC2 Volume" value="84" /> </path> <path name="speaker-dmic-endfire"> @@ -2989,6 +2990,7 @@ <ctl name="TX DMIC MUX1" value="DMIC0" /> <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" /> <ctl name="TX DMIC MUX2" value="DMIC3" /> + <ctl name="TX_DEC2 Volume" value="84" /> </path> <path name="dmic-endfire"> @@ -3078,6 +3080,7 @@ <ctl name="TX DMIC MUX2" value="DMIC1" /> <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" /> <ctl name="TX DMIC MUX3" value="DMIC3" /> + <ctl name="TX_DEC3 Volume" value="84" /> </path> <path name="speaker-tmic"> @@ -3088,6 +3091,7 @@ <ctl name="TX DMIC MUX2" value="DMIC0" /> <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" /> <ctl name="TX DMIC MUX3" value="DMIC3" /> + <ctl name="TX_DEC3 Volume" value="84" /> </path> <path name="voice-speaker-tmic"> @@ -3103,6 +3107,7 @@ <ctl name="TX DMIC MUX2" value="DMIC1" /> <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" /> <ctl name="TX DMIC MUX3" value="DMIC3" /> + <ctl name="TX_DEC3 Volume" value="84" /> <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" /> <ctl name="TX DMIC MUX4" value="DMIC4" /> </path> diff --git a/configs/kona/audio_platform_info_intcodec.xml b/configs/kona/audio_platform_info_intcodec.xml index a1de893b..a1ac568f 100644 --- a/configs/kona/audio_platform_info_intcodec.xml +++ b/configs/kona/audio_platform_info_intcodec.xml @@ -157,7 +157,9 @@ <device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/> + <device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/> + <device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_HANDSET" interface="WSA_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_SPEAKER" interface="WSA_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_1" interface="WSA_CDC_DMA_RX_0"/> @@ -242,9 +244,7 @@ <device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC_SB" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_SPEAKER_QMIC" interface="TX_CDC_DMA_TX_3"/> - <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/> - <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_REC_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/> diff --git a/configs/kona/kona.mk b/configs/kona/kona.mk index e1455092..fa7c3497 100644 --- a/configs/kona/kona.mk +++ b/configs/kona/kona.mk @@ -45,6 +45,7 @@ AUDIO_FEATURE_ENABLED_USB_TUNNEL := true AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true AUDIO_FEATURE_ENABLED_3D_AUDIO := true AUDIO_FEATURE_ENABLED_AHAL_EXT := true +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false endif diff --git a/configs/lito/audio_platform_info_intcodec.xml b/configs/lito/audio_platform_info_intcodec.xml index 7f2a4a0f..eeb05b6e 100644 --- a/configs/lito/audio_platform_info_intcodec.xml +++ b/configs/lito/audio_platform_info_intcodec.xml @@ -66,6 +66,7 @@ <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="36" /> <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="36" /> <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" /> + <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="37" /> </pcm_ids> <config_params> <!-- In the below value string, the value indicates default mono --> @@ -74,6 +75,7 @@ <param key="spkr_1_tz_name" value="wsatz.13"/> <param key="spkr_2_tz_name" value="wsatz.14"/> <param key="true_32_bit" value="true"/> + <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"/> @@ -100,10 +102,11 @@ <device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" acdb_id="145"/> <device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" acdb_id="146"/> <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" acdb_id="147"/> - <device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="157"/> + <device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="191"/> </acdb_ids> <backend_names> <device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/> + <device name="SND_DEVICE_OUT_HEADPHONES_HIFI_FILTER" backend="headphones" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_HEADPHONES_44_1" backend="headphones-44.1" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_BT_SCO_WB" backend="bt-sco-wb" interface="SLIMBUS_7_RX"/> <device name="SND_DEVICE_OUT_BT_SCO" backend="bt-sco" interface="SLIMBUS_7_RX"/> @@ -111,13 +114,17 @@ <device name="SND_DEVICE_OUT_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/> + <device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_HIFI_FILTER" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/> + <device name="SND_DEVICE_OUT_VOICE_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/> + <device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/> + <device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_HANDSET" interface="WSA_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_SPEAKER" interface="WSA_CDC_DMA_RX_0"/> <device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_1" interface="WSA_CDC_DMA_RX_0"/> @@ -166,10 +173,15 @@ <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/> - <device name="SND_DEVICE_IN_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/> - <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" interface="TX_CDC_DMA_TX_3"/> + <device name="SND_DEVICE_IN_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/> + <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/> + <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/> + <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/> + <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/> + <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/> + <device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/> + <device name="SND_DEVICE_IN_HEADSET_MIC_AEC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/> <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/> - <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/> <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/> <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/> @@ -179,9 +191,7 @@ <device name="SND_DEVICE_IN_VOICE_DMIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_SPEAKER_QMIC" interface="TX_CDC_DMA_TX_3"/> - <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" interface="TX_CDC_DMA_TX_3"/> - <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_REC_MIC" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" interface="TX_CDC_DMA_TX_3"/> <device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/> diff --git a/configs/lito/lito.mk b/configs/lito/lito.mk index e84ab2bf..116be391 100644 --- a/configs/lito/lito.mk +++ b/configs/lito/lito.mk @@ -44,6 +44,7 @@ AUDIO_FEATURE_ENABLED_USB_TUNNEL := true AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true AUDIO_FEATURE_ENABLED_3D_AUDIO := true AUDIO_FEATURE_ENABLED_AHAL_EXT := true +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false endif diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk index 5f896c77..bf49de84 100644 --- a/configs/msm8937/msm8937.mk +++ b/configs/msm8937/msm8937.mk @@ -31,6 +31,7 @@ AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true AUDIO_FEATURE_ENABLED_AHAL_EXT := false +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false endif diff --git a/configs/msm8998/msm8998.mk b/configs/msm8998/msm8998.mk index ff259445..a616b143 100644 --- a/configs/msm8998/msm8998.mk +++ b/configs/msm8998/msm8998.mk @@ -35,6 +35,7 @@ AUDIO_FEATURE_ENABLED_VOICE_PRINT := false USE_LEGACY_AUDIO_DAEMON := false USE_LEGACY_AUDIO_MEASUREMENT := false AUDIO_FEATURE_ENABLED_AHAL_EXT := false +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false endif diff --git a/configs/msmnile/msmnile.mk b/configs/msmnile/msmnile.mk index c3104c68..471ea100 100644 --- a/configs/msmnile/msmnile.mk +++ b/configs/msmnile/msmnile.mk @@ -43,6 +43,7 @@ AUDIO_FEATURE_ENABLED_USB_TUNNEL := true AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true AUDIO_FEATURE_ENABLED_3D_AUDIO := true AUDIO_FEATURE_ENABLED_AHAL_EXT := true +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false endif diff --git a/configs/msmsteppe/msmsteppe.mk b/configs/msmsteppe/msmsteppe.mk index 5565a0d1..9d226c64 100644 --- a/configs/msmsteppe/msmsteppe.mk +++ b/configs/msmsteppe/msmsteppe.mk @@ -32,6 +32,7 @@ AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true AUDIO_FEATURE_ENABLED_USB_TUNNEL := true AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true AUDIO_FEATURE_ENABLED_3D_AUDIO := false +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false endif @@ -391,7 +392,6 @@ vendor.audio.feature.maxx_audio.enable=false \ vendor.audio.feature.ras.enable=true \ vendor.audio.feature.record_play_concurency.enable=false \ vendor.audio.feature.src_trkn.enable=true \ -vendor.audio.feature.spkr_prot.enable=true \ vendor.audio.feature.ssrec.enable=true \ vendor.audio.feature.usb_offload.enable=true \ vendor.audio.feature.usb_offload_burst_mode.enable=true \ @@ -402,6 +402,12 @@ vendor.audio.feature.wsa.enable=false \ vendor.audio.feature.audiozoom.enable=false \ vendor.audio.feature.snd_mon.enable=true +ifeq ($(TARGET_FWK_SUPPORTS_FULL_VALUEADDS),true) +PRODUCT_PROPERTY_OVERRIDES += vendor.audio.feature.spkr_prot.enable=true +else +PRODUCT_PROPERTY_OVERRIDES += vendor.audio.feature.spkr_prot.enable=false +endif + #enable AAC frame ctl for A2DP sinks PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.bt.aac_frm_ctl.enabled=true diff --git a/configs/sdm660/sdm660.mk b/configs/sdm660/sdm660.mk index d84d444d..0dfd7dd1 100644 --- a/configs/sdm660/sdm660.mk +++ b/configs/sdm660/sdm660.mk @@ -35,6 +35,7 @@ AUDIO_FEATURE_ENABLED_VOICE_PRINT := false USE_LEGACY_AUDIO_DAEMON := false USE_LEGACY_AUDIO_MEASUREMENT := false AUDIO_FEATURE_ENABLED_AHAL_EXT := false +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false endif diff --git a/configs/sdm710/sdm710.mk b/configs/sdm710/sdm710.mk index a8afd659..6d888d15 100644 --- a/configs/sdm710/sdm710.mk +++ b/configs/sdm710/sdm710.mk @@ -37,6 +37,7 @@ AUDIO_FEATURE_ENABLED_VOICE_PRINT := false USE_LEGACY_AUDIO_DAEMON := false USE_LEGACY_AUDIO_MEASUREMENT := false AUDIO_FEATURE_ENABLED_AHAL_EXT := false +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false endif diff --git a/configs/sdm845/sdm845.mk b/configs/sdm845/sdm845.mk index 79257ad7..9d2ff7e5 100644 --- a/configs/sdm845/sdm845.mk +++ b/configs/sdm845/sdm845.mk @@ -32,6 +32,7 @@ AUDIO_FEATURE_ENABLED_USB_TUNNEL := true AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true AUDIO_FEATURE_ENABLED_3D_AUDIO := true AUDIO_FEATURE_ENABLED_AHAL_EXT := false +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false TARGET_USES_QCOM_MM_AUDIO := true endif diff --git a/configs/trinket/trinket.mk b/configs/trinket/trinket.mk index aedb0a86..2ec0ebb0 100644 --- a/configs/trinket/trinket.mk +++ b/configs/trinket/trinket.mk @@ -33,6 +33,7 @@ AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true AUDIO_FEATURE_ENABLED_USB_TUNNEL := true AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true AUDIO_FEATURE_ENABLED_3D_AUDIO := false +AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true DOLBY_ENABLE := false endif diff --git a/hal/Android.mk b/hal/Android.mk index 569cd3ba..bf19326f 100644 --- a/hal/Android.mk +++ b/hal/Android.mk @@ -169,6 +169,10 @@ ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true) LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include endif +ifeq ($(strip $(AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT)),true) + LOCAL_CFLAGS += -DENABLE_EXTENDED_COMPRESS_FORMAT +endif + LOCAL_CFLAGS += -DUSE_VENDOR_EXTN # Legacy feature diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h index 74581cd8..f37c948e 100644 --- a/hal/audio_extn/audio_extn.h +++ b/hal/audio_extn/audio_extn.h @@ -108,9 +108,10 @@ int audio_extn_parse_compress_metadata(struct stream_out *out, #define AUDIO_OUTPUT_BIT_WIDTH ((config->offload_info.bit_width == 32) ? 24\ :config->offload_info.bit_width) -#ifndef AUDIO_HW_EXTN_API_ENABLED +#ifndef ENABLE_EXTENDED_COMPRESS_FORMAT #define compress_set_metadata(compress, metadata) (0) #define compress_get_metadata(compress, metadata) (0) +#define compress_set_next_track_param(compress, codec_options) (0) #endif #define MAX_LENGTH_MIXER_CONTROL_IN_INT (128) diff --git a/hal/audio_hw.c b/hal/audio_hw.c index 5bbd5956..7a2c2b95 100644 --- a/hal/audio_hw.c +++ b/hal/audio_hw.c @@ -2743,6 +2743,8 @@ int select_devices(struct audio_device *adev, audio_usecase_t uc_id) usecase->stream.out->sample_rate, &usecase->stream.out->app_type_cfg.sample_rate); } else if (((out_snd_device != SND_DEVICE_OUT_HEADPHONES_44_1 && + out_snd_device != SND_DEVICE_OUT_HEADPHONES && + out_snd_device != SND_DEVICE_OUT_HEADPHONES_HIFI_FILTER && !audio_is_true_native_stream_active(adev)) && usecase->stream.out->sample_rate == OUTPUT_SAMPLING_RATE_44100) || (usecase->stream.out->sample_rate < OUTPUT_SAMPLING_RATE_44100)) { @@ -2799,6 +2801,7 @@ int select_devices(struct audio_device *adev, audio_usecase_t uc_id) !(usecase->stream.out->flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) && (usecase->type != TRANSCODE_LOOPBACK_TX) && (usecase->type != TRANSCODE_LOOPBACK_RX) && + (usecase->type != PCM_CAPTURE) && usecase->stream.out->started) { if (is_bt_soc_on(adev) == false) { ALOGD("BT SCO/A2dp disconnected while in connection"); @@ -3230,7 +3233,7 @@ static void *offload_thread_loop(void *context) int ret = 0; setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_AUDIO); - //set_sched_policy(0, SP_FOREGROUND); + set_sched_policy(0, SP_FOREGROUND); prctl(PR_SET_NAME, (unsigned long)"Offload Callback", 0, 0, 0); ALOGV("%s", __func__); @@ -5518,7 +5521,7 @@ static ssize_t out_write(struct audio_stream_out *stream, const void *buffer, out->send_new_metadata = 0; if (out->send_next_track_params && out->is_compr_metadata_avail) { ALOGD("copl(%p):send next track params in gapless", out); - // compress_set_next_track_param(out->compr, &(out->compr_config.codec->options)); + compress_set_next_track_param(out->compr, &(out->compr_config.codec->options)); out->send_next_track_params = false; out->is_compr_metadata_avail = false; } @@ -8130,7 +8133,6 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs) int status = 0; bool a2dp_reconfig = false; struct listnode *node; - struct audio_usecase *usecase = NULL; ALOGD("%s: enter: %s", __func__, kvpairs); parms = str_parms_create_str(kvpairs); @@ -8162,17 +8164,26 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs) if (strcmp(value, AUDIO_PARAMETER_VALUE_ON) == 0){ adev->bt_sco_on = true; } else { - ALOGD("sco is off, reset sco and route device to handset mic"); adev->bt_sco_on = false; audio_extn_sco_reset_configuration(); + } + } + + ret = str_parms_get_str(parms, "A2dpSuspended", value, sizeof(value)); + if (ret>=0) { + if (!strncmp(value, "false", 5) && + audio_extn_a2dp_source_is_suspended()) { + struct audio_usecase *usecase; + struct listnode *node; list_for_each(node, &adev->usecase_list) { usecase = node_to_item(node, struct audio_usecase, list); - if ((usecase->type == PCM_CAPTURE) && usecase->stream.in && - (usecase->stream.in->device & AUDIO_DEVICE_IN_ALL_SCO)) + if (usecase->stream.in && (usecase->type == PCM_CAPTURE) && + ((usecase->stream.in->device & ~AUDIO_DEVICE_BIT_IN) & + AUDIO_DEVICE_IN_ALL_SCO)) { + ALOGD("a2dp resumed, switch bt sco mic to handset mic"); usecase->stream.in->device = AUDIO_DEVICE_IN_BUILTIN_MIC; - else - continue; - select_devices(adev, usecase->id); + select_devices(adev, usecase->id); + } } } } @@ -9465,6 +9476,8 @@ static void adev_snd_mon_cb(void *cookie, struct str_parms *parms) platform_snd_card_update(adev->platform, status); audio_extn_fm_set_parameters(adev, parms); audio_extn_auto_hal_set_parameters(adev, parms); + if (status == CARD_STATUS_OFFLINE) + audio_extn_sco_reset_configuration(); } else if (is_ext_device_status) { platform_set_parameters(adev->platform, parms); } |