Merge "audio: use SinkMetaData to route voice call with hearing aid."
diff --git a/configs/kona/audio_platform_info.xml b/configs/kona/audio_platform_info.xml
index fc9f72e..09cb923 100644
--- a/configs/kona/audio_platform_info.xml
+++ b/configs/kona/audio_platform_info.xml
@@ -108,6 +108,7 @@
<usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="29" />
<usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="29" />
<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" />
</pcm_ids>
<config_params>
diff --git a/configs/kona/audio_platform_info_intcodec.xml b/configs/kona/audio_platform_info_intcodec.xml
index 3f424b2..467aab9 100644
--- a/configs/kona/audio_platform_info_intcodec.xml
+++ b/configs/kona/audio_platform_info_intcodec.xml
@@ -64,6 +64,7 @@
<usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="29" />
<usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="29" />
<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" />
</pcm_ids>
<config_params>
diff --git a/configs/kona/audio_platform_info_qrd.xml b/configs/kona/audio_platform_info_qrd.xml
index 5659a4e..8b1f0b6 100644
--- a/configs/kona/audio_platform_info_qrd.xml
+++ b/configs/kona/audio_platform_info_qrd.xml
@@ -64,6 +64,7 @@
<usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="29" />
<usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="29" />
<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" />
</pcm_ids>
<config_params>
@@ -100,6 +101,20 @@
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" acdb_id="147"/>
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="157"/>
</acdb_ids>
+ <module_ids>
+ <aec>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_SB" module_id="0x10F39" instance_id="0x8000" param_id="0x10EAF" param_value="0x01"/>
+ <device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_SB" module_id="0x10F38" instance_id="0x8000" param_id="0x10EAF" param_value="0x01"/>
+ <device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS_SB" module_id="0x10F39" instance_id="0x8000" param_id="0x10EAF" param_value="0x01"/>
+ <device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS_SB" module_id="0x10F38" instance_id="0x8000" param_id="0x10EAF" param_value="0x01"/>
+ </aec>
+ <ns>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_SB" module_id="0x10F39" instance_id="0x8000" param_id="0x10EAF" param_value="0x02"/>
+ <device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS_SB" module_id="0x10F38" instance_id="0x8000" param_id="0x10EAF" param_value="0x02"/>
+ <device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS_SB" module_id="0x10F39" instance_id="0x8000" param_id="0x10EAF" param_value="0x02"/>
+ <device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS_SB" module_id="0x10F38" instance_id="0x8000" param_id="0x10EAF" param_value="0x02"/>
+ </ns>
+ </module_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" 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"/>
diff --git a/configs/kona/kona.mk b/configs/kona/kona.mk
index dbf53f5..f0f175a 100644
--- a/configs/kona/kona.mk
+++ b/configs/kona/kona.mk
@@ -42,7 +42,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_3D_AUDIO := true
AUDIO_FEATURE_ENABLED_AHAL_EXT := true
DOLBY_ENABLE := false
endif
@@ -99,6 +99,7 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs_stock.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml
#XML Audio configuration files
diff --git a/configs/kona/mixer_paths.xml b/configs/kona/mixer_paths.xml
index 8ebeed5..a71a38a 100644
--- a/configs/kona/mixer_paths.xml
+++ b/configs/kona/mixer_paths.xml
@@ -482,6 +482,10 @@
<path name="deep-buffer-playback bt-sco" />
</path>
+ <path name="deep-buffer-playback bt-sco-swb">
+ <path name="deep-buffer-playback bt-sco" />
+ </path>
+
<path name="deep-buffer-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -518,6 +522,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-and-bt-sco-swb">
+ <path name="deep-buffer-playback bt-sco-swb" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="low-latency-playback">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="1" />
</path>
@@ -539,6 +548,10 @@
<path name="low-latency-playback bt-sco" />
</path>
+ <path name="low-latency-playback bt-sco-swb">
+ <path name="low-latency-playback bt-sco" />
+ </path>
+
<path name="low-latency-playback speaker-and-display-port">
<path name="low-latency-playback display-port" />
<path name="low-latency-playback" />
@@ -583,6 +596,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-and-bt-sco-swb">
+ <path name="low-latency-playback bt-sco-swb" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="audio-ull-playback">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="1" />
</path>
@@ -613,6 +631,10 @@
<path name="audio-ull-playback bt-sco" />
</path>
+ <path name="audio-ull-playback bt-sco-swb">
+ <path name="audio-ull-playback bt-sco" />
+ </path>
+
<path name="audio-ull-playback speaker-and-display-port">
<path name="audio-ull-playback display-port" />
<path name="audio-ull-playback" />
@@ -640,6 +662,11 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -673,6 +700,10 @@
<path name="compress-offload-playback bt-sco" />
</path>
+ <path name="compress-offload-playback bt-sco-swb">
+ <path name="compress-offload-playback bt-sco" />
+ </path>
+
<path name="compress-offload-playback speaker-and-display-port">
<path name="compress-offload-playback display-port" />
<path name="compress-offload-playback" />
@@ -722,6 +753,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback bt-sco-swb" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback2">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
</path>
@@ -739,6 +775,10 @@
<path name="compress-offload-playback2 bt-sco" />
</path>
+ <path name="compress-offload-playback2 bt-sco-swb">
+ <path name="compress-offload-playback2 bt-sco" />
+ </path>
+
<path name="compress-offload-playback2 speaker-and-display-port">
<path name="compress-offload-playback2 display-port" />
<path name="compress-offload-playback2" />
@@ -789,6 +829,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback2 bt-sco-swb" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback3">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -806,6 +851,10 @@
<path name="compress-offload-playback3 bt-sco" />
</path>
+ <path name="compress-offload-playback3 bt-sco-swb">
+ <path name="compress-offload-playback3 bt-sco" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-display-port">
<path name="compress-offload-playback3 display-port" />
<path name="compress-offload-playback3" />
@@ -855,6 +904,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback3 bt-sco-swb" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -872,6 +926,10 @@
<path name="compress-offload-playback4 bt-sco" />
</path>
+ <path name="compress-offload-playback4 bt-sco-swb">
+ <path name="compress-offload-playback4 bt-sco" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-display-port">
<path name="compress-offload-playback4 display-port" />
<path name="compress-offload-playback4" />
@@ -922,6 +980,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback4 bt-sco-swb" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -939,6 +1002,10 @@
<path name="compress-offload-playback5 bt-sco" />
</path>
+ <path name="compress-offload-playback5 bt-sco-swb">
+ <path name="compress-offload-playback5 bt-sco" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-display-port">
<path name="compress-offload-playback5 display-port" />
<path name="compress-offload-playback5" />
@@ -988,6 +1055,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback5 bt-sco-swb" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1005,6 +1077,10 @@
<path name="compress-offload-playback6 bt-sco" />
</path>
+ <path name="compress-offload-playback6 bt-sco-swb">
+ <path name="compress-offload-playback6 bt-sco" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-display-port">
<path name="compress-offload-playback6 display-port" />
<path name="compress-offload-playback6" />
@@ -1054,6 +1130,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback6 bt-sco-swb" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1071,6 +1152,10 @@
<path name="compress-offload-playback7 bt-sco" />
</path>
+ <path name="compress-offload-playback7 bt-sco-swb">
+ <path name="compress-offload-playback7 bt-sco" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-display-port">
<path name="compress-offload-playback7 display-port" />
<path name="compress-offload-playback7" />
@@ -1120,6 +1205,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback7 bt-sco-swb" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1137,6 +1227,10 @@
<path name="compress-offload-playback8 bt-sco" />
</path>
+ <path name="compress-offload-playback8 bt-sco-swb">
+ <path name="compress-offload-playback8 bt-sco" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-display-port">
<path name="compress-offload-playback8 display-port" />
<path name="compress-offload-playback8" />
@@ -1186,6 +1280,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback8 bt-sco-swb" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1203,6 +1302,10 @@
<path name="compress-offload-playback9 bt-sco" />
</path>
+ <path name="compress-offload-playback9 bt-sco-swb">
+ <path name="compress-offload-playback9 bt-sco" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-display-port">
<path name="compress-offload-playback9 display-port" />
<path name="compress-offload-playback9" />
@@ -1252,6 +1355,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback9 bt-sco-swb" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-record">
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="1" />
</path>
@@ -1269,6 +1377,10 @@
<path name="audio-record bt-sco" />
</path>
+ <path name="audio-record bt-sco-swb">
+ <path name="audio-record bt-sco" />
+ </path>
+
<path name="audio-record capture-fm">
<ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -1286,6 +1398,10 @@
<path name="audio-record-compress bt-sco" />
</path>
+ <path name="audio-record-compress bt-sco-swb">
+ <path name="audio-record-compress bt-sco" />
+ </path>
+
<path name="audio-record-compress usb-headset-mic">
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
</path>
@@ -1303,6 +1419,10 @@
<path name="low-latency-record bt-sco" />
</path>
+ <path name="low-latency-record bt-sco-swb">
+ <path name="low-latency-record bt-sco" />
+ </path>
+
<path name="low-latency-record usb-headset-mic">
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
</path>
@@ -1339,6 +1459,10 @@
<path name="incall-rec-uplink" />
</path>
+ <path name="incall-rec-uplink bt-sco-swb">
+ <path name="incall-rec-uplink" />
+ </path>
+
<path name="incall-rec-uplink usb-headset-mic">
<path name="incall-rec-uplink" />
</path>
@@ -1359,6 +1483,10 @@
<path name="incall-rec-uplink-compress" />
</path>
+ <path name="incall-rec-uplink-compress bt-sco-swb">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
<path name="incall-rec-uplink-compress usb-headset-mic">
<path name="incall-rec-uplink-compress" />
</path>
@@ -1379,6 +1507,10 @@
<path name="incall-rec-downlink" />
</path>
+ <path name="incall-rec-downlink bt-sco-swb">
+ <path name="incall-rec-downlink" />
+ </path>
+
<path name="incall-rec-downlink usb-headset-mic">
<path name="incall-rec-downlink" />
</path>
@@ -1399,6 +1531,10 @@
<path name="incall-rec-downlink-compress" />
</path>
+ <path name="incall-rec-downlink-compress bt-sco-swb">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
<path name="incall-rec-downlink-compress usb-headset-mic">
<path name="incall-rec-downlink-compress" />
</path>
@@ -1420,6 +1556,10 @@
<path name="incall-rec-uplink-and-downlink" />
</path>
+ <path name="incall-rec-uplink-and-downlink bt-sco-swb">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
<path name="incall-rec-uplink-and-downlink usb-headset-mic">
<path name="incall-rec-uplink-and-downlink" />
</path>
@@ -1441,6 +1581,10 @@
<path name="incall-rec-uplink-and-downlink-compress" />
</path>
+ <path name="incall-rec-uplink-and-downlink-compress bt-sco-swb">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
<path name="incall-rec-uplink-and-downlink-compress usb-headset-mic">
<path name="incall-rec-uplink-and-downlink-compress" />
</path>
@@ -1489,6 +1633,10 @@
<path name="compress-voip-call bt-sco" />
</path>
+ <path name="compress-voip-call bt-sco-swb">
+ <path name="compress-voip-call bt-sco" />
+ </path>
+
<path name="compress-voip-call afe-proxy">
<ctl name="AFE_PCM_RX_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value="1" />
@@ -1524,6 +1672,10 @@
<path name="voicemmode1-call bt-sco" />
</path>
+ <path name="voicemmode1-call bt-sco-swb">
+ <path name="voicemmode1-call bt-sco" />
+ </path>
+
<path name="voicemmode1-call afe-proxy">
<ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="1" />
@@ -1569,6 +1721,10 @@
<path name="voicemmode2-call bt-sco" />
</path>
+ <path name="voicemmode2-call bt-sco-swb">
+ <path name="voicemmode2-call bt-sco" />
+ </path>
+
<path name="voicemmode2-call afe-proxy">
<ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="1" />
@@ -1612,6 +1768,10 @@
<path name="audio-playback-voip bt-sco" />
</path>
+ <path name="audio-playback-voip bt-sco-swb">
+ <path name="audio-playback-voip bt-sco" />
+ </path>
+
<path name="audio-playback-voip bt-a2dp">
<ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1655,6 +1815,10 @@
<path name="audio-record-voip bt-sco" />
</path>
+ <path name="audio-record-voip bt-sco-swb">
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="1" />
</path>
@@ -2016,6 +2180,12 @@
<path name="bt-sco-mic-wb">
</path>
+ <path name="bt-sco-headset-swb">
+ </path>
+
+ <path name="bt-sco-mic-swb">
+ </path>
+
<path name="usb-headset-mic">
</path>
@@ -2412,6 +2582,10 @@
<path name="mmap-playback bt-sco" />
</path>
+ <path name="mmap-playback bt-sco-swb">
+ <path name="mmap-playback bt-sco" />
+ </path>
+
<path name="mmap-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -2460,6 +2634,10 @@
<path name="mmap-record bt-sco" />
</path>
+ <path name="mmap-record bt-sco-swb">
+ <path name="mmap-record bt-sco" />
+ </path>
+
<path name="mmap-record capture-fm">
<ctl name="MultiMedia16 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -2520,6 +2698,10 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink bt-sco-swb">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink speaker-and-display-port">
<path name="incall_music_uplink" />
</path>
diff --git a/configs/kona/mixer_paths_qrd.xml b/configs/kona/mixer_paths_qrd.xml
index 8570ac9..35a1576 100644
--- a/configs/kona/mixer_paths_qrd.xml
+++ b/configs/kona/mixer_paths_qrd.xml
@@ -490,6 +490,10 @@
<path name="deep-buffer-playback bt-sco" />
</path>
+ <path name="deep-buffer-playback bt-sco-swb">
+ <path name="deep-buffer-playback bt-sco" />
+ </path>
+
<path name="deep-buffer-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -526,6 +530,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-and-bt-sco-swb">
+ <path name="deep-buffer-playback bt-sco-swb" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="low-latency-playback">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="1" />
</path>
@@ -551,6 +560,10 @@
<path name="low-latency-playback bt-sco" />
</path>
+ <path name="low-latency-playback bt-sco-swb">
+ <path name="low-latency-playback bt-sco" />
+ </path>
+
<path name="low-latency-playback speaker-and-display-port">
<path name="low-latency-playback display-port" />
<path name="low-latency-playback" />
@@ -592,6 +605,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-and-bt-sco-swb">
+ <path name="low-latency-playback bt-sco-swb" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="audio-ull-playback">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="1" />
</path>
@@ -626,6 +644,10 @@
<path name="audio-ull-playback bt-sco" />
</path>
+ <path name="audio-ull-playback bt-sco-swb">
+ <path name="audio-ull-playback bt-sco" />
+ </path>
+
<path name="audio-ull-playback speaker-and-display-port">
<path name="audio-ull-playback display-port" />
<path name="audio-ull-playback" />
@@ -653,6 +675,11 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -690,6 +717,10 @@
<path name="compress-offload-playback bt-sco" />
</path>
+ <path name="compress-offload-playback bt-sco-swb">
+ <path name="compress-offload-playback bt-sco" />
+ </path>
+
<path name="compress-offload-playback speaker-and-display-port">
<path name="compress-offload-playback display-port" />
<path name="compress-offload-playback" />
@@ -735,6 +766,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback bt-sco-swb" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback2">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
</path>
@@ -756,6 +792,10 @@
<path name="compress-offload-playback2 bt-sco" />
</path>
+ <path name="compress-offload-playback2 bt-sco-swb">
+ <path name="compress-offload-playback2 bt-sco" />
+ </path>
+
<path name="compress-offload-playback2 speaker-and-display-port">
<path name="compress-offload-playback2 display-port" />
<path name="compress-offload-playback2" />
@@ -801,6 +841,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback2 bt-sco-swb" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback3">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -822,6 +867,10 @@
<path name="compress-offload-playback3 bt-sco" />
</path>
+ <path name="compress-offload-playback3 bt-sco-swb">
+ <path name="compress-offload-playback3 bt-sco" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-display-port">
<path name="compress-offload-playback3 display-port" />
<path name="compress-offload-playback3" />
@@ -867,6 +916,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback3 bt-sco-swb" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -888,6 +942,10 @@
<path name="compress-offload-playback4 bt-sco" />
</path>
+ <path name="compress-offload-playback4 bt-sco-swb">
+ <path name="compress-offload-playback4 bt-sco" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-display-port">
<path name="compress-offload-playback4 display-port" />
<path name="compress-offload-playback4" />
@@ -934,6 +992,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback4 bt-sco-swb" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -955,6 +1018,10 @@
<path name="compress-offload-playback5 bt-sco" />
</path>
+ <path name="compress-offload-playback5 bt-sco-swb">
+ <path name="compress-offload-playback5 bt-sco" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-display-port">
<path name="compress-offload-playback5 display-port" />
<path name="compress-offload-playback5" />
@@ -1000,6 +1067,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback5 bt-sco-swb" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1021,6 +1093,10 @@
<path name="compress-offload-playback6 bt-sco" />
</path>
+ <path name="compress-offload-playback6 bt-sco-swb">
+ <path name="compress-offload-playback6 bt-sco" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-display-port">
<path name="compress-offload-playback6 display-port" />
<path name="compress-offload-playback6" />
@@ -1066,6 +1142,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback6 bt-sco-swb" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1087,6 +1168,10 @@
<path name="compress-offload-playback7 bt-sco" />
</path>
+ <path name="compress-offload-playback7 bt-sco-swb">
+ <path name="compress-offload-playback7 bt-sco" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-display-port">
<path name="compress-offload-playback7 display-port" />
<path name="compress-offload-playback7" />
@@ -1132,6 +1217,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback7 bt-sco-swb" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1153,6 +1243,10 @@
<path name="compress-offload-playback8 bt-sco" />
</path>
+ <path name="compress-offload-playback8 bt-sco-swb">
+ <path name="compress-offload-playback8 bt-sco" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-display-port">
<path name="compress-offload-playback8 display-port" />
<path name="compress-offload-playback8" />
@@ -1198,6 +1292,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback8 bt-sco-swb" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1219,6 +1318,10 @@
<path name="compress-offload-playback9 bt-sco" />
</path>
+ <path name="compress-offload-playback9 bt-sco-swb">
+ <path name="compress-offload-playback9 bt-sco" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-display-port">
<path name="compress-offload-playback9 display-port" />
<path name="compress-offload-playback9" />
@@ -1264,6 +1367,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-and-bt-sco-swb">
+ <path name="compress-offload-playback9 bt-sco-swb" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-record">
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="1" />
</path>
@@ -1281,6 +1389,10 @@
<path name="audio-record bt-sco" />
</path>
+ <path name="audio-record bt-sco-swb">
+ <path name="audio-record bt-sco" />
+ </path>
+
<path name="audio-record capture-fm">
<ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -1298,6 +1410,10 @@
<path name="audio-record-compress bt-sco" />
</path>
+ <path name="audio-record-compress bt-sco-swb">
+ <path name="audio-record-compress bt-sco" />
+ </path>
+
<path name="audio-record-compress usb-headset-mic">
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
</path>
@@ -1315,6 +1431,10 @@
<path name="low-latency-record bt-sco" />
</path>
+ <path name="low-latency-record bt-sco-swb">
+ <path name="low-latency-record bt-sco" />
+ </path>
+
<path name="low-latency-record usb-headset-mic">
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
</path>
@@ -1351,6 +1471,10 @@
<path name="incall-rec-uplink" />
</path>
+ <path name="incall-rec-uplink bt-sco-swb">
+ <path name="incall-rec-uplink" />
+ </path>
+
<path name="incall-rec-uplink usb-headset-mic">
<path name="incall-rec-uplink" />
</path>
@@ -1371,6 +1495,10 @@
<path name="incall-rec-uplink-compress" />
</path>
+ <path name="incall-rec-uplink-compress bt-sco-swb">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
<path name="incall-rec-uplink-compress usb-headset-mic">
<path name="incall-rec-uplink-compress" />
</path>
@@ -1391,6 +1519,10 @@
<path name="incall-rec-downlink" />
</path>
+ <path name="incall-rec-downlink bt-sco-swb">
+ <path name="incall-rec-downlink" />
+ </path>
+
<path name="incall-rec-downlink usb-headset-mic">
<path name="incall-rec-downlink" />
</path>
@@ -1411,6 +1543,10 @@
<path name="incall-rec-downlink-compress" />
</path>
+ <path name="incall-rec-downlink-compress bt-sco-swb">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
<path name="incall-rec-downlink-compress usb-headset-mic">
<path name="incall-rec-downlink-compress" />
</path>
@@ -1432,6 +1568,10 @@
<path name="incall-rec-uplink-and-downlink" />
</path>
+ <path name="incall-rec-uplink-and-downlink bt-sco-swb">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
<path name="incall-rec-uplink-and-downlink usb-headset-mic">
<path name="incall-rec-uplink-and-downlink" />
</path>
@@ -1453,6 +1593,10 @@
<path name="incall-rec-uplink-and-downlink-compress" />
</path>
+ <path name="incall-rec-uplink-and-downlink-compress bt-sco-swb">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
<path name="incall-rec-uplink-and-downlink-compress usb-headset-mic">
<path name="incall-rec-uplink-and-downlink-compress" />
</path>
@@ -1505,6 +1649,10 @@
<path name="compress-voip-call bt-sco" />
</path>
+ <path name="compress-voip-call bt-sco-swb">
+ <path name="compress-voip-call bt-sco" />
+ </path>
+
<path name="compress-voip-call afe-proxy">
<ctl name="AFE_PCM_RX_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value="1" />
@@ -1545,6 +1693,10 @@
<path name="voicemmode1-call bt-sco" />
</path>
+ <path name="voicemmode1-call bt-sco-swb">
+ <path name="voicemmode1-call bt-sco" />
+ </path>
+
<path name="voicemmode1-call afe-proxy">
<ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="1" />
@@ -1595,6 +1747,10 @@
<path name="voicemmode2-call bt-sco" />
</path>
+ <path name="voicemmode2-call bt-sco-swb">
+ <path name="voicemmode2-call bt-sco" />
+ </path>
+
<path name="voicemmode2-call afe-proxy">
<ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="1" />
@@ -1642,6 +1798,10 @@
<path name="audio-playback-voip bt-sco" />
</path>
+ <path name="audio-playback-voip bt-sco-swb">
+ <path name="audio-playback-voip bt-sco" />
+ </path>
+
<path name="audio-playback-voip afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1681,6 +1841,10 @@
<path name="audio-record-voip bt-sco" />
</path>
+ <path name="audio-record-voip bt-sco-swb">
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
<path name="bt-a2dp">
<ctl name="SLIM7_RX ADM Channels" value="Two" />
</path>
@@ -1824,6 +1988,10 @@
<path name="mmap-playback bt-sco" />
</path>
+ <path name="mmap-playback bt-sco-swb">
+ <path name="mmap-playback bt-sco" />
+ </path>
+
<path name="mmap-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1872,6 +2040,10 @@
<path name="mmap-record bt-sco" />
</path>
+ <path name="mmap-record bt-sco-swb">
+ <path name="mmap-record bt-sco" />
+ </path>
+
<path name="mmap-record capture-fm">
<ctl name="MultiMedia16 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -1928,6 +2100,10 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink bt-sco-swb">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink speaker-and-display-port">
<path name="incall_music_uplink" />
</path>
@@ -2280,6 +2456,12 @@
<path name="bt-sco-mic-wb">
</path>
+ <path name="bt-sco-mic-swb">
+ </path>
+
+ <path name="bt-sco-headset-swb">
+ </path>
+
<path name="usb-headset-mic">
</path>
diff --git a/configs/msmnile/msmnile.mk b/configs/msmnile/msmnile.mk
index a58f89d..004383a 100644
--- a/configs/msmnile/msmnile.mk
+++ b/configs/msmnile/msmnile.mk
@@ -42,7 +42,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_3D_AUDIO := true
AUDIO_FEATURE_ENABLED_AHAL_EXT := true
DOLBY_ENABLE := false
endif
@@ -101,6 +101,7 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile/mixer_paths_pahu.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_pahu.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs_stock.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml
#XML Audio configuration files
diff --git a/hal/acdb.c b/hal/acdb.c
index 8f3ea83..7394906 100644
--- a/hal/acdb.c
+++ b/hal/acdb.c
@@ -23,7 +23,7 @@
#include <stdlib.h>
#include <dlfcn.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <cutils/list.h>
#include <time.h>
#include "acdb.h"
diff --git a/hal/ahal_config_helper.cpp b/hal/ahal_config_helper.cpp
index 9bdd785..753d8a8 100644
--- a/hal/ahal_config_helper.cpp
+++ b/hal/ahal_config_helper.cpp
@@ -62,8 +62,8 @@
dlsym(handle, "getAudioHalExtConfigs");
if (!getAHalConfigs) {
ALOGE("%s: Could not find symbol: %s", __FUNCTION__, dlerror());
- handle = nullptr;
dlclose(handle);
+ handle = nullptr;
}
}
diff --git a/hal/audio_extn/Android.mk b/hal/audio_extn/Android.mk
index 15093a8..59b18a2 100755
--- a/hal/audio_extn/Android.mk
+++ b/hal/audio_extn/Android.mk
@@ -408,7 +408,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -467,7 +467,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -526,7 +526,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -560,7 +560,7 @@
external/tinycompress/include \
external/expat/lib \
system/media/audio_utils/include \
- vendor/qcom/proprietary/mm-audio/audio-parsers/inc \
+ $(TARGET_OUT_HEADERS)/mm-audio/audio-parsers \
$(call include-path-for, audio-route) \
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
@@ -588,7 +588,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -631,7 +631,6 @@
external/tinycompress/include \
external/expat/lib \
system/media/audio_utils/include \
- vendor/qcom/proprietary/mm-audio/audio-parsers/inc \
$(call include-path-for, audio-route) \
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
@@ -659,7 +658,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
diff --git a/hal/audio_extn/adsp_hdlr.c b/hal/audio_extn/adsp_hdlr.c
index 3b073c3..31a6b16 100644
--- a/hal/audio_extn/adsp_hdlr.c
+++ b/hal/audio_extn/adsp_hdlr.c
@@ -42,7 +42,7 @@
#include <stdlib.h>
#include <sys/resource.h>
#include <sys/prctl.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <cutils/sched_policy.h>
#include <system/thread_defs.h>
#include <sound/asound.h>
diff --git a/hal/audio_extn/audio_extn.c b/hal/audio_extn/audio_extn.c
index 8edf1f3..431c248 100644
--- a/hal/audio_extn/audio_extn.c
+++ b/hal/audio_extn/audio_extn.c
@@ -111,7 +111,7 @@
<target name>-<sound card name>-<form factor>-snd-card
parse target name, sound card name and form factor
*/
- char *snd_card_name = strdup(in_snd_card_name);
+ char *snd_card_name = NULL;
char *tmp = NULL;
char *device = NULL;
char *snd_card = NULL;
@@ -122,6 +122,7 @@
ALOGE("%s: snd_card_name passed is NULL", __func__);
goto on_error;
}
+ snd_card_name = strdup(in_snd_card_name);
device = strtok_r(snd_card_name, "-", &tmp);
if (device == NULL) {
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
index d1ec7c6..51e3ba2 100644
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -763,6 +763,7 @@
int audio_extn_utils_get_bit_width_from_string(const char *);
int audio_extn_utils_get_sample_rate_from_string(const char *);
int audio_extn_utils_get_channels_from_string(const char *);
+void audio_extn_utils_release_snd_device(snd_device_t snd_device);
#ifdef DS2_DOLBY_DAP_ENABLED
#define LIB_DS2_DAP_HAL "vendor/lib/libhwdaphal.so"
diff --git a/hal/audio_extn/auto_hal.c b/hal/audio_extn/auto_hal.c
index f57e885..c70dc17 100644
--- a/hal/audio_extn/auto_hal.c
+++ b/hal/audio_extn/auto_hal.c
@@ -31,7 +31,7 @@
#include <errno.h>
#include <pthread.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <math.h>
#include <audio_hw.h>
#include "audio_extn.h"
diff --git a/hal/audio_extn/bt_hal.c b/hal/audio_extn/bt_hal.c
index 6441bef..2020cba 100644
--- a/hal/audio_extn/bt_hal.c
+++ b/hal/audio_extn/bt_hal.c
@@ -31,7 +31,7 @@
/*#define LOG_NDEBUG 0*/
#include <inttypes.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <audio_hw.h>
#include <audio_extn.h>
#include <platform_api.h>
diff --git a/hal/audio_extn/compress_capture.c b/hal/audio_extn/compress_capture.c
index f0aeec2..c1b77b9 100644
--- a/hal/audio_extn/compress_capture.c
+++ b/hal/audio_extn/compress_capture.c
@@ -26,7 +26,7 @@
#include <stdlib.h>
#include <dlfcn.h>
#include <cutils/str_parms.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include "audio_hw.h"
//#include "platform.h"
diff --git a/hal/audio_extn/compress_in.c b/hal/audio_extn/compress_in.c
index 56905d6..6cf6b81 100644
--- a/hal/audio_extn/compress_in.c
+++ b/hal/audio_extn/compress_in.c
@@ -31,10 +31,9 @@
/*#define LOG_NDEBUG 0*/
#define LOG_NDDEBUG 0
-#include <cutils/log.h>
#include <cutils/properties.h>
#include <cutils/str_parms.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <pthread.h>
#include "audio_hw.h"
diff --git a/hal/audio_extn/dev_arbi.c b/hal/audio_extn/dev_arbi.c
index 9c5382a..d83d6bd 100644
--- a/hal/audio_extn/dev_arbi.c
+++ b/hal/audio_extn/dev_arbi.c
@@ -32,7 +32,7 @@
#define LOG_NDDEBUG 0
#include <errno.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <fcntl.h>
#include "audio_hw.h"
#include "platform.h"
diff --git a/hal/audio_extn/dolby.c b/hal/audio_extn/dolby.c
index ffd256f..906c234 100644
--- a/hal/audio_extn/dolby.c
+++ b/hal/audio_extn/dolby.c
@@ -22,10 +22,10 @@
//#define LOG_NDDEBUG 0
#include <errno.h>
#include <cutils/properties.h>
+#include <cutils/str_parms.h>
#include <stdlib.h>
#include <dlfcn.h>
-#include <cutils/str_parms.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include "audio_hw.h"
#include "platform.h"
diff --git a/hal/audio_extn/dts_eagle.c b/hal/audio_extn/dts_eagle.c
index 7ae760b..3771a9d 100644
--- a/hal/audio_extn/dts_eagle.c
+++ b/hal/audio_extn/dts_eagle.c
@@ -21,7 +21,7 @@
#include <math.h>
#include <stdlib.h>
#include <fcntl.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <cutils/properties.h>
#include <cutils/str_parms.h>
#include <sys/ioctl.h>
diff --git a/hal/audio_extn/edid.c b/hal/audio_extn/edid.c
index 175842f..ffb0d64 100644
--- a/hal/audio_extn/edid.c
+++ b/hal/audio_extn/edid.c
@@ -23,10 +23,10 @@
#include <errno.h>
#include <cutils/properties.h>
+#include <cutils/str_parms.h>
#include <stdlib.h>
#include <dlfcn.h>
-#include <cutils/str_parms.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include "audio_hw.h"
#include "platform.h"
diff --git a/hal/audio_extn/ext_hw_plugin.c b/hal/audio_extn/ext_hw_plugin.c
index f6c4799..45ba1d7 100644
--- a/hal/audio_extn/ext_hw_plugin.c
+++ b/hal/audio_extn/ext_hw_plugin.c
@@ -33,7 +33,7 @@
#include <errno.h>
#include <pthread.h>
#include <dlfcn.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <audio_hw.h>
#include "audio_extn.h"
#include "platform_api.h"
diff --git a/hal/audio_extn/ffv.c b/hal/audio_extn/ffv.c
index a5b15cc..b97eedc 100644
--- a/hal/audio_extn/ffv.c
+++ b/hal/audio_extn/ffv.c
@@ -39,10 +39,10 @@
#include <errno.h>
#include <cutils/properties.h>
+#include <cutils/str_parms.h>
#include <stdlib.h>
#include <dlfcn.h>
-#include <cutils/str_parms.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <pthread.h>
#include <sys/resource.h>
#include <unistd.h>
diff --git a/hal/audio_extn/fm.c b/hal/audio_extn/fm.c
index f4b9d8f..b4e9ff2 100644
--- a/hal/audio_extn/fm.c
+++ b/hal/audio_extn/fm.c
@@ -23,7 +23,7 @@
#include <errno.h>
#include <math.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <unistd.h>
#include "audio_hw.h"
diff --git a/hal/audio_extn/gef.c b/hal/audio_extn/gef.c
index cfed6b3..ca1a16b 100644
--- a/hal/audio_extn/gef.c
+++ b/hal/audio_extn/gef.c
@@ -33,7 +33,7 @@
#include <errno.h>
#include <math.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <fcntl.h>
#include <dirent.h>
#include "audio_hw.h"
diff --git a/hal/audio_extn/hw_loopback.c b/hal/audio_extn/hw_loopback.c
index 3d6525a..5366066 100644
--- a/hal/audio_extn/hw_loopback.c
+++ b/hal/audio_extn/hw_loopback.c
@@ -51,16 +51,16 @@
#include <dlfcn.h>
#include <sys/resource.h>
#include <sys/prctl.h>
+#include <cutils/atomic.h>
#include <cutils/properties.h>
#include <cutils/str_parms.h>
-#include <cutils/log.h>
-#include <cutils/atomic.h>
+#include <cutils/sched_policy.h>
+#include <log/log.h>
#include "audio_utils/primitives.h"
#include "audio_hw.h"
#include "platform_api.h"
#include <platform.h>
#include <system/thread_defs.h>
-#include <cutils/sched_policy.h>
#include "audio_extn.h"
#include <sound/compress_params.h>
#include <sound/compress_offload.h>
diff --git a/hal/audio_extn/ip_hdlr_intf.c b/hal/audio_extn/ip_hdlr_intf.c
index 649c99f..3d5e1fe 100755
--- a/hal/audio_extn/ip_hdlr_intf.c
+++ b/hal/audio_extn/ip_hdlr_intf.c
@@ -46,7 +46,7 @@
#include <errno.h>
#include <stdlib.h>
#include <dlfcn.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <sound/asound.h>
#include <cutils/properties.h>
diff --git a/hal/audio_extn/keep_alive.c b/hal/audio_extn/keep_alive.c
index 20214aa..79f2bb0 100644
--- a/hal/audio_extn/keep_alive.c
+++ b/hal/audio_extn/keep_alive.c
@@ -32,7 +32,7 @@
#include <cutils/properties.h>
#include <stdlib.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include "audio_hw.h"
#include "audio_extn.h"
#include "platform_api.h"
diff --git a/hal/audio_extn/listen.c b/hal/audio_extn/listen.c
index b98a429..5c3bbce 100644
--- a/hal/audio_extn/listen.c
+++ b/hal/audio_extn/listen.c
@@ -32,7 +32,7 @@
#include <stdbool.h>
#include <stdlib.h>
#include <dlfcn.h>
-#include <cutils/log.h>
+#include <log/log.h>
#ifdef AUDIO_LISTEN_ENABLED
#include <listen_types.h>
#endif
diff --git a/hal/audio_extn/passthru.c b/hal/audio_extn/passthru.c
index 14f8b72..a59717c 100644
--- a/hal/audio_extn/passthru.c
+++ b/hal/audio_extn/passthru.c
@@ -31,15 +31,15 @@
/*#define LOG_NDEBUG 0*/
#include <stdlib.h>
#include <cutils/atomic.h>
+#include <cutils/properties.h>
#include <cutils/str_parms.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <unistd.h>
#include <pthread.h>
#include "audio_hw.h"
#include "audio_extn.h"
#include "platform_api.h"
#include <platform.h>
-#include <cutils/properties.h>
#include "sound/compress_params.h"
diff --git a/hal/audio_extn/pm.c b/hal/audio_extn/pm.c
index c6ef242..5b3aa4d 100644
--- a/hal/audio_extn/pm.c
+++ b/hal/audio_extn/pm.c
@@ -31,7 +31,7 @@
/*#define LOG_NDEBUG 0*/
#include "pm.h"
-#include <cutils/log.h>
+#include <log/log.h>
#include <cutils/str_parms.h>
#ifdef DYNAMIC_LOG_ENABLED
diff --git a/hal/audio_extn/pm.h b/hal/audio_extn/pm.h
index daa376e..f78c3aa 100644
--- a/hal/audio_extn/pm.h
+++ b/hal/audio_extn/pm.h
@@ -39,7 +39,7 @@
#include "audio_hw.h"
#include <platform.h>
#include <cutils/properties.h>
-#include <cutils/log.h>
+#include <log/log.h>
/* Client name to be registered with PM */
diff --git a/hal/audio_extn/sndmonitor.c b/hal/audio_extn/sndmonitor.c
index 2bcb175..11578fc 100644
--- a/hal/audio_extn/sndmonitor.c
+++ b/hal/audio_extn/sndmonitor.c
@@ -466,6 +466,7 @@
char val[32] = {0};
bool is_cpe = ((s->card >= CPE_MAGIC_NUM) && (s->card < SLPI_MAGIC_NUM));
bool is_slpi = (s->card == SLPI_MAGIC_NUM);
+ char *key = NULL;
/*
* cpe actual card num is (card - CPE_MAGIC_NUM), so subtract accordingly.
* SLPI actual fd num is (card - SLPI_MAGIC_NUM), so subtract accordingly.
@@ -473,9 +474,10 @@
snprintf(val, sizeof(val), "%d,%s",
s->card - (is_cpe ? CPE_MAGIC_NUM : (is_slpi ? SLPI_MAGIC_NUM : 0)),
status == CARD_STATUS_ONLINE ? "ONLINE" : "OFFLINE");
- if (str_parms_add_str(params,
- is_cpe ? "CPE_STATUS" : (is_slpi ? "SLPI_STATUS" : "SND_CARD_STATUS"),
- val) < 0)
+ key = (is_cpe ? "CPE_STATUS" :
+ (is_slpi ? "SLPI_STATUS" :
+ "SND_CARD_STATUS"));
+ if (str_parms_add_str(params, key, val) < 0)
return -1;
int ret = notify(params);
diff --git a/hal/audio_extn/spkr_protection.c b/hal/audio_extn/spkr_protection.c
index 9c30bbe..8c6ff06 100644
--- a/hal/audio_extn/spkr_protection.c
+++ b/hal/audio_extn/spkr_protection.c
@@ -1824,6 +1824,30 @@
}
}
+static bool fbsp_parms_allowed(struct str_parms *parms)
+{
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_FBSP_TRIGGER_SPKR_CAL))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_FBSP_APPLY_SPKR_CAL))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_FBSP_GET_SPKR_CAL))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_FBSP_CFG_WAIT_TIME))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_FBSP_CFG_FTM_TIME))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_FBSP_GET_FTM_PARAM))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_FBSP_TRIGGER_V_VALI))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_FBSP_V_VALI_WAIT_TIME))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_FBSP_V_VALI_VALI_TIME))
+ return true;
+
+ return false;
+}
+
int fbsp_set_parameters(struct str_parms *parms)
{
int ret= 0 , err;
@@ -1841,9 +1865,14 @@
}
ALOGV_IF(kv_pairs != NULL, "%s: enter: %s", __func__, kv_pairs);
+ if (!fbsp_parms_allowed(parms)) {
+ ret = -EINVAL;
+ goto done;
+ }
+
len = strlen(kv_pairs);
value = (char*)calloc(len, sizeof(char));
- if(value == NULL) {
+ if (value == NULL) {
ret = -ENOMEM;
ALOGE("[%s] failed to allocate memory",__func__);
goto done;
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index 6a74a4c..b06276e 100644
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -2274,7 +2274,7 @@
kConfigLocationList[i],
file_name);
if (F_OK == access(full_config_path, 0)) {
- strcpy(file_name, full_config_path);
+ strlcpy(file_name, full_config_path, MIXER_PATH_MAX_LENGTH);
return true;
}
}
@@ -2711,6 +2711,15 @@
return -EINVAL;
}
+void audio_extn_utils_release_snd_device(snd_device_t snd_device)
+{
+ audio_extn_dev_arbi_release(snd_device);
+ audio_extn_sound_trigger_update_device_status(snd_device,
+ ST_EVENT_SND_DEVICE_FREE);
+ audio_extn_listen_update_device_status(snd_device,
+ LISTEN_EVENT_SND_DEVICE_FREE);
+}
+
int audio_extn_utils_get_license_params
(
const struct audio_device *adev,
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index ead51d7..b5b43ea 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1126,19 +1126,23 @@
return -EINVAL;
}
- adev->snd_dev_ref_cnt[snd_device]++;
-
- if(platform_get_snd_device_name_extn(adev->platform, snd_device, device_name) < 0 ) {
+ if (platform_get_snd_device_name_extn(adev->platform, snd_device, device_name) < 0) {
ALOGE("%s: Invalid sound device returned", __func__);
return -EINVAL;
}
- if (adev->snd_dev_ref_cnt[snd_device] > 1) {
+
+ adev->snd_dev_ref_cnt[snd_device]++;
+
+ if ((adev->snd_dev_ref_cnt[snd_device] > 1) &&
+ (platform_split_snd_device(adev->platform,
+ snd_device,
+ &num_devices,
+ new_snd_devices) != 0)) {
ALOGV("%s: snd_device(%d: %s) is already active",
__func__, snd_device, device_name);
return 0;
}
-
if (audio_extn_spkr_prot_is_enabled())
audio_extn_spkr_prot_calib_cancel(adev);
@@ -1146,15 +1150,14 @@
if (platform_can_enable_spkr_prot_on_device(snd_device) &&
audio_extn_spkr_prot_is_enabled()) {
- if (platform_get_spkr_prot_acdb_id(snd_device) < 0) {
- adev->snd_dev_ref_cnt[snd_device]--;
- return -EINVAL;
- }
- audio_extn_dev_arbi_acquire(snd_device);
- if (audio_extn_spkr_prot_start_processing(snd_device)) {
+ if (platform_get_spkr_prot_acdb_id(snd_device) < 0) {
+ goto err;
+ }
+ audio_extn_dev_arbi_acquire(snd_device);
+ if (audio_extn_spkr_prot_start_processing(snd_device)) {
ALOGE("%s: spkr_start_processing failed", __func__);
audio_extn_dev_arbi_release(snd_device);
- return -EINVAL;
+ goto err;
}
} else if (platform_split_snd_device(adev->platform,
snd_device,
@@ -1168,17 +1171,17 @@
ALOGD("%s: snd_device(%d: %s)", __func__, snd_device, device_name);
- if ((SND_DEVICE_OUT_BT_A2DP == snd_device) &&
- (audio_extn_a2dp_start_playback() < 0)) {
- ALOGE(" fail to configure A2dp Source control path ");
- return -EINVAL;
- }
+ if ((SND_DEVICE_OUT_BT_A2DP == snd_device) &&
+ (audio_extn_a2dp_start_playback() < 0)) {
+ ALOGE(" fail to configure A2dp Source control path ");
+ goto err;
+ }
- if ((SND_DEVICE_IN_BT_A2DP == snd_device) &&
- (audio_extn_a2dp_start_capture() < 0)) {
- ALOGE(" fail to configure A2dp Sink control path ");
- return -EINVAL;
- }
+ if ((SND_DEVICE_IN_BT_A2DP == snd_device) &&
+ (audio_extn_a2dp_start_capture() < 0)) {
+ ALOGE(" fail to configure A2dp Sink control path ");
+ goto err;
+ }
/* due to the possibility of calibration overwrite between listen
and audio, notify listen hal before audio calibration is sent */
@@ -1187,12 +1190,11 @@
audio_extn_listen_update_device_status(snd_device,
LISTEN_EVENT_SND_DEVICE_BUSY);
if (platform_get_snd_device_acdb_id(snd_device) < 0) {
- adev->snd_dev_ref_cnt[snd_device]--;
audio_extn_sound_trigger_update_device_status(snd_device,
ST_EVENT_SND_DEVICE_FREE);
audio_extn_listen_update_device_status(snd_device,
LISTEN_EVENT_SND_DEVICE_FREE);
- return -EINVAL;
+ goto err;
}
audio_extn_dev_arbi_acquire(snd_device);
audio_route_apply_and_update_path(adev->audio_route, device_name);
@@ -1214,6 +1216,9 @@
}
}
return 0;
+err:
+ adev->snd_dev_ref_cnt[snd_device]--;
+ return -EINVAL;;
}
int disable_snd_device(struct audio_device *adev,
@@ -1228,6 +1233,12 @@
ALOGE("%s: Invalid sound device %d", __func__, snd_device);
return -EINVAL;
}
+
+ if (platform_get_snd_device_name_extn(adev->platform, snd_device, device_name) < 0) {
+ ALOGE("%s: Invalid sound device returned", __func__);
+ return -EINVAL;
+ }
+
if (adev->snd_dev_ref_cnt[snd_device] <= 0) {
ALOGE("%s: device ref cnt is already 0", __func__);
return -EINVAL;
@@ -1235,10 +1246,6 @@
adev->snd_dev_ref_cnt[snd_device]--;
- if(platform_get_snd_device_name_extn(adev->platform, snd_device, device_name) < 0) {
- ALOGE("%s: Invalid sound device returned", __func__);
- return -EINVAL;
- }
if (adev->snd_dev_ref_cnt[snd_device] == 0) {
ALOGD("%s: snd_device(%d: %s)", __func__, snd_device, device_name);
@@ -1264,38 +1271,42 @@
audio_route_reset_and_update_path(adev->audio_route, device_name);
}
- if (SND_DEVICE_OUT_BT_A2DP == snd_device)
+ if (snd_device == SND_DEVICE_OUT_BT_A2DP)
audio_extn_a2dp_stop_playback();
-
- if (SND_DEVICE_IN_BT_A2DP == snd_device)
+ else if (snd_device == SND_DEVICE_IN_BT_A2DP)
audio_extn_a2dp_stop_capture();
-
- if (snd_device == SND_DEVICE_OUT_HDMI || snd_device == SND_DEVICE_OUT_DISPLAY_PORT)
+ else if ((snd_device == SND_DEVICE_OUT_HDMI) ||
+ (snd_device == SND_DEVICE_OUT_DISPLAY_PORT))
adev->is_channel_status_set = false;
- else if (SND_DEVICE_OUT_HEADPHONES == snd_device &&
+ else if ((snd_device == SND_DEVICE_OUT_HEADPHONES) &&
adev->native_playback_enabled) {
ALOGD("%s: %d: napb: disabling native mode in hardware",
__func__, __LINE__);
audio_route_reset_and_update_path(adev->audio_route,
"true-native-mode");
adev->native_playback_enabled = false;
- } else if (SND_DEVICE_OUT_HEADPHONES == snd_device &&
+ } else if ((snd_device == SND_DEVICE_OUT_HEADPHONES) &&
adev->asrc_mode_enabled) {
ALOGD("%s: %d: disabling asrc mode in hardware", __func__, __LINE__);
disable_asrc_mode(adev);
audio_route_apply_and_update_path(adev->audio_route, "hph-lowpower-mode");
- }
- if (((snd_device == SND_DEVICE_IN_HANDSET_6MIC) ||
+ } else if (((snd_device == SND_DEVICE_IN_HANDSET_6MIC) ||
(snd_device == SND_DEVICE_IN_HANDSET_QMIC)) &&
(audio_extn_ffv_get_stream() == adev->active_input)) {
ALOGD("%s: deinit ec ref loopback", __func__);
audio_extn_ffv_deinit_ec_ref_loopback(adev, snd_device);
}
- audio_extn_dev_arbi_release(snd_device);
- audio_extn_sound_trigger_update_device_status(snd_device,
- ST_EVENT_SND_DEVICE_FREE);
- audio_extn_listen_update_device_status(snd_device,
- LISTEN_EVENT_SND_DEVICE_FREE);
+
+ audio_extn_utils_release_snd_device(snd_device);
+ } else {
+ if (platform_split_snd_device(adev->platform,
+ snd_device,
+ &num_devices,
+ new_snd_devices) == 0) {
+ for (i = 0; i < num_devices; i++) {
+ adev->snd_dev_ref_cnt[new_snd_devices[i]]--;
+ }
+ }
}
return 0;
@@ -1438,7 +1449,8 @@
bool switch_device[AUDIO_USECASE_MAX];
snd_device_t uc_derive_snd_device;
snd_device_t derive_snd_device[AUDIO_USECASE_MAX];
- int i, num_uc_to_switch = 0;
+ snd_device_t split_snd_devices[SND_DEVICE_OUT_END];
+ int i, num_uc_to_switch = 0, num_devices = 0;
int status = 0;
bool force_restart_session = false;
/*
@@ -1520,14 +1532,42 @@
list_for_each(node, &adev->usecase_list) {
usecase = node_to_item(node, struct audio_usecase, list);
if (switch_device[usecase->id]) {
- disable_snd_device(adev, usecase->out_snd_device);
+ /* Check if output sound device to be switched can be split and if any
+ of the split devices match with derived sound device */
+ if (platform_split_snd_device(adev->platform, usecase->out_snd_device,
+ &num_devices, split_snd_devices) == 0) {
+ adev->snd_dev_ref_cnt[usecase->out_snd_device]--;
+ for (i = 0; i < num_devices; i++) {
+ /* Disable devices that do not match with derived sound device */
+ if (split_snd_devices[i] != derive_snd_device[usecase->id])
+ disable_snd_device(adev, split_snd_devices[i]);
+ }
+ } else {
+ disable_snd_device(adev, usecase->out_snd_device);
+ }
}
}
list_for_each(node, &adev->usecase_list) {
usecase = node_to_item(node, struct audio_usecase, list);
if (switch_device[usecase->id]) {
- enable_snd_device(adev, derive_snd_device[usecase->id]);
+ if (platform_split_snd_device(adev->platform, usecase->out_snd_device,
+ &num_devices, split_snd_devices) == 0) {
+ /* Enable derived sound device only if it does not match with
+ one of the split sound devices. This is because the matching
+ sound device was not disabled */
+ bool should_enable = true;
+ for (i = 0; i < num_devices; i++) {
+ if (derive_snd_device[usecase->id] == split_snd_devices[i]) {
+ should_enable = false;
+ break;
+ }
+ }
+ if (should_enable)
+ enable_snd_device(adev, derive_snd_device[usecase->id]);
+ } else {
+ enable_snd_device(adev, derive_snd_device[usecase->id]);
+ }
}
}
@@ -8404,13 +8444,13 @@
else
audio_extn_sound_trigger_update_ec_ref_status(false);
- error_log_destroy(in->error_log);
- in->error_log = NULL;
-
if (in == NULL) {
ALOGE("%s: audio_stream_in ptr is NULL", __func__);
return;
}
+ error_log_destroy(in->error_log);
+ in->error_log = NULL;
+
if (in->usecase == USECASE_COMPRESS_VOIP_CALL) {
pthread_mutex_lock(&adev->lock);
diff --git a/hal/audio_hw_extn_api.c b/hal/audio_hw_extn_api.c
index 44591c9..af73375 100644
--- a/hal/audio_hw_extn_api.c
+++ b/hal/audio_hw_extn_api.c
@@ -33,7 +33,7 @@
#include <inttypes.h>
#include <errno.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <hardware/audio.h>
#include "sound/compress_params.h"
diff --git a/hal/msm8916/hw_info.c b/hal/msm8916/hw_info.c
index 40e39a2..eb9a483 100644
--- a/hal/msm8916/hw_info.c
+++ b/hal/msm8916/hw_info.c
@@ -33,7 +33,7 @@
#include <stdlib.h>
#include <dlfcn.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <cutils/str_parms.h>
#include "audio_hw.h"
#include "platform.h"
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 4b0921b..45fadf5 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -25,7 +25,7 @@
#include <dlfcn.h>
#include <fcntl.h>
#include <sys/ioctl.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <cutils/properties.h>
#include <cutils/str_parms.h>
#include <audio_hw.h>
diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c
index f7a7ebf..f21602d 100644
--- a/hal/msm8960/platform.c
+++ b/hal/msm8960/platform.c
@@ -23,7 +23,7 @@
#include <stdlib.h>
#include <dlfcn.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <cutils/properties.h>
#include <audio_hw.h>
#include <platform_api.h>
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 079d64c..a428f9a 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -3945,6 +3945,10 @@
}
device = (struct operator_specific_device *)calloc(1, sizeof(struct operator_specific_device));
+ if (device == NULL) {
+ ALOGE("%s: memory allocation failed", __func__);
+ return;
+ }
device->operator = strdup(operator);
device->mixer_path = strdup(mixer_path);
@@ -6760,12 +6764,18 @@
value, len);
if (err >= 0) {
struct operator_info *info;
- char *str = value;
+ char *str = value, *context = NULL;
char *name;
str_parms_del(parms, PLATFORM_CONFIG_KEY_OPERATOR_INFO);
info = (struct operator_info *)calloc(1, sizeof(struct operator_info));
- name = strtok(str, ";");
+ name = strtok_r(str, ";", &context);
+ if ((info == NULL) || (name == NULL)) {
+ ret = -EINVAL;
+ ALOGE("%s invalid info or name", __func__);
+ goto done;
+ }
+
info->name = strdup(name);
info->mccmnc = strdup(str + strlen(name) + 1);
diff --git a/hal/voice.c b/hal/voice.c
index 4e5dfeb..847ce92 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -409,8 +409,8 @@
session_id = voice_get_active_session_id(adev);
ret = platform_set_incall_recording_session_id(adev->platform,
session_id, rec_mode);
- ret = platform_set_incall_recording_session_channels(adev->platform,
- in->config.channels);
+ platform_set_incall_recording_session_channels(adev->platform,
+ in->config.channels);
ALOGV("%s: Update usecase to %d",__func__, in->usecase);
} else {
/*
diff --git a/hal/voice_extn/compress_voip.c b/hal/voice_extn/compress_voip.c
index 003a3ed..e4bc210 100644
--- a/hal/voice_extn/compress_voip.c
+++ b/hal/voice_extn/compress_voip.c
@@ -27,7 +27,7 @@
#include <sys/time.h>
#include <stdlib.h>
#include <math.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <cutils/str_parms.h>
#include <cutils/properties.h>
@@ -816,4 +816,4 @@
ALOGV("%s: exit: status(%d)", __func__, ret);
return ret;
-}
\ No newline at end of file
+}
diff --git a/hal/voice_extn/voice_extn.c b/hal/voice_extn/voice_extn.c
index 1f45a64..f08c73c 100644
--- a/hal/voice_extn/voice_extn.c
+++ b/hal/voice_extn/voice_extn.c
@@ -664,8 +664,6 @@
}
if(voice_extn_compress_voip_enabled)
voice_extn_compress_voip_get_parameters(query, reply);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
str = str_parms_to_str(reply);
ALOGV_IF(str != NULL, "%s: exit: returns \"%s\"", __func__, str);
@@ -678,8 +676,6 @@
{
if(voice_extn_compress_voip_enabled)
voice_extn_compress_voip_out_get_parameters(out, query, reply);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
}
void voice_extn_in_get_parameters(struct stream_in *in,
@@ -688,9 +684,6 @@
{
if(voice_extn_compress_voip_enabled)
voice_extn_compress_voip_in_get_parameters(in, query, reply);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
-
}
@@ -717,8 +710,6 @@
int ret = -ENOSYS;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_set_parameters(adev, parms);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -727,8 +718,6 @@
{
if(voice_extn_compress_voip_enabled)
compress_voip_get_parameters(query, reply);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
}
@@ -738,8 +727,6 @@
{
if(voice_extn_compress_voip_enabled)
compress_voip_out_get_parameters(out, query, reply);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
}
void voice_extn_compress_voip_in_get_parameters(struct stream_in *in,
@@ -748,8 +735,6 @@
{
if(voice_extn_compress_voip_enabled)
compress_voip_in_get_parameters(in, query, reply);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
}
int voice_extn_compress_voip_out_get_buffer_size(struct stream_out *out)
@@ -757,8 +742,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_out_get_buffer_size(out);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -767,8 +750,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_in_get_buffer_size(in);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -778,8 +759,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_start_output_stream(out);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -789,8 +768,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_start_input_stream(in);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -799,8 +776,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_close_output_stream(stream);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -810,8 +785,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_close_input_stream(stream);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -820,8 +793,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_open_output_stream(out);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -831,8 +802,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_open_input_stream(in);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -841,8 +810,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_set_volume(adev, volume);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -851,8 +818,6 @@
int ret = -1;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_set_mic_mute(adev, state);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -861,8 +826,6 @@
bool ret = false;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_pcm_prop_check();
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -871,8 +834,6 @@
bool ret = false;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_is_active(adev);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -881,8 +842,6 @@
bool ret = false;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_is_format_supported(format);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -891,8 +850,6 @@
bool ret = false;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_is_config_supported(config);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
@@ -901,8 +858,6 @@
bool ret = false;
if(voice_extn_compress_voip_enabled)
ret = compress_voip_is_started(adev);
- else
- ALOGE("%s: COMPRESS_VOIP feature is not enabled", __func__);
return ret;
}
diff --git a/post_proc/asphere.c b/post_proc/asphere.c
index 65e8034..7b35a77 100644
--- a/post_proc/asphere.c
+++ b/post_proc/asphere.c
@@ -197,6 +197,18 @@
return asphere.init_status;
}
+static bool asphere_parms_allowed(struct str_parms *parms)
+{
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_ASPHERE_ENABLE))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_ASPHERE_STRENGTH))
+ return true;
+ if (str_parms_has_key(parms, AUDIO_PARAMETER_KEY_ASPHERE_STATUS))
+ return true;
+
+ return false;
+}
+
void asphere_set_parameters(struct str_parms *parms)
{
int ret = 0;
@@ -205,6 +217,10 @@
char value[32] = {0};
bool set_enable = false, set_strength = false;
+ if (!asphere_parms_allowed(parms)) {
+ return;
+ }
+
if (asphere_init() != 1) {
ALOGW("%s: init check failed!!!", __func__);
return;
diff --git a/post_proc/hw_accelerator.c b/post_proc/hw_accelerator.c
index fae5807..583f001 100644
--- a/post_proc/hw_accelerator.c
+++ b/post_proc/hw_accelerator.c
@@ -32,7 +32,7 @@
/*#define LOG_NDEBUG 0*/
#include <cutils/list.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <fcntl.h>
#include <tinyalsa/asoundlib.h>
#include <sound/audio_effects.h>
diff --git a/post_proc/ma_listener.c b/post_proc/ma_listener.c
index 04a9047..9271dc7 100644
--- a/post_proc/ma_listener.c
+++ b/post_proc/ma_listener.c
@@ -23,7 +23,7 @@
#include <pthread.h>
#include <unistd.h>
#include <cutils/list.h>
-#include <cutils/log.h>
+#include <log/log.h>
#include <hardware/audio_effect.h>
#include <audio-base.h>
diff --git a/qahw_api/test/qap_wrapper_extn.c b/qahw_api/test/qap_wrapper_extn.c
index d311570..de954bf 100644
--- a/qahw_api/test/qap_wrapper_extn.c
+++ b/qahw_api/test/qap_wrapper_extn.c
@@ -27,8 +27,8 @@
#include <time.h>
#include <cutils/properties.h>
#include <cutils/list.h>
-#include <cutils/log.h>
#include <cutils/str_parms.h>
+#include <log/log.h>
#include <system/audio.h>
#include <qap_api.h>
#include <qti_audio.h>