Merge "audio: property to disable USB sidetone"
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index 7e5c90f..b7a7a39 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -46,7 +46,7 @@
MM_AUDIO_ENABLED_SAFX := true
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
-#AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
+AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
##AUDIO_FEATURE_FLAGS
diff --git a/configs/msm8937/sound_trigger_mixer_paths.xml b/configs/msm8937/sound_trigger_mixer_paths.xml
index bbec875..a2ea69e 100644
--- a/configs/msm8937/sound_trigger_mixer_paths.xml
+++ b/configs/msm8937/sound_trigger_mixer_paths.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2014, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
@@ -28,48 +28,70 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="TERT_MI2S_TX LSM Function" value="None" />
<path name="listen-voice-wakeup-1">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM1 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM1 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM1 Mixer TERT_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM2 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM2 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM2 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-3">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM3 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM3 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM3 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-4">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM4 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM4 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM4 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-5">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM5 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM5 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM5 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-6">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM6 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM6 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM6 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-7">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM7 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM7 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM7 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-8">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM8 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM8 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM8 Mixer TERT_MI2S_TX" value="1" />
</path>
<path name="listen-ape-handset-mic">
diff --git a/configs/msm8937/sound_trigger_mixer_paths_wcd9306.xml b/configs/msm8937/sound_trigger_mixer_paths_wcd9306.xml
index f2e4cb1..bd54837 100644
--- a/configs/msm8937/sound_trigger_mixer_paths_wcd9306.xml
+++ b/configs/msm8937/sound_trigger_mixer_paths_wcd9306.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2014, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
@@ -28,14 +28,22 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="SLIMBUS_5_TX LSM Function" value="None" />
<ctl name="AIF1_CAP Mixer SLIM TX1" value="0"/>
<ctl name="LOOPBACK Mode" value="DISABLE" />
@@ -46,51 +54,59 @@
<path name="listen-voice-wakeup-1">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM1 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM1 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM2 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM2 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM3 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM3 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM4 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM4 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM5 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM5 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM6 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM6 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM7 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM7 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM8 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM8 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-handset-mic">
diff --git a/configs/msm8937/sound_trigger_mixer_paths_wcd9330.xml b/configs/msm8937/sound_trigger_mixer_paths_wcd9330.xml
index 15f0e06..e4dee50 100644
--- a/configs/msm8937/sound_trigger_mixer_paths_wcd9330.xml
+++ b/configs/msm8937/sound_trigger_mixer_paths_wcd9330.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2015, The Linux Foundation. All rights reserved.
+<!--- Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -29,14 +29,22 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="SLIMBUS_5_TX LSM Function" value="None" />
<ctl name="MADONOFF Switch" value="0" />
<ctl name="MAD Input" value="DMIC1" />
@@ -44,42 +52,50 @@
<path name="listen-voice-wakeup-1">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM1 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM2 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM3 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM4 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM5 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM6 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM7 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM8 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-cpe-handset-mic">
<ctl name="MADONOFF Switch" value="1" />
<ctl name="MAD Input" value="DMIC1" />
- <ctl name="CPE AFE MAD Enable" value="1"/>
+ <ctl name="CPE AFE MAD Enable" value="1"/>
</path>
<path name="listen-ape-handset-mic">
diff --git a/configs/msm8937/sound_trigger_mixer_paths_wcd9335.xml b/configs/msm8937/sound_trigger_mixer_paths_wcd9335.xml
index 94d00c5..af630d0 100644
--- a/configs/msm8937/sound_trigger_mixer_paths_wcd9335.xml
+++ b/configs/msm8937/sound_trigger_mixer_paths_wcd9335.xml
@@ -29,14 +29,22 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="SLIMBUS_5_TX LSM Function" value="None" />
<ctl name="MADONOFF Switch" value="0" />
<ctl name="MAD Input" value="DMIC1" />
@@ -52,36 +60,44 @@
<path name="listen-voice-wakeup-1">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM1 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM2 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM3 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM4 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM5 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM6 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM7 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM8 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-cpe-handset-mic">
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index 2917f9d..3106942 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -46,7 +46,8 @@
MM_AUDIO_ENABLED_SAFX := true
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
-#AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
+AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
+
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
diff --git a/configs/msm8953/sound_trigger_mixer_paths.xml b/configs/msm8953/sound_trigger_mixer_paths.xml
index bbec875..a2ea69e 100644
--- a/configs/msm8953/sound_trigger_mixer_paths.xml
+++ b/configs/msm8953/sound_trigger_mixer_paths.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2014, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
@@ -28,48 +28,70 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="TERT_MI2S_TX LSM Function" value="None" />
<path name="listen-voice-wakeup-1">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM1 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM1 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM1 Mixer TERT_MI2S_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM2 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM2 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM2 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-3">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM3 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM3 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM3 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-4">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM4 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM4 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM4 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-5">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM5 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM5 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM5 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-6">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM6 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM6 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM6 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-7">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM7 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM7 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM7 Mixer TERT_MI2S_TX" value="1" />
</path>
+
<path name="listen-voice-wakeup-8">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
- <ctl name="LSM8 MUX" value="TERT_MI2S_TX" />
+ <ctl name="LSM8 Port" value="TERT_MI2S_TX" />
+ <ctl name="LSM8 Mixer TERT_MI2S_TX" value="1" />
</path>
<path name="listen-ape-handset-mic">
diff --git a/configs/msm8953/sound_trigger_mixer_paths_wcd9306.xml b/configs/msm8953/sound_trigger_mixer_paths_wcd9306.xml
index f2e4cb1..bd54837 100644
--- a/configs/msm8953/sound_trigger_mixer_paths_wcd9306.xml
+++ b/configs/msm8953/sound_trigger_mixer_paths_wcd9306.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2014, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
@@ -28,14 +28,22 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="SLIMBUS_5_TX LSM Function" value="None" />
<ctl name="AIF1_CAP Mixer SLIM TX1" value="0"/>
<ctl name="LOOPBACK Mode" value="DISABLE" />
@@ -46,51 +54,59 @@
<path name="listen-voice-wakeup-1">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM1 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM1 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM2 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM2 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM3 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM3 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM4 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM4 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM5 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM5 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM6 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM6 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM7 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM7 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="AIF1_CAP Mixer SLIM TX1" value="1"/>
<ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="LSM8 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM8 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-handset-mic">
diff --git a/configs/msm8953/sound_trigger_mixer_paths_wcd9330.xml b/configs/msm8953/sound_trigger_mixer_paths_wcd9330.xml
index b64c4ca..e4dee50 100644
--- a/configs/msm8953/sound_trigger_mixer_paths_wcd9330.xml
+++ b/configs/msm8953/sound_trigger_mixer_paths_wcd9330.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2015, The Linux Foundation. All rights reserved.
+<!--- Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -29,14 +29,22 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="SLIMBUS_5_TX LSM Function" value="None" />
<ctl name="MADONOFF Switch" value="0" />
<ctl name="MAD Input" value="DMIC1" />
@@ -44,36 +52,44 @@
<path name="listen-voice-wakeup-1">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM1 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM2 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM3 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM4 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM5 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM6 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM7 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM8 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-cpe-handset-mic">
diff --git a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
index 94d00c5..af630d0 100644
--- a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
+++ b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
@@ -29,14 +29,22 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="SLIMBUS_5_TX LSM Function" value="None" />
<ctl name="MADONOFF Switch" value="0" />
<ctl name="MAD Input" value="DMIC1" />
@@ -52,36 +60,44 @@
<path name="listen-voice-wakeup-1">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM1 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM2 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM3 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM4 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM5 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM6 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM7 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM8 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-cpe-handset-mic">
diff --git a/configs/msm8996/mixer_paths_tasha.xml b/configs/msm8996/mixer_paths_tasha.xml
index 9f63413..64d6bfb 100644
--- a/configs/msm8996/mixer_paths_tasha.xml
+++ b/configs/msm8996/mixer_paths_tasha.xml
@@ -2278,6 +2278,9 @@
<path name="capture-fm">
</path>
+ <path name="aanc-path">
+ </path>
+
<path name="aanc-handset-mic">
<ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
<ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
diff --git a/configs/msm8996/msm8996.mk b/configs/msm8996/msm8996.mk
index 306fa97..5b240e9 100644
--- a/configs/msm8996/msm8996.mk
+++ b/configs/msm8996/msm8996.mk
@@ -46,8 +46,8 @@
MM_AUDIO_ENABLED_SAFX := true
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
-#AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
-#DOLBY_DDP := true
+AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
+
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true
diff --git a/configs/msm8996/sound_trigger_mixer_paths.xml b/configs/msm8996/sound_trigger_mixer_paths.xml
index 0125371..f6c99d3 100644
--- a/configs/msm8996/sound_trigger_mixer_paths.xml
+++ b/configs/msm8996/sound_trigger_mixer_paths.xml
@@ -28,14 +28,22 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="SLIMBUS_5_TX LSM Function" value="None" />
<ctl name="MADONOFF Switch" value="0" />
<ctl name="MAD Input" value="DMIC1" />
@@ -51,36 +59,44 @@
<path name="listen-voice-wakeup-1">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM1 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM2 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM3 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM4 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM5 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM6 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM7 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
- <ctl name="LSM8 MUX" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-cpe-handset-mic">
diff --git a/configs/msm8996/sound_trigger_mixer_paths_wcd9330.xml b/configs/msm8996/sound_trigger_mixer_paths_wcd9330.xml
index 4f8557d..2ad8750 100644
--- a/configs/msm8996/sound_trigger_mixer_paths_wcd9330.xml
+++ b/configs/msm8996/sound_trigger_mixer_paths_wcd9330.xml
@@ -28,51 +28,67 @@
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="LSM1 MUX" value="None" />
- <ctl name="LSM2 MUX" value="None" />
- <ctl name="LSM3 MUX" value="None" />
- <ctl name="LSM4 MUX" value="None" />
- <ctl name="LSM5 MUX" value="None" />
- <ctl name="LSM6 MUX" value="None" />
- <ctl name="LSM7 MUX" value="None" />
- <ctl name="LSM8 MUX" value="None" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
<ctl name="SLIMBUS_5_TX LSM Function" value="None" />
<ctl name="MADONOFF Switch" value="0" />
<ctl name="MAD Input" value="DMIC1" />
<ctl name="CPE AFE MAD Enable" value="0"/>
<path name="listen-voice-wakeup-1">
- <ctl name="LSM1 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
+ <ctl name="LSM1 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM1 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-2">
- <ctl name="LSM2 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
+ <ctl name="LSM2 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM2 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-3">
- <ctl name="LSM3 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
+ <ctl name="LSM3 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM3 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-4">
- <ctl name="LSM4 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
+ <ctl name="LSM4 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM4 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-5">
- <ctl name="LSM5 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
+ <ctl name="LSM5 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM5 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-6">
- <ctl name="LSM6 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
+ <ctl name="LSM6 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM6 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-7">
- <ctl name="LSM7 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
+ <ctl name="LSM7 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM7 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-voice-wakeup-8">
- <ctl name="LSM8 MUX" value="SLIMBUS_5_TX" />
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
+ <ctl name="LSM8 Port" value="SLIMBUS_5_TX" />
+ <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="1" />
</path>
<path name="listen-cpe-handset-mic">
diff --git a/configs/msmcobalt/mixer_paths_tasha.xml b/configs/msmcobalt/mixer_paths_tasha.xml
index efd275d..23c0f06 100644
--- a/configs/msmcobalt/mixer_paths_tasha.xml
+++ b/configs/msmcobalt/mixer_paths_tasha.xml
@@ -2293,6 +2293,12 @@
<path name="capture-fm">
</path>
+ <path name="aanc-path">
+ <ctl name="ADC MUX10" value="DMIC" />
+ <ctl name="DMIC MUX10" value="DMIC4" />
+ <ctl name="ANC0 FB MUX" value="ANC_IN_EAR_SPKR" />
+ </path>
+
<path name="aanc-handset-mic">
<ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
<ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
@@ -2309,9 +2315,6 @@
<ctl name="ADC MUX7" value="DMIC" />
<ctl name="DMIC MUX7" value="DMIC0" />
<ctl name="IIR0 INP0 MUX" value="DEC6" />
- <ctl name="ADC MUX10" value="DMIC" />
- <ctl name="DMIC MUX10" value="DMIC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_EAR_SPKR" />
</path>
<!-- Dual MIC devices -->
diff --git a/configs/msmcobalt/mixer_paths_tavil.xml b/configs/msmcobalt/mixer_paths_tavil.xml
index 29212f9..555555d 100644
--- a/configs/msmcobalt/mixer_paths_tavil.xml
+++ b/configs/msmcobalt/mixer_paths_tavil.xml
@@ -2068,6 +2068,12 @@
<path name="capture-fm">
</path>
+ <path name="aanc-path">
+ <ctl name="ADC MUX10" value="DMIC" />
+ <ctl name="DMIC MUX10" value="DMIC4" />
+ <ctl name="ANC0 FB MUX" value="ANC_IN_EAR_SPKR" />
+ </path>
+
<path name="aanc-handset-mic">
<ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
<ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
@@ -2084,9 +2090,6 @@
<ctl name="ADC MUX7" value="DMIC" />
<ctl name="DMIC MUX7" value="DMIC0" />
<ctl name="IIR0 INP0 MUX" value="DEC6" />
- <ctl name="ADC MUX10" value="DMIC" />
- <ctl name="DMIC MUX10" value="DMIC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_EAR_SPKR" />
</path>
<!-- Dual MIC devices -->
diff --git a/configs/msmcobalt/msmcobalt.mk b/configs/msmcobalt/msmcobalt.mk
index 9aa0322..b7684ed 100644
--- a/configs/msmcobalt/msmcobalt.mk
+++ b/configs/msmcobalt/msmcobalt.mk
@@ -22,8 +22,7 @@
AUDIO_FEATURE_ENABLED_HDMI_PASSTHROUGH := true
#AUDIO_FEATURE_ENABLED_KEEP_ALIVE := true
AUDIO_FEATURE_ENABLED_DISPLAY_PORT := true
-#AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
-#DOLBY_DDP := true
+AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true
AUDIO_FEATURE_ENABLED_HFP := true
AUDIO_FEATURE_ENABLED_INCALL_MUSIC := false
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index e72cb76..28d0f75 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -645,6 +645,35 @@
return ret;
}
+static void reset_a2dp_enc_config_params()
+{
+ int ret =0;
+
+ struct mixer_ctl *ctl_enc_config, *ctrl_bit_format;
+ struct sbc_enc_cfg_t dummy_reset_config;
+
+ memset(&dummy_reset_config, 0x0, sizeof(struct sbc_enc_cfg_t));
+ ctl_enc_config = mixer_get_ctl_by_name(a2dp.adev->mixer,
+ MIXER_ENC_CONFIG_BLOCK);
+ if (!ctl_enc_config) {
+ ALOGE(" ERROR a2dp encoder format mixer control not identifed");
+ } else {
+ ret = mixer_ctl_set_array(ctl_enc_config, (void *)&dummy_reset_config,
+ sizeof(struct sbc_enc_cfg_t));
+ a2dp.bt_encoder_format = ENC_MEDIA_FMT_NONE;
+ }
+ ctrl_bit_format = mixer_get_ctl_by_name(a2dp.adev->mixer,
+ MIXER_ENC_BIT_FORMAT);
+ if (!ctrl_bit_format) {
+ ALOGE(" ERROR bit format CONFIG data mixer control not identifed");
+ } else {
+ ret = mixer_ctl_set_enum_by_string(ctrl_bit_format, "S16_LE");
+ if (ret != 0) {
+ ALOGE("%s: Failed to set bit format to encoder", __func__);
+ }
+ }
+}
+
int audio_extn_a2dp_stop_playback()
{
int ret =0;
@@ -659,35 +688,13 @@
a2dp.a2dp_total_active_session_request--;
if ( a2dp.a2dp_started && !a2dp.a2dp_total_active_session_request) {
- struct mixer_ctl *ctl_enc_config, *ctrl_bit_format;
- struct sbc_enc_cfg_t dummy_reset_config;
-
ALOGV("calling BT module stream stop");
ret = a2dp.audio_stop_stream();
if (ret < 0)
ALOGE("stop stream to BT IPC lib failed");
else
ALOGV("stop steam to BT IPC lib successful");
- memset(&dummy_reset_config, 0x0, sizeof(struct sbc_enc_cfg_t));
- ctl_enc_config = mixer_get_ctl_by_name(a2dp.adev->mixer,
- MIXER_ENC_CONFIG_BLOCK);
- if (!ctl_enc_config) {
- ALOGE(" ERROR a2dp encoder format mixer control not identifed");
- } else {
- ret = mixer_ctl_set_array(ctl_enc_config, (void *)&dummy_reset_config,
- sizeof(struct sbc_enc_cfg_t));
- a2dp.bt_encoder_format = ENC_MEDIA_FMT_NONE;
- }
- ctrl_bit_format = mixer_get_ctl_by_name(a2dp.adev->mixer,
- MIXER_ENC_BIT_FORMAT);
- if (!ctrl_bit_format) {
- ALOGE(" ERROR bit format CONFIG data mixer control not identifed");
- } else {
- ret = mixer_ctl_set_enum_by_string(ctrl_bit_format, "S16_LE");
- if (ret != 0) {
- ALOGE("%s: Failed to set bit format to encoder", __func__);
- }
- }
+ reset_a2dp_enc_config_params();
}
if(!a2dp.a2dp_total_active_session_request)
a2dp.a2dp_started = false;
@@ -724,6 +731,7 @@
val = atoi(value);
if (val & AUDIO_DEVICE_OUT_ALL_A2DP) {
ALOGV("Received device dis- connect request");
+ reset_a2dp_enc_config_params();
close_a2dp_output();
}
goto param_handled;
@@ -735,6 +743,7 @@
if ((!strncmp(value,"true",sizeof(value)))) {
ALOGD("Setting a2dp to suspend state");
a2dp.a2dp_suspended = true;
+ reset_a2dp_enc_config_params();
if(a2dp.audio_suspend_stream)
a2dp.audio_suspend_stream();
} else if (a2dp.a2dp_suspended == true) {
diff --git a/hal/audio_extn/audio_extn.c b/hal/audio_extn/audio_extn.c
index 083b925..0f38b82 100644
--- a/hal/audio_extn/audio_extn.c
+++ b/hal/audio_extn/audio_extn.c
@@ -185,7 +185,7 @@
return ret;
}
-static void check_and_set_ext_disp_connection_status(const struct audio_device *adev,
+static void audio_extn_ext_disp_set_parameters(const struct audio_device *adev,
struct str_parms *parms)
{
char value[32] = {0};
@@ -204,13 +204,14 @@
&& (atoi(value) & AUDIO_DEVICE_OUT_AUX_DIGITAL)){
//params = "disconnect=1024" for external display disconnection.
update_ext_disp_sysfs_node(adev, 0);
+ ALOGV("invalidate cached edid");
+ platform_invalidate_hdmi_config(adev->platform);
} else {
// handle ext disp devices only
return;
}
}
-
#ifndef FM_POWER_OPT
#define audio_extn_fm_set_parameters(adev, parms) (0)
#else
@@ -772,7 +773,7 @@
audio_extn_source_track_set_parameters(adev, parms);
audio_extn_fbsp_set_parameters(parms);
audio_extn_keep_alive_set_parameters(adev, parms);
- check_and_set_ext_disp_connection_status(adev, parms);
+ audio_extn_ext_disp_set_parameters(adev, parms);
if (adev->offload_effects_set_parameters != NULL)
adev->offload_effects_set_parameters(parms);
}
@@ -1144,3 +1145,52 @@
}
}
#endif /* KPI_OPTIMIZE_ENABLED */
+
+static int audio_extn_set_multichannel_mask(struct audio_device *adev,
+ struct stream_in *in,
+ struct audio_config *config,
+ bool *channel_mask_updated)
+{
+ int ret = -EINVAL;
+ int channel_count = audio_channel_count_from_in_mask(in->channel_mask);
+ *channel_mask_updated = false;
+
+ int max_mic_count = platform_get_max_mic_count(adev->platform);
+ /* validate input params*/
+ if ((channel_count == 6) &&
+ (in->format == AUDIO_FORMAT_PCM_16_BIT)) {
+
+ switch (max_mic_count) {
+ case 4:
+ config->channel_mask = AUDIO_CHANNEL_INDEX_MASK_4;
+ break;
+ case 3:
+ config->channel_mask = AUDIO_CHANNEL_INDEX_MASK_3;
+ break;
+ case 2:
+ config->channel_mask = AUDIO_CHANNEL_IN_STEREO;
+ break;
+ default:
+ config->channel_mask = AUDIO_CHANNEL_IN_STEREO;
+ break;
+ }
+ ret = 0;
+ *channel_mask_updated = true;
+ }
+ return ret;
+}
+
+int audio_extn_check_and_set_multichannel_usecase(struct audio_device *adev,
+ struct stream_in *in,
+ struct audio_config *config,
+ bool *update_params)
+{
+ bool ssr_supported = false;
+ ssr_supported = audio_extn_ssr_check_usecase(in);
+ if (ssr_supported) {
+ return audio_extn_ssr_set_usecase(in, config, update_params);
+ } else {
+ return audio_extn_set_multichannel_mask(adev, in, config,
+ update_params);
+ }
+}
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
index cd9763e..07714f6 100644
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -194,17 +194,21 @@
#endif
#ifndef SSR_ENABLED
-#define audio_extn_ssr_check_and_set_usecase(in) (-1)
-#define audio_extn_ssr_init(in, num_out_chan) (0)
-#define audio_extn_ssr_deinit() (0)
-#define audio_extn_ssr_update_enabled() (0)
-#define audio_extn_ssr_get_enabled() (0)
-#define audio_extn_ssr_read(stream, buffer, bytes) (0)
-#define audio_extn_ssr_set_parameters(adev, parms) (0)
-#define audio_extn_ssr_get_parameters(adev, parms, reply) (0)
-#define audio_extn_ssr_get_stream() (0)
+#define audio_extn_ssr_check_usecase(in) (0)
+#define audio_extn_ssr_set_usecase(in, config, channel_mask_updated) (0)
+#define audio_extn_ssr_init(in, num_out_chan) (0)
+#define audio_extn_ssr_deinit() (0)
+#define audio_extn_ssr_update_enabled() (0)
+#define audio_extn_ssr_get_enabled() (0)
+#define audio_extn_ssr_read(stream, buffer, bytes) (0)
+#define audio_extn_ssr_set_parameters(adev, parms) (0)
+#define audio_extn_ssr_get_parameters(adev, parms, reply) (0)
+#define audio_extn_ssr_get_stream() (0)
#else
-int audio_extn_ssr_check_and_set_usecase(struct stream_in *in);
+bool audio_extn_ssr_check_usecase(struct stream_in *in);
+int audio_extn_ssr_set_usecase(struct stream_in *in,
+ struct audio_config *config,
+ bool *channel_mask_updated);
int32_t audio_extn_ssr_init(struct stream_in *in,
int num_out_chan);
int32_t audio_extn_ssr_deinit();
@@ -219,6 +223,10 @@
struct str_parms *reply);
struct stream_in *audio_extn_ssr_get_stream();
#endif
+int audio_extn_check_and_set_multichannel_usecase(struct audio_device *adev,
+ struct stream_in *in,
+ struct audio_config *config,
+ bool *update_params);
#ifndef HW_VARIANTS_ENABLED
#define hw_info_init(snd_card_name) (0)
diff --git a/hal/audio_extn/dolby.c b/hal/audio_extn/dolby.c
index f07c66a..b958bf6 100644
--- a/hal/audio_extn/dolby.c
+++ b/hal/audio_extn/dolby.c
@@ -484,9 +484,7 @@
};
int audio_extn_dap_hal_init(int snd_card) {
- char c_dmid[128] = {0};
- void *handle = NULL;
- int i_dmid, ret = -EINVAL;
+ int ret = -EINVAL;
dap_hal_device_be_id_map_t device_be_id_map;
ALOGV("%s: opening DAP HAL lib\n", __func__);
@@ -532,9 +530,7 @@
void audio_extn_dolby_ds2_set_endpoint(struct audio_device *adev) {
struct listnode *node;
struct audio_usecase *usecase;
- struct mixer_ctl *ctl;
- const char *mixer_ctl_name = "DS1 DAP Endpoint";
- int endpoint = 0, ret;
+ int endpoint = 0;
bool send = false;
list_for_each(node, &adev->usecase_list) {
@@ -587,7 +583,7 @@
return 0;
}
-int audio_extn_dolby_set_dap_bypass(struct audio_device *adev, int state) {
+int audio_extn_dolby_set_dap_bypass(struct audio_device *adev __unused, int state) {
ALOGV("%s: state %d", __func__, state);
if (ds2extnmod.dap_hal_set_hw_info) {
@@ -599,12 +595,12 @@
return 0;
}
-void audio_extn_dolby_set_license(struct audio_device *adev)
+void audio_extn_dolby_set_license(struct audio_device *adev __unused)
{
int i_key=0;
char c_key[128] = {0};
char c_dmid[128] = {0};
- int i_dmid, ret = -EINVAL;
+ int i_dmid;
struct dolby_param_license dolby_license;
#ifdef DOLBY_ACDB_LICENSE
@@ -631,7 +627,7 @@
void audio_extn_ds2_set_parameters(struct audio_device *adev,
struct str_parms *parms)
{
- int val, ret;
+ int ret;
char value[32]={0};
ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SND_CARD_STATUS, value,
diff --git a/hal/audio_extn/ssr.c b/hal/audio_extn/ssr.c
index f55f3ce..51a6a26 100644
--- a/hal/audio_extn/ssr.c
+++ b/hal/audio_extn/ssr.c
@@ -331,33 +331,55 @@
return false;
}
-int audio_extn_ssr_check_and_set_usecase(struct stream_in *in)
-{
- int ret = -1;
+bool audio_extn_ssr_check_usecase(struct stream_in *in) {
+ int ret = false;
int channel_count = audio_channel_count_from_in_mask(in->channel_mask);
audio_devices_t devices = in->device;
audio_source_t source = in->source;
- /* validate input params
- * only stereo and 5:1 channel config is supported
- * only AUDIO_DEVICE_IN_BUILTIN_MIC, AUDIO_DEVICE_IN_BACK_MIC supports 3 mics */
- if (audio_extn_ssr_get_enabled() &&
- ((channel_count == 2) || (channel_count == 6)) &&
- ((AUDIO_SOURCE_MIC == source) || (AUDIO_SOURCE_CAMCORDER == source)) &&
- ((AUDIO_DEVICE_IN_BUILTIN_MIC == devices) || (AUDIO_DEVICE_IN_BACK_MIC == devices)) &&
- (in->format == AUDIO_FORMAT_PCM_16_BIT)) {
-
- ALOGD("%s: Found SSR use case starting SSR lib with channel_count :%d",
+ if ((audio_extn_ssr_get_enabled()) &&
+ ((channel_count == 2) || (channel_count == 6)) &&
+ ((AUDIO_SOURCE_MIC == source) || (AUDIO_SOURCE_CAMCORDER == source)) &&
+ ((AUDIO_DEVICE_IN_BUILTIN_MIC == devices) || (AUDIO_DEVICE_IN_BACK_MIC == devices)) &&
+ (in->format == AUDIO_FORMAT_PCM_16_BIT)) {
+ ALOGD("%s: SSR enabled with channel_count :%d",
__func__, channel_count);
+ ret = true;
+ }
+ return ret;
+}
- if (!audio_extn_ssr_init(in, channel_count)) {
- ALOGD("%s: Created SSR session succesfully", __func__);
+int audio_extn_ssr_set_usecase(struct stream_in *in,
+ struct audio_config *config,
+ bool *update_params)
+{
+ int ret = -EINVAL;
+ int channel_count = audio_channel_count_from_in_mask(in->channel_mask);
+ audio_channel_representation_t representation =
+ audio_channel_mask_get_representation(in->channel_mask);
+ *update_params = false;
+
+ if (audio_extn_ssr_check_usecase(in)) {
+
+ if (representation == AUDIO_CHANNEL_REPRESENTATION_INDEX) {
+ /* update params in case channel representation index.
+ * on returning error, flinger will retry with supported representation passed
+ */
+ ALOGD("%s: SSR supports only channel representation position, channel_mask(%#x)"
+ ,__func__, config->channel_mask);
+ config->channel_mask = AUDIO_CHANNEL_IN_5POINT1;
ret = 0;
+ *update_params = true;
} else {
- ALOGE("%s: Unable to start SSR record session", __func__);
+ if (!audio_extn_ssr_init(in, channel_count)) {
+ ALOGD("%s: Created SSR session succesfully", __func__);
+ ret = 0;
+ } else {
+ ALOGE("%s: Unable to start SSR record session", __func__);
+ }
}
- }
- return ret;
+ }
+ return ret;
}
static void pcm_buffer_queue_push(struct pcm_buffer_queue **queue,
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 3816748..3a12adf 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1206,6 +1206,19 @@
return NULL;
}
+struct stream_in *get_next_active_input(const struct audio_device *adev)
+{
+ struct audio_usecase *usecase;
+ struct listnode *node;
+
+ list_for_each_reverse(node, &adev->usecase_list) {
+ usecase = node_to_item(node, struct audio_usecase, list);
+ if (usecase->type == PCM_CAPTURE)
+ return usecase->stream.in;
+ }
+ return NULL;
+}
+
/*
* is a true native playback active
*/
@@ -1424,6 +1437,10 @@
if (voice_is_call_state_active(adev) ||
voice_extn_compress_voip_is_started(adev))
voice_set_sidetone(adev, usecase->out_snd_device, false);
+
+ /* Disable aanc only if voice call exists */
+ if (voice_is_call_state_active(adev))
+ voice_check_and_update_aanc_path(adev, usecase->out_snd_device, false);
}
/* Disable current sound devices */
@@ -1494,6 +1511,10 @@
enable_audio_route(adev, usecase);
if (usecase->type == VOICE_CALL || usecase->type == VOIP_CALL) {
+ /* Enable aanc only if voice call exists */
+ if (voice_is_call_state_active(adev))
+ voice_check_and_update_aanc_path(adev, out_snd_device, true);
+
/* Enable sidetone only if other voice/voip call already exists */
if (voice_is_call_state_active(adev) ||
voice_extn_compress_voip_is_started(adev))
@@ -1519,7 +1540,7 @@
struct audio_usecase *uc_info;
struct audio_device *adev = in->dev;
- adev->active_input = NULL;
+ adev->active_input = get_next_active_input(adev);
ALOGV("%s: enter: usecase(%d: %s)", __func__,
in->usecase, use_case_table[in->usecase]);
@@ -1666,7 +1687,7 @@
audio_extn_perf_lock_release(&adev->perf_lock_handle);
stop_input_stream(in);
error_config:
- adev->active_input = NULL;
+ adev->active_input = get_next_active_input(adev);
/*
* sleep 50ms to allow sufficient time for kernel
* drivers to recover incases like SSR.
@@ -2452,7 +2473,15 @@
(val == AUDIO_DEVICE_NONE)) {
val = AUDIO_DEVICE_OUT_SPEAKER;
}
-
+ /* To avoid a2dp to sco overlapping force route BT usecases
+ * to speaker based on Phone state
+ */
+ if ((val & AUDIO_DEVICE_OUT_BLUETOOTH_A2DP) &&
+ ((adev->mode == AUDIO_MODE_RINGTONE) ||
+ (adev->mode == AUDIO_MODE_IN_CALL))) {
+ ALOGD("Forcing a2dp routing to speaker for ring/call mode");
+ val = AUDIO_DEVICE_OUT_SPEAKER;
+ }
/*
* select_devices() call below switches all the usecases on the same
* backend to the new device. Refer to check_usecases_codec_backend() in
@@ -4251,10 +4280,13 @@
ret = str_parms_get_str(parms, AUDIO_PARAMETER_DEVICE_DISCONNECT, value, sizeof(value));
if (ret >= 0) {
val = atoi(value);
- if (val & AUDIO_DEVICE_OUT_AUX_DIGITAL) {
- ALOGV("invalidate cached edid");
- platform_invalidate_hdmi_config(adev->platform);
- } else if ((val & AUDIO_DEVICE_OUT_USB_DEVICE) ||
+ /*
+ * The HDMI / Displayport disconnect handling has been moved to
+ * audio extension to ensure that its parameters are not
+ * invalidated prior to updating sysfs of the disconnect event
+ * Invalidate will be handled by audio_extn_ext_disp_set_parameters()
+ */
+ if ((val & AUDIO_DEVICE_OUT_USB_DEVICE) ||
!(val ^ AUDIO_DEVICE_IN_USB_DEVICE)) {
ret = str_parms_get_str(parms, "card", value, sizeof(value));
if (ret >= 0) {
@@ -4440,6 +4472,7 @@
int ret = 0, buffer_size, frame_size;
int channel_count = audio_channel_count_from_in_mask(config->channel_mask);
bool is_low_latency = false;
+ bool channel_mask_updated = false;
*stream_in = NULL;
if (check_input_parameters(config->sample_rate, config->format, channel_count) != 0) {
@@ -4534,7 +4567,14 @@
in->config.channels = channel_count;
in->config.rate = config->sample_rate;
in->sample_rate = config->sample_rate;
- } else if (!audio_extn_ssr_check_and_set_usecase(in)) {
+ } else if (!audio_extn_check_and_set_multichannel_usecase(adev,
+ in, config, &channel_mask_updated)) {
+ if (channel_mask_updated == true) {
+ ALOGD("%s: return error to retry with updated channel mask (%#x)",
+ __func__, config->channel_mask);
+ ret = -EINVAL;
+ goto err_open;
+ }
ALOGD("%s: created surround sound session succesfully",__func__);
} else if (audio_extn_compr_cap_enabled() &&
audio_extn_compr_cap_format_supported(config->format) &&
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index a5cc804..a42f984 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -780,8 +780,8 @@
static int msm_device_to_be_id_external_codec [][NO_COLS] = {
{AUDIO_DEVICE_OUT_EARPIECE , 2},
{AUDIO_DEVICE_OUT_SPEAKER , 2},
- {AUDIO_DEVICE_OUT_WIRED_HEADSET , 2},
- {AUDIO_DEVICE_OUT_WIRED_HEADPHONE , 2},
+ {AUDIO_DEVICE_OUT_WIRED_HEADSET , 41},
+ {AUDIO_DEVICE_OUT_WIRED_HEADPHONE , 41},
{AUDIO_DEVICE_OUT_BLUETOOTH_SCO , 11},
{AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET , 11},
{AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT , 11},
@@ -2924,6 +2924,7 @@
*num_devices = 2;
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_BT_A2DP;
+ status = true;
}
ALOGD("%s: snd_device(%d) num devices(%d) new_snd_devices(%d)", __func__,
@@ -5622,6 +5623,14 @@
return 0;
}
+void platform_update_aanc_path(struct audio_device *adev __unused,
+ snd_device_t out_snd_device __unused,
+ bool enable __unused,
+ char *str __unused)
+{
+ return;
+}
+
bool platform_check_codec_dsd_support(void *platform __unused)
{
return false;
@@ -5671,3 +5680,8 @@
{
return -ENOSYS;
}
+
+int platform_get_max_mic_count(void *platform) {
+ struct platform_data *my_data = (struct platform_data *)platform;
+ return my_data->max_mic_count;
+}
diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c
index b5a4f11..e025772 100644
--- a/hal/msm8960/platform.c
+++ b/hal/msm8960/platform.c
@@ -1315,6 +1315,14 @@
return 0;
}
+void platform_update_aanc_path(struct audio_device *adev __unused,
+ snd_device_t out_snd_device __unused,
+ bool enable __unused,
+ char *str __unused)
+{
+ return;
+}
+
bool platform_check_codec_dsd_support(void *platform __unused)
{
return false;
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 10ca7e4..e947f91 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -795,8 +795,8 @@
static int msm_device_to_be_id [][NO_COLS] = {
{AUDIO_DEVICE_OUT_EARPIECE , 2},
{AUDIO_DEVICE_OUT_SPEAKER , 2},
- {AUDIO_DEVICE_OUT_WIRED_HEADSET , 2},
- {AUDIO_DEVICE_OUT_WIRED_HEADPHONE , 2},
+ {AUDIO_DEVICE_OUT_WIRED_HEADSET , 41},
+ {AUDIO_DEVICE_OUT_WIRED_HEADPHONE , 41},
{AUDIO_DEVICE_OUT_BLUETOOTH_SCO , 11},
{AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET , 11},
{AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT , 11},
@@ -2742,9 +2742,9 @@
*num_devices = 2;
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_BT_A2DP;
+ status = true;
}
-
ALOGD("%s: snd_device(%d) num devices(%d) new_snd_devices(%d)", __func__,
snd_device, *num_devices, *new_snd_devices);
@@ -5651,6 +5651,22 @@
return 0;
}
+void platform_update_aanc_path(struct audio_device *adev,
+ snd_device_t out_snd_device,
+ bool enable,
+ char *str)
+{
+ ALOGD("%s: aanc out device(%d) mixer cmd = %s, enable = %d\n",
+ __func__, out_snd_device, str, enable);
+
+ if (enable)
+ audio_route_apply_and_update_path(adev->audio_route, str);
+ else
+ audio_route_reset_and_update_path(adev->audio_route, str);
+
+ return;
+}
+
static void make_cal_cfg(acdb_audio_cal_cfg_t* cal, int acdb_dev_id,
int acdb_device_type, int app_type, int topology_id,
int sample_rate, uint32_t module_id, uint32_t param_id, bool persist)
@@ -5800,3 +5816,8 @@
ERROR_RETURN:
return ret;
}
+
+int platform_get_max_mic_count(void *platform) {
+ struct platform_data *my_data = (struct platform_data *)platform;
+ return my_data->max_mic_count;
+}
diff --git a/hal/platform_api.h b/hal/platform_api.h
index 7dcd1b6..61f42de 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -157,12 +157,17 @@
snd_device_t out_snd_device,
bool enable,
char * str);
+void platform_update_aanc_path(struct audio_device *adev,
+ snd_device_t out_snd_device,
+ bool enable,
+ char * str);
bool platform_supports_true_32bit();
bool platform_check_if_backend_has_to_be_disabled(snd_device_t new_snd_device, snd_device_t cuurent_snd_device);
bool platform_check_codec_dsd_support(void *platform);
bool platform_check_codec_asrc_support(void *platform);
int platform_get_backend_index(snd_device_t snd_device);
int platform_get_ext_disp_type(void *platform);
+void platform_invalidate_hdmi_config(void *platform);
int platform_send_audio_cal(void* platform, int acdb_dev_id, int acdb_device_type,
int app_type, int topology_id, int sample_rate, uint32_t module_id, uint32_t param_id,
@@ -181,4 +186,5 @@
void* data, int* length);
unsigned char* platform_get_license(void* platform, int* size);
+int platform_get_max_mic_count(void *platform);
#endif // AUDIO_PLATFORM_API_H
diff --git a/hal/voice.c b/hal/voice.c
index b84c7b7..ca3098b 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -95,6 +95,39 @@
return;
}
+static bool voice_is_aanc_device(snd_device_t out_device,
+ char *mixer_path)
+{
+ bool is_aanc_dev;
+
+ switch (out_device) {
+ case SND_DEVICE_OUT_ANC_HANDSET:
+ is_aanc_dev = true;
+ strlcpy(mixer_path, "aanc-path", MIXER_PATH_MAX_LENGTH);
+ break;
+ default:
+ is_aanc_dev = false;
+ break;
+ }
+
+ return is_aanc_dev;
+}
+
+void voice_check_and_update_aanc_path(struct audio_device *adev,
+ snd_device_t out_snd_device,
+ bool enable)
+{
+ char mixer_path[MIXER_PATH_MAX_LENGTH];
+
+ ALOGV("%s: %s, out_snd_device: %d\n",
+ __func__, (enable ? "enable" : "disable"), out_snd_device);
+
+ if (voice_is_aanc_device(out_snd_device, mixer_path))
+ platform_update_aanc_path(adev, out_snd_device, enable, mixer_path);
+
+ return;
+}
+
int voice_stop_usecase(struct audio_device *adev, audio_usecase_t usecase_id)
{
int ret = 0;
@@ -125,6 +158,10 @@
if (!voice_is_call_state_active(adev))
voice_set_sidetone(adev, uc_info->out_snd_device, false);
+ /* Disable aanc only when no calls are active */
+ if (!voice_is_call_state_active(adev))
+ voice_check_and_update_aanc_path(adev, uc_info->out_snd_device, false);
+
ret = platform_stop_voice_call(adev->platform, session->vsid);
/* 1. Close the PCM devices */
@@ -229,6 +266,10 @@
pcm_start(session->pcm_tx);
pcm_start(session->pcm_rx);
+ /* Enable aanc only when no calls are active */
+ if (!voice_is_call_state_active(adev))
+ voice_check_and_update_aanc_path(adev, uc_info->out_snd_device, true);
+
/* Enable sidetone only when no calls are already active */
if (!voice_is_call_state_active(adev))
voice_set_sidetone(adev, uc_info->out_snd_device, true);
diff --git a/hal/voice.h b/hal/voice.h
index efe48d8..3ae42a8 100644
--- a/hal/voice.h
+++ b/hal/voice.h
@@ -97,5 +97,8 @@
void voice_set_sidetone(struct audio_device *adev,
snd_device_t out_snd_device,
bool enable);
+void voice_check_and_update_aanc_path(struct audio_device *adev,
+ snd_device_t out_snd_device,
+ bool enable);
bool voice_is_call_state_active(struct audio_device *adev);
#endif //VOICE_H
diff --git a/policy_hal/Android.mk b/policy_hal/Android.mk
index 854eaee..f9913c4 100644
--- a/policy_hal/Android.mk
+++ b/policy_hal/Android.mk
@@ -1,3 +1,16 @@
+# This file was modified by Dolby Laboratories, Inc. The portions of the
+# code that are surrounded by "DOLBY..." are copyrighted and
+# licensed separately, as follows:
+#
+# (C) 2016 Dolby Laboratories, Inc.
+# All rights reserved.
+#
+# This program is protected under international and U.S. Copyright laws as
+# an unpublished work. This program is confidential and proprietary to the
+# copyright owners. Reproduction or disclosure, in whole or in part, or the
+# production of derivative works therefrom without the express permission of
+# the copyright owners is prohibited.
+#
ifneq ($(USE_LEGACY_AUDIO_POLICY), 1)
ifeq ($(USE_CUSTOM_AUDIO_POLICY), 1)
LOCAL_PATH := $(call my-dir)
@@ -64,6 +77,11 @@
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_FM_POWER_OPT)),true)
LOCAL_CFLAGS += -DFM_POWER_OPT
endif
+# DOLBY_START
+ifeq ($(strip $(DOLBY_ENABLE)),true)
+LOCAL_CFLAGS += $(dolby_cflags)
+endif
+# DOLBY_END
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
LOCAL_CFLAGS += -DUSE_XML_AUDIO_POLICY_CONF