Merge "configs: add VORBIS FORMAT for compress_offload 24 bit"
diff --git a/Android.mk b/Android.mk
index 0bf32b7..dbb645c 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,3 +1,4 @@
+ifneq ($(DUAL_AUDIO_FRAMEWORK_AR), true)
ifneq ($(AUDIO_USE_STUB_HAL), true)
ifneq ($(filter mpq8092 msm8960 msm8226 msm8x26 msm8610 msm8974 msm8x74 apq8084 msm8916 msm8994 msm8992 msm8909 msm8996 msm8952 msm8937 thorium msm8953 msmgold msm8998 sdm660 sdm845 sdm710 apq8098_latv qcs605 sdmshrike msmnile kona lahaina holi $(MSMSTEPPE) $(TRINKET) atoll lito bengal,$(TARGET_BOARD_PLATFORM)),)
@@ -26,3 +27,4 @@
endif
endif
+endif
diff --git a/Makefile.am b/Makefile.am
old mode 100644
new mode 100755
index d4aef58..38e98ea
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = hal post_proc
+SUBDIRS = hal hal/audio_extn
if QAHW_SUPPORT
SUBDIRS += qahw_api qahw_api/test
diff --git a/configs/atoll/audio_policy_configuration.xml b/configs/atoll/audio_policy_configuration.xml
index 50762fc..3d48b56 100755
--- a/configs/atoll/audio_policy_configuration.xml
+++ b/configs/atoll/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -80,8 +116,6 @@
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
- <profile name="" format="dynamic"
- samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
@@ -187,7 +221,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
@@ -222,7 +256,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -258,11 +292,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -285,11 +319,11 @@
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
diff --git a/configs/atoll/mixer_paths.xml b/configs/atoll/mixer_paths.xml
index 3fbd2d6..c64f5ea 100644
--- a/configs/atoll/mixer_paths.xml
+++ b/configs/atoll/mixer_paths.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -867,6 +867,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/atoll/mixer_paths_qrd.xml b/configs/atoll/mixer_paths_qrd.xml
index b3ef62b..556cbe7 100755
--- a/configs/atoll/mixer_paths_qrd.xml
+++ b/configs/atoll/mixer_paths_qrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -871,6 +871,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/atoll/mixer_paths_wcd937x.xml b/configs/atoll/mixer_paths_wcd937x.xml
index 928820f..da092c7 100644
--- a/configs/atoll/mixer_paths_wcd937x.xml
+++ b/configs/atoll/mixer_paths_wcd937x.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -843,6 +843,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/atoll/mixer_paths_wcd937xqrd.xml b/configs/atoll/mixer_paths_wcd937xqrd.xml
index f499718..4a0eedd 100644
--- a/configs/atoll/mixer_paths_wcd937xqrd.xml
+++ b/configs/atoll/mixer_paths_wcd937xqrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -730,6 +730,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/audio_vendor_product.mk b/configs/audio_vendor_product.mk
new file mode 100644
index 0000000..f7caa41
--- /dev/null
+++ b/configs/audio_vendor_product.mk
@@ -0,0 +1,228 @@
+#MM_AUDIO product packages
+MM_AUDIO += audiod
+MM_AUDIO += libacdbloader
+MM_AUDIO += libalsautils
+MM_AUDIO += libaudcal
+MM_AUDIO += libaudioalsa
+MM_AUDIO += libaudioparsers
+MM_AUDIO += libaudioconfigstore
+MM_AUDIO += libcsd-client
+MM_AUDIO += lib_iec_60958_61937
+MM_AUDIO += libmm-audio-resampler
+MM_AUDIO += libstagefright_soft_qtiflacdec
+MM_AUDIO += QCAudioManager
+MM_AUDIO += liblistensoundmodel
+MM_AUDIO += liblistensoundmodel2
+MM_AUDIO += liblsmclient
+MM_AUDIO += libcapiv2svacnn
+MM_AUDIO += libcapiv2vop
+MM_AUDIO += libcapiv2svarnn
+MM_AUDIO += liblistensoundmodel2vendor
+MM_AUDIO += libsvacnnvendor
+MM_AUDIO += libsvarnncnnvendor
+MM_AUDIO += libcapiv2svacnnvendor
+MM_AUDIO += libcapiv2vopvendor
+MM_AUDIO += libcapiv2svarnnvendor
+MM_AUDIO += libpdksvavendor
+MM_AUDIO += liblisten
+MM_AUDIO += liblistenhardware
+MM_AUDIO += STApp
+MM_AUDIO += libqtigef
+MM_AUDIO += libqcbassboost
+MM_AUDIO += libqcvirt
+MM_AUDIO += libqcreverb
+MM_AUDIO += libasphere
+MM_AUDIO += audio_effects.conf
+MM_AUDIO += ftm_test_config
+MM_AUDIO += libFlacSwDec
+MM_AUDIO += libAlacSwDec
+MM_AUDIO += libApeSwDec
+MM_AUDIO += libMpeghSwEnc
+MM_AUDIO += libdsd2pcm
+MM_AUDIO += audioflacapp
+ifeq ($(TARGET_BOARD_PLATFORM),sdm845)
+MM_AUDIO += libOmxQcelp13Dec
+MM_AUDIO += libOmxEvrcDec
+MM_AUDIO += libOmxWmaDec
+MM_AUDIO += libOmxAlacDec
+MM_AUDIO += libOmxApeDec
+MM_AUDIO += libOmxDsdDec
+MM_AUDIO += libOmxAmrwbplusDec
+MM_AUDIO += libOmxAmrDec
+MM_AUDIO += libOmxAlacDecSw
+MM_AUDIO += libOmxApeDecSw
+endif
+MM_AUDIO += libqct_resampler
+MM_AUDIO += libaudiodevarb
+MM_AUDIO += audiod
+MM_AUDIO += libsmwrapper
+MM_AUDIO += libadpcmdec
+MM_AUDIO += libmulawdec
+MM_AUDIO += sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
+MM_AUDIO += sound_trigger_test
+MM_AUDIO += libhwdaphal
+MM_AUDIO += libqcomvisualizer
+MM_AUDIO += libqcomvoiceprocessing
+MM_AUDIO += libqcompostprocbundle
+MM_AUDIO += libqvop-service
+MM_AUDIO += libqvop-algo-jni.qti
+MM_AUDIO += qvop-daemon
+MM_AUDIO += VoicePrintSDK
+MM_AUDIO += libadm
+MM_AUDIO += libsurround_3mic_proc
+MM_AUDIO += surround_sound_rec_AZ.cfg
+MM_AUDIO += surround_sound_rec_5.1.cfg
+MM_AUDIO += libdrc
+MM_AUDIO += drc_cfg_AZ.txt
+MM_AUDIO += drc_cfg_5.1.txt
+MM_AUDIO += libgcs-osal
+MM_AUDIO += libgcs-calwrapper
+MM_AUDIO += libgcs-ipc
+MM_AUDIO += libgcs
+MM_AUDIO += noisesample.bin
+MM_AUDIO += antispoofing.bin
+MM_AUDIO += libshoebox
+MM_AUDIO += libdolby_ms12_wrapper
+MM_AUDIO += silence.ac3
+MM_AUDIO += libaudio_ip_handler
+MM_AUDIO += libsndmonitor
+MM_AUDIO += libcomprcapture
+MM_AUDIO += libssrec
+MM_AUDIO += libhdmiedid
+MM_AUDIO += libspkrprot
+MM_AUDIO += libcirrusspkrprot
+MM_AUDIO += liba2dpoffload
+MM_AUDIO += libexthwplugin
+MM_AUDIO += libhfp
+MM_AUDIO += libhdmipassthru
+MM_AUDIO += libbatterylistener
+MM_AUDIO += libhwdepcal
+MM_AUDIO += libmediaplayerservice
+MM_AUDIO += libaudiohal_deathhandler
+MM_AUDIO += libstagefright_httplive
+MM_AUDIO += libautohal
+MM_AUDIO += MTP_Bluetooth_cal.acdb
+MM_AUDIO += MTP_Codec_cal.acdb
+MM_AUDIO += MTP_General_cal.acdb
+MM_AUDIO += MTP_Global_cal.acdb
+MM_AUDIO += MTP_Handset_cal.acdb
+MM_AUDIO += MTP_Hdmi_cal.acdb
+MM_AUDIO += MTP_Headset_cal.acdb
+MM_AUDIO += MTP_Speaker_cal.acdb
+MM_AUDIO += MTP_workspaceFile.qwsp
+MM_AUDIO += QRD_Bluetooth_cal.acdb
+MM_AUDIO += QRD_Codec_cal.acdb
+MM_AUDIO += QRD_General_cal.acdb
+MM_AUDIO += QRD_Global_cal.acdb
+MM_AUDIO += QRD_Handset_cal.acdb
+MM_AUDIO += QRD_Hdmi_cal.acdb
+MM_AUDIO += QRD_Headset_cal.acdb
+MM_AUDIO += QRD_Speaker_cal.acdb
+MM_AUDIO += QRD_workspaceFile.qwsp
+ifeq ($(TARGET_BOARD_AUTO),true)
+MM_AUDIO += adsp_avs_config.acdb
+MM_AUDIO += Bluetooth_cal.acdb
+MM_AUDIO += Codec_cal.acdb
+MM_AUDIO += General_cal.acdb
+MM_AUDIO += Global_cal.acdb
+MM_AUDIO += Handset_cal.acdb
+MM_AUDIO += Hdmi_cal.acdb
+MM_AUDIO += Headset_cal.acdb
+MM_AUDIO += Speaker_cal.acdb
+
+MM_AUDIO += libaudiohalplugin
+MM_AUDIO += libcdcdriver
+MM_AUDIO += libvad
+MM_AUDIO += capi_v2_bmt
+MM_AUDIO += capi_v2_fnb
+MM_AUDIO += capi_v2_loud
+MM_AUDIO += capi_v2_peq
+MM_AUDIO += capi_v2_sumx
+MM_AUDIO += capi_v2_synth
+MM_AUDIO += capi_v2_avc
+MM_AUDIO += capi_v2_asrc
+MM_AUDIO += capi_v2_ecmx
+MM_AUDIO += capi_v2_vote
+MM_AUDIO += icc_module.so.1
+MM_AUDIO += sec_module.so.1
+MM_AUDIO += audio-nxp-auto
+MM_AUDIO += libaudio-nxp-auto
+MM_AUDIO += mercuryflasher
+MM_AUDIO += liba2bplugin-master
+MM_AUDIO += liba2bplugin-slave
+MM_AUDIO += liba2bstack
+MM_AUDIO += liba2bstack-pal
+MM_AUDIO += liba2bstack-protobuf
+MM_AUDIO += a2b-app
+MM_AUDIO += liba2bdriver
+MM_AUDIO += libacdbloaderclient
+MM_AUDIO += acdb_loader_service
+MM_AUDIO += libaudiohalpluginclient
+MM_AUDIO += audio_hal_plugin_service
+MM_AUDIO += audio_chime
+MM_AUDIO += libqtiautobundle
+MM_AUDIO += autoeffects
+MM_AUDIO += autoeffects.xml
+MM_AUDIO += audcalparam_commands.cfg
+MM_AUDIO += audcalparam_commands_elite.cfg
+MM_AUDIO += libsynth
+MM_AUDIO += libicc
+
+ifneq ( ,$(filter T Tiramisu 13, $(PLATFORM_VERSION)))
+MM_AUDIO += vendor.qti.hardware.automotive.audiocontrol-service
+else
+MM_AUDIO += android.hardware.automotive.audiocontrol-service.example
+endif
+MM_AUDIO += libaudiopowerpolicy
+endif
+
+ifeq ($(ENABLE_HYP), true)
+MM_AUDIO += amfsservice
+endif
+
+#MM_AUDIO_DBG
+MM_AUDIO_DBG += libstagefright_soft_ddpdec
+MM_AUDIO_DBG += libsurround_proc
+MM_AUDIO_DBG += surround_sound_headers
+MM_AUDIO_DBG += filter1i.pcm
+MM_AUDIO_DBG += filter1r.pcm
+MM_AUDIO_DBG += filter2i.pcm
+MM_AUDIO_DBG += filter2r.pcm
+MM_AUDIO_DBG += filter3i.pcm
+MM_AUDIO_DBG += filter3r.pcm
+MM_AUDIO_DBG += filter4i.pcm
+MM_AUDIO_DBG += filter4r.pcm
+MM_AUDIO_DBG += mm-audio-ftm
+MM_AUDIO_DBG += mm-audio-alsa-test
+MM_AUDIO_DBG += avs_test_ker.ko
+MM_AUDIO_DBG += libsrsprocessing_libs
+MM_AUDIO_DBG += libsrsprocessing
+MM_AUDIO_DBG += libacdbrtac
+MM_AUDIO_DBG += libadiertac
+
+PRODUCT_PACKAGES += $(MM_AUDIO)
+
+PRODUCT_PACKAGES_DEBUG += $(MM_AUDIO_DBG)
+
+#-------
+# audio specific
+# ------
+TARGET_USES_AOSP := true
+TARGET_USES_AOSP_FOR_AUDIO := false
+
+# sdm845 specific rules
+ifeq ($(TARGET_BOARD_PLATFORM),sdm845)
+TARGET_USES_AOSP := false
+TARGET_USES_AOSP_FOR_AUDIO := false
+endif
+
+# Audio configuration file
+ifeq ($(TARGET_GVMGH_SPECIFIC), false)
+-include $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/msmnile_au.mk
+else ifeq ($(TARGET_BOARD_PLATFORM)$(TARGET_BOARD_SUFFIX)$(TARGET_BOARD_DERIVATIVE_SUFFIX),msmnile_au_km4)
+-include $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/msmnile_au.mk
+else ifeq ($(TARGET_BOARD_PLATFORM)$(TARGET_BOARD_SUFFIX)$(TARGET_BOARD_DERIVATIVE_SUFFIX),msmnile_au_ar)
+-include $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/msmnile_au.mk
+else ifeq ($(TARGET_BOARD_PLATFORM)$(TARGET_BOARD_SUFFIX),sm6150_au)
+-include $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/msmsteppe_au.mk
+endif
diff --git a/configs/bengal/audio_policy_configuration.xml b/configs/bengal/audio_policy_configuration.xml
index 1b4ac35..73f1a8c 100755
--- a/configs/bengal/audio_policy_configuration.xml
+++ b/configs/bengal/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -80,8 +116,6 @@
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
- <profile name="" format="dynamic"
- samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
@@ -181,7 +215,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
@@ -221,7 +255,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -257,11 +291,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -284,11 +318,11 @@
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
diff --git a/configs/bengal/mixer_paths.xml b/configs/bengal/mixer_paths.xml
index e3ca0c9..dbe85b7 100644
--- a/configs/bengal/mixer_paths.xml
+++ b/configs/bengal/mixer_paths.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -804,6 +804,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
@@ -1934,7 +1954,7 @@
<ctl name="MultiMedia17 Mixer SLIM_7_TX" value="1" />
</path>
- <path name="audio-record-compress bt-sco-wb">
+ <path name="audio-record-compress2 bt-sco-wb">
<ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-compress2 bt-sco" />
</path>
diff --git a/configs/bengal/mixer_paths_qrd.xml b/configs/bengal/mixer_paths_qrd.xml
index 93f2739..5c26b66 100755
--- a/configs/bengal/mixer_paths_qrd.xml
+++ b/configs/bengal/mixer_paths_qrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -802,6 +802,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/bengal/mixer_paths_scubaidp.xml b/configs/bengal/mixer_paths_scubaidp.xml
index 1d671f7..63109ea 100644
--- a/configs/bengal/mixer_paths_scubaidp.xml
+++ b/configs/bengal/mixer_paths_scubaidp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -806,6 +806,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/bengal/mixer_paths_scubaqrd.xml b/configs/bengal/mixer_paths_scubaqrd.xml
index 0d265e7..90c7b7b 100644
--- a/configs/bengal/mixer_paths_scubaqrd.xml
+++ b/configs/bengal/mixer_paths_scubaqrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -790,6 +790,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/common/audio_policy_configuration.xml b/configs/common/audio_policy_configuration.xml
index 45bda7b..78b5073 100644
--- a/configs/common/audio_policy_configuration.xml
+++ b/configs/common/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2017, 2019, 2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
diff --git a/configs/common_au/audio_policy_configuration.xml b/configs/common_au/audio_policy_configuration.xml
index 01fa0de..a851fbf 100644
--- a/configs/common_au/audio_policy_configuration.xml
+++ b/configs/common_au/audio_policy_configuration.xml
@@ -57,6 +57,7 @@
<item>Sys Notification Bus</item>
<item>Nav Guidance Bus</item>
<item>Phone Bus</item>
+ <item>Alerts Bus</item>
<item>Front Passenger Bus</item>
<item>Rear Seat Bus</item>
<item>Built-In Mic</item>
@@ -64,6 +65,8 @@
<item>Primary In Bus</item>
<item>Front Passenger In Bus</item>
<item>Rear Seat In Bus</item>
+ <item>Echo Reference</item>
+ <item>FM Tuner</item>
</attachedDevices>
<defaultOutputDevice>Media Bus</defaultOutputDevice>
<mixPorts>
@@ -76,6 +79,31 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
+ <mixPort name="carplay_8k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_16k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="16000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_24k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="24000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_32k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="32000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_48k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="mixport_tuner0" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000"
+ channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+ </mixPort>
<mixPort name="nav_guidance" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -84,6 +112,10 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
+ <mixPort name="alerts" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="front_passenger" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -127,7 +159,7 @@
</mixPort>
<mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ samplingRates="8000,16000,24000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
@@ -140,7 +172,7 @@
samplingRates="8000,16000,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
- <mixPort name="primary input" role="sink">
+ <mixPort name="primary input" role="sink" maxOpenCount="3" maxActiveCount="3">
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
@@ -164,6 +196,10 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
+ <mixPort name="echo_ref" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
<devicePort tagName="Media Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
@@ -202,6 +238,15 @@
minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
</gains>
</devicePort>
+ <devicePort tagName="Alerts Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
+ address="BUS05_ALERTS">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
<devicePort tagName="Front Passenger Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
address="BUS08_FRONT_PASSENGER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -281,22 +326,34 @@
minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
</gains>
</devicePort>
+ <devicePort tagName="Echo Reference" type="AUDIO_DEVICE_IN_ECHO_REFERENCE" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="16000,48000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </devicePort>
+ <devicePort tagName="FM Tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </devicePort>
</devicePorts>
<routes>
<route type="mix" sink="Media Bus"
- sources="media"/>
+ sources="media,mmap_no_irq_out"/>
<route type="mix" sink="Sys Notification Bus"
- sources="sys_notification"/>
+ sources="sys_notification,carplay_8k_sys,carplay_16k_sys,carplay_24k_sys,carplay_32k_sys,carplay_48k_sys,mmap_no_irq_out"/>
<route type="mix" sink="Nav Guidance Bus"
- sources="nav_guidance"/>
+ sources="nav_guidance,mmap_no_irq_out"/>
<route type="mix" sink="Phone Bus"
- sources="phone"/>
+ sources="phone,mmap_no_irq_out"/>
+ <route type="mix" sink="Alerts Bus"
+ sources="alerts"/>
<route type="mix" sink="Front Passenger Bus"
- sources="front_passenger"/>
+ sources="front_passenger,mmap_no_irq_out"/>
<route type="mix" sink="Rear Seat Bus"
- sources="rear_seat"/>
+ sources="rear_seat,mmap_no_irq_out"/>
<route type="mix" sink="Earpiece"
- sources="primary output,raw,deep_buffer,mmap_no_irq_out,voip_rx"/>
+ sources="primary output,raw,deep_buffer,mmap_no_irq_out,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Speaker"
sources="primary output,raw,deep_buffer,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Speaker Safe"
@@ -311,6 +368,8 @@
sources="voice_tx,incall_music_uplink"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,Primary In Bus,Front Passenger In Bus,Rear Seat In Bus"/>
+ <route type="mix" sink="echo_ref"
+ sources="Echo Reference"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="voice_rx"
@@ -325,6 +384,8 @@
sources="primary output,deep_buffer,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep_buffer,compressed_offload,voip_rx"/>
+ <route type="mix" sink="mixport_tuner0"
+ sources="FM Tuner"/>
</routes>
</module>
diff --git a/configs/common_au/car_audio_configuration.xml b/configs/common_au/car_audio_configuration.xml
index edf3600..d2af7e7 100644
--- a/configs/common_au/car_audio_configuration.xml
+++ b/configs/common_au/car_audio_configuration.xml
@@ -42,10 +42,6 @@
<context context="alarm"/>
<context context="notification"/>
<context context="system_sound"/>
- <context context="emergency"/>
- <context context="safety"/>
- <context context="vehicle_status"/>
- <context context="announcement"/>
</device>
</group>
<group>
@@ -60,6 +56,14 @@
<context context="call_ring"/>
</device>
</group>
+ <group>
+ <device address="BUS05_ALERTS">
+ <context context="emergency"/>
+ <context context="safety"/>
+ <context context="vehicle_status"/>
+ <context context="announcement"/>
+ </device>
+ </group>
</volumeGroups>
<inputDevices>
<inputDevice address="BUS04_INPUT"/>
diff --git a/configs/common_au/overlay/packages/services/Car/service/res/values/config.xml b/configs/common_au/overlay/packages/services/Car/service/res/values/config.xml
index ac5f818..83fd643 100644
--- a/configs/common_au/overlay/packages/services/Car/service/res/values/config.xml
+++ b/configs/common_au/overlay/packages/services/Car/service/res/values/config.xml
@@ -30,4 +30,10 @@
dynamic audio routing is disabled and audio works in legacy mode. It may be useful
during initial development where audio hal does not support bus based addressing yet. -->
<bool name="audioUseDynamicRouting">true</bool>
+
+ <!-- Configuration to enable muting of individual volume groups. If this is set to
+ false, muting of individual volume groups is disabled, instead muting will toggle master
+ mute. If this is set to true, car volume group muting is enabled and each individual
+ volume group can be muted separately. -->
+ <bool name="audioUseCarVolumeGroupMuting">true</bool>
</resources>
diff --git a/configs/holi/audio_policy_configuration.xml b/configs/holi/audio_policy_configuration.xml
index aa93d35..9cd35f7 100644
--- a/configs/holi/audio_policy_configuration.xml
+++ b/configs/holi/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -194,7 +230,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
@@ -223,7 +259,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/configs/kona/audio_policy_configuration.xml b/configs/kona/audio_policy_configuration.xml
index 82752d3..924c019 100644
--- a/configs/kona/audio_policy_configuration.xml
+++ b/configs/kona/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -178,7 +214,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
@@ -218,7 +254,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/configs/kona/mixer_paths.xml b/configs/kona/mixer_paths.xml
index 9cfb5e8..e319068 100644
--- a/configs/kona/mixer_paths.xml
+++ b/configs/kona/mixer_paths.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -858,6 +858,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/kona/mixer_paths_cdp.xml b/configs/kona/mixer_paths_cdp.xml
index 5423857..72cc717 100644
--- a/configs/kona/mixer_paths_cdp.xml
+++ b/configs/kona/mixer_paths_cdp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -815,6 +815,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/kona/mixer_paths_qrd.xml b/configs/kona/mixer_paths_qrd.xml
index 84d21e5..395933c 100644
--- a/configs/kona/mixer_paths_qrd.xml
+++ b/configs/kona/mixer_paths_qrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -818,6 +818,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/lahaina/audio_io_policy.conf b/configs/lahaina/audio_io_policy.conf
index 0932e44..7c53b2e 100644
--- a/configs/lahaina/audio_io_policy.conf
+++ b/configs/lahaina/audio_io_policy.conf
@@ -26,7 +26,7 @@
app_type 69943
}
voip_rx {
- flags AUDIO_OUTPUT_FLAG_VOIP_RX|AUDIO_OUTPUT_FLAG_DIRECT
+ flags AUDIO_OUTPUT_FLAG_VOIP_RX
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|48000
bit_width 16
diff --git a/configs/lahaina/audio_platform_info.xml b/configs/lahaina/audio_platform_info.xml
index bafbb34..d987537 100644
--- a/configs/lahaina/audio_platform_info.xml
+++ b/configs/lahaina/audio_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2014, 2016-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2014, 2016-2021, 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 -->
@@ -48,6 +48,7 @@
<device name="SND_DEVICE_IN_VOCE_RECOG_USB_HEADSET_HEX_MIC" acdb_id="162"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+ <device name="SND_DEVICE_IN_BT_A2DP" acdb_id="201"/>
</acdb_ids>
<module_ids>
@@ -267,7 +268,6 @@
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
diff --git a/configs/lahaina/audio_platform_info_hdk.xml b/configs/lahaina/audio_platform_info_hdk.xml
index 3f161bb..a79c1cf 100644
--- a/configs/lahaina/audio_platform_info_hdk.xml
+++ b/configs/lahaina/audio_platform_info_hdk.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2018-2021, 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 -->
@@ -147,6 +147,8 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="191"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+ <device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" acdb_id="133"/>
+ <device name="SND_DEVICE_IN_BT_A2DP" acdb_id="201"/>
</acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -301,7 +303,6 @@
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
diff --git a/configs/lahaina/audio_platform_info_intcodec.xml b/configs/lahaina/audio_platform_info_intcodec.xml
index 64e6cef..965f0e5 100644
--- a/configs/lahaina/audio_platform_info_intcodec.xml
+++ b/configs/lahaina/audio_platform_info_intcodec.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2014, 2016-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2014, 2016-2021, 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 -->
@@ -147,6 +147,8 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="191"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+ <device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" acdb_id="133"/>
+ <device name="SND_DEVICE_IN_BT_A2DP" acdb_id="201"/>
</acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -226,6 +228,7 @@
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS_SB" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_SB" interface="TX_CDC_DMA_TX_3"/>
@@ -302,7 +305,6 @@
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
diff --git a/configs/lahaina/audio_platform_info_qrd.xml b/configs/lahaina/audio_platform_info_qrd.xml
index 6d45569..8ed6245 100644
--- a/configs/lahaina/audio_platform_info_qrd.xml
+++ b/configs/lahaina/audio_platform_info_qrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2018-2021, 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 -->
@@ -147,6 +147,8 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="191"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+ <device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" acdb_id="133"/>
+ <device name="SND_DEVICE_IN_BT_A2DP" acdb_id="201"/>
</acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -226,6 +228,7 @@
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS_SB" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_SB" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" interface="TX_CDC_DMA_TX_3"/>
@@ -301,7 +304,6 @@
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
diff --git a/configs/lahaina/audio_platform_info_shimaidp.xml b/configs/lahaina/audio_platform_info_shimaidp.xml
index bb77ab4..2b60989 100644
--- a/configs/lahaina/audio_platform_info_shimaidp.xml
+++ b/configs/lahaina/audio_platform_info_shimaidp.xml
@@ -50,6 +50,7 @@
<device name="SND_DEVICE_IN_VOCE_RECOG_USB_HEADSET_HEX_MIC" acdb_id="162"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+ <device name="SND_DEVICE_IN_BT_A2DP" acdb_id="201"/>
</acdb_ids>
<module_ids>
@@ -282,7 +283,6 @@
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
diff --git a/configs/lahaina/audio_platform_info_shimaqrd.xml b/configs/lahaina/audio_platform_info_shimaqrd.xml
index 0353a77..e87f8d0 100644
--- a/configs/lahaina/audio_platform_info_shimaqrd.xml
+++ b/configs/lahaina/audio_platform_info_shimaqrd.xml
@@ -52,6 +52,7 @@
<device name="SND_DEVICE_IN_VOCE_RECOG_USB_HEADSET_HEX_MIC" acdb_id="162"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+ <device name="SND_DEVICE_IN_BT_A2DP" acdb_id="201"/>
</acdb_ids>
<module_ids>
@@ -284,7 +285,6 @@
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
diff --git a/configs/lahaina/audio_platform_info_yupikidp.xml b/configs/lahaina/audio_platform_info_yupikidp.xml
index dc742ff..b74a356 100644
--- a/configs/lahaina/audio_platform_info_yupikidp.xml
+++ b/configs/lahaina/audio_platform_info_yupikidp.xml
@@ -134,6 +134,7 @@
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT" acdb_id="150"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_1" acdb_id="151"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_2" acdb_id="152"/>
+ <device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" acdb_id="133"/>
<device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_1" acdb_id="14"/>
<device name="SND_DEVICE_OUT_SPEAKER_EXTERNAL_2" acdb_id="14"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1" acdb_id="10"/>
@@ -146,7 +147,10 @@
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" acdb_id="147"/>
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="191"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
+ <device name="SND_DEVICE_IN_VOICE_REC_MIC" acdb_id="200"/>
+ <device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" acdb_id="202"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+ <device name="SND_DEVICE_IN_BT_A2DP" acdb_id="201"/>
</acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -226,6 +230,7 @@
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS_SB" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_SB" interface="TX_CDC_DMA_TX_3"/>
@@ -302,7 +307,6 @@
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
diff --git a/configs/lahaina/audio_platform_info_yupikqrd.xml b/configs/lahaina/audio_platform_info_yupikqrd.xml
index c6b6075..2f77410 100644
--- a/configs/lahaina/audio_platform_info_yupikqrd.xml
+++ b/configs/lahaina/audio_platform_info_yupikqrd.xml
@@ -52,6 +52,7 @@
<device name="SND_DEVICE_IN_VOCE_RECOG_USB_HEADSET_HEX_MIC" acdb_id="162"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
+ <device name="SND_DEVICE_IN_BT_A2DP" acdb_id="201"/>
</acdb_ids>
<module_ids>
@@ -284,7 +285,6 @@
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO" backend="speaker-and-bt-sco" interface="WSA_CDC_DMA_RX_0-and-SLIMBUS_7_RX"/>
diff --git a/configs/lahaina/audio_policy_configuration.xml b/configs/lahaina/audio_policy_configuration.xml
index 8ae7dcb..e9ff009 100644
--- a/configs/lahaina/audio_policy_configuration.xml
+++ b/configs/lahaina/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -159,7 +195,7 @@
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source"
- flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX">
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
@@ -200,7 +236,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
@@ -229,7 +265,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -332,6 +368,11 @@
</devicePort>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
</devicePort>
+ <devicePort tagName="A2DP In" type="AUDIO_DEVICE_IN_BLUETOOTH_A2DP" role="source"
+ encodedFormats="VX_AUDIO_FORMAT_LC3">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
@@ -367,17 +408,17 @@
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
- sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,Telephony Rx"/>
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,Telephony Rx,A2DP In"/>
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="fast input"
- sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,Wired Headset Mic"/>
<route type="mix" sink="quad mic"
- sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,Wired Headset Mic"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="record_24"
- sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,A2DP In"/>
<route type="mix" sink="mmap_no_irq_in"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="BT A2DP Out"
diff --git a/configs/lahaina/lahaina.mk b/configs/lahaina/lahaina.mk
index 36022af..8882d5d 100644
--- a/configs/lahaina/lahaina.mk
+++ b/configs/lahaina/lahaina.mk
@@ -414,7 +414,7 @@
#enable dualmic fluence for voice communication
PRODUCT_PROPERTY_OVERRIDES += \
-persist.audio.fluence.voicecomm=true
+persist.vendor.audio.fluence.voicecomm=true
ifneq ($(GENERIC_ODM_IMAGE),true)
$(warning "Enabling codec2.0 SW only for non-generic odm build variant")
diff --git a/configs/lahaina/mixer_paths.xml b/configs/lahaina/mixer_paths.xml
index d95558e..185c352 100644
--- a/configs/lahaina/mixer_paths.xml
+++ b/configs/lahaina/mixer_paths.xml
@@ -24,6 +24,10 @@
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="Voice Rx Device Mute" id="0" value="0" />
@@ -558,6 +562,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference bt-sco-wb">
<path name="echo-reference bt-sco" />
</path>
@@ -586,6 +595,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip-low-latency bt-sco-wb">
<path name="echo-reference-voip-low-latency bt-sco" />
</path>
@@ -614,6 +628,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip bt-sco-wb">
<path name="echo-reference-voip bt-sco" />
</path>
@@ -652,6 +671,16 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-display-port1">
+ <path name="deep-buffer-playback display-port1" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="deep-buffer-playback bt-sco">
<ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -729,6 +758,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-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>
@@ -771,6 +805,16 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-display-port1">
+ <path name="low-latency-playback display-port1" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
@@ -840,6 +884,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-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>
@@ -900,6 +949,16 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-display-port1">
+ <path name="audio-ull-playback display-port1" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
@@ -937,11 +996,21 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-usb-headphones">
<path name="audio-ull-playback usb-headphones" />
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -1004,6 +1073,16 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-display-port1">
+ <path name="compress-offload-playback display-port1" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -1077,6 +1156,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-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>
@@ -1111,6 +1195,16 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback2 display-port1" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -1185,6 +1279,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-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>
@@ -1219,6 +1318,16 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback3 display-port1" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1236,6 +1345,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1257,21 +1371,41 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco">
<path name="compress-offload-playback3 bt-sco" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco-wb">
<path name="compress-offload-playback3 bt-sco-wb" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <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-playback3 speaker-safe-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>
@@ -1306,6 +1440,16 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback4 display-port1" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1323,6 +1467,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1344,21 +1493,41 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco">
<path name="compress-offload-playback4 bt-sco" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco-wb">
<path name="compress-offload-playback4 bt-sco-wb" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <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-playback4 speaker-safe-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>
@@ -1393,6 +1562,16 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback5 display-port1" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1410,6 +1589,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1431,21 +1615,41 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco">
<path name="compress-offload-playback5 bt-sco" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco-wb">
<path name="compress-offload-playback5 bt-sco-wb" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <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-playback5 speaker-safe-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>
@@ -1480,6 +1684,16 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback6 display-port1" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1497,6 +1711,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1518,21 +1737,41 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco">
<path name="compress-offload-playback6 bt-sco" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco-wb">
<path name="compress-offload-playback6 bt-sco-wb" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <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-playback6 speaker-safe-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>
@@ -1567,6 +1806,16 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback7 display-port1" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1584,6 +1833,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1605,21 +1859,41 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco">
<path name="compress-offload-playback7 bt-sco" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco-wb">
<path name="compress-offload-playback7 bt-sco-wb" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <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-playback7 speaker-safe-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>
@@ -1654,6 +1928,16 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback8 display-port1" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1671,6 +1955,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1692,21 +1981,41 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco">
<path name="compress-offload-playback8 bt-sco" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco-wb">
<path name="compress-offload-playback8 bt-sco-wb" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <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-playback8 speaker-safe-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>
@@ -1741,6 +2050,16 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback9 display-port1" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1758,6 +2077,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1779,21 +2103,41 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco">
<path name="compress-offload-playback9 bt-sco" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco-wb">
<path name="compress-offload-playback9 bt-sco-wb" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <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="compress-offload-playback9 speaker-safe-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>
@@ -1806,6 +2150,10 @@
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="1" />
</path>
+ <path name="audio-record bt-a2dp-cap">
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="1" />
+ </path>
+
<path name="audio-record bt-sco-wb">
<path name="audio-record bt-sco" />
</path>
@@ -1830,6 +2178,10 @@
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
</path>
+ <path name="audio-record-compress bt-a2dp-cap">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
<path name="audio-record-compress bt-sco-wb">
<path name="audio-record-compress bt-sco" />
</path>
@@ -1854,6 +2206,10 @@
<ctl name="MultiMedia17 Mixer SLIM_7_TX" value="1" />
</path>
+ <path name="audio-record-compress2 bt-a2dp-cap">
+ <ctl name="MultiMedia17 Mixer SLIM_7_TX" value="1" />
+ </path>
+
<path name="audio-record-compress2 bt-sco-wb">
<path name="audio-record-compress2 bt-sco" />
</path>
@@ -1878,6 +2234,10 @@
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
</path>
+ <path name="low-latency-record bt-a2dp-cap">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
<path name="low-latency-record bt-sco-wb">
<path name="low-latency-record bt-sco" />
</path>
@@ -2403,6 +2763,16 @@
<path name="audio-playback-voip" />
</path>
+ <path name="audio-playback-voip speaker-safe-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-safe-and-display-port1">
+ <path name="audio-playback-voip display-port1" />
+ <path name="audio-playback-voip" />
+ </path>
+
<!-- VoIP Tx settings -->
<path name="audio-record-voip-low-latency">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
@@ -2971,11 +3341,20 @@
<path name="speaker-and-headphones" />
</path>
+ <path name="speaker-safe-and-line">
+ <path name="speaker-safe-and-headphones" />
+ </path>
+
<path name="speaker-and-headphones-liquid">
<path name="headphones" />
<path name="speaker" />
</path>
+ <path name="speaker-safe-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
<path name="speaker-and-line-liquid">
<path name="speaker-and-headphones-liquid" />
</path>
@@ -3015,6 +3394,16 @@
<path name="display-port1" />
</path>
+ <path name="speaker-safe-and-display-port">
+ <path name="speaker-safe" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-safe-and-display-port1">
+ <path name="speaker-safe" />
+ <path name="display-port1" />
+ </path>
+
<path name="voice-rec-mic">
<path name="handset-mic" />
</path>
@@ -3476,36 +3865,71 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-a2dp">
<path name="compress-offload-playback4 bt-a2dp" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-a2dp">
<path name="compress-offload-playback5 bt-a2dp" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-a2dp">
<path name="compress-offload-playback6 bt-a2dp" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-a2dp">
<path name="compress-offload-playback7 bt-a2dp" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-a2dp">
<path name="compress-offload-playback8 bt-a2dp" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-a2dp">
<path name="compress-offload-playback9 bt-a2dp" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-a2dp">
<path name="audio-ull-playback bt-a2dp" />
<path name="audio-ull-playback" />
@@ -3589,6 +4013,16 @@
<path name="mmap-playback" />
</path>
+ <path name="mmap-playback speaker-safe-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-display-port1">
+ <path name="mmap-playback display-port1" />
+ <path name="mmap-playback" />
+ </path>
+
<path name="mmap-playback speaker-and-usb-headphones">
<path name="mmap-playback usb-headphones" />
<path name="mmap-playback" />
@@ -3607,6 +4041,10 @@
<ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
</path>
+ <path name="mmap-record bt-a2dp-cap">
+ <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
+ </path>
+
<path name="mmap-record bt-sco-wb">
<path name="mmap-record bt-sco" />
</path>
@@ -3703,6 +4141,14 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink speaker-safe-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-display-port1">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink afe-proxy">
<path name="incall_music_uplink" />
</path>
@@ -3762,6 +4208,7 @@
<path name="incall_music_uplink bt-a2dp">
<path name="incall_music_uplink" />
</path>
+
<path name="incall_music_uplink afe-proxy">
<path name="incall_music_uplink" />
</path>
diff --git a/configs/lahaina/mixer_paths_cdp.xml b/configs/lahaina/mixer_paths_cdp.xml
index 051b306..58e31f1 100644
--- a/configs/lahaina/mixer_paths_cdp.xml
+++ b/configs/lahaina/mixer_paths_cdp.xml
@@ -25,6 +25,10 @@
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="Voice Rx Device Mute" id="0" value="0" />
@@ -541,6 +545,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference bt-sco-wb">
<path name="echo-reference bt-sco" />
</path>
@@ -569,6 +578,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip-low-latency bt-sco-wb">
<path name="echo-reference-voip-low-latency bt-sco" />
</path>
@@ -597,6 +611,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip bt-sco-wb">
<path name="echo-reference-voip bt-sco" />
</path>
@@ -626,6 +645,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="deep-buffer-playback bt-sco">
<ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -703,6 +727,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-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>
@@ -736,6 +765,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
@@ -805,6 +839,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-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>
@@ -856,6 +895,11 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
@@ -893,11 +937,21 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-usb-headphones">
<path name="audio-ull-playback usb-headphones" />
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -943,6 +997,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -1016,6 +1075,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-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>
@@ -1041,6 +1105,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -1115,6 +1184,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-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>
@@ -1140,6 +1214,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1157,6 +1236,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1178,21 +1262,41 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco">
<path name="compress-offload-playback3 bt-sco" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco-wb">
<path name="compress-offload-playback3 bt-sco-wb" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <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-playback3 speaker-safe-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>
@@ -1218,6 +1322,10 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <path name="compress-offload-playback4" />
+ </path>
<path name="compress-offload-playback4 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
@@ -1236,6 +1344,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1257,21 +1370,41 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco">
<path name="compress-offload-playback4 bt-sco" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco-wb">
<path name="compress-offload-playback4 bt-sco-wb" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <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-playback4 speaker-safe-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>
@@ -1297,6 +1430,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1314,6 +1452,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1335,21 +1478,41 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco">
<path name="compress-offload-playback5 bt-sco" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco-wb">
<path name="compress-offload-playback5 bt-sco-wb" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <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-playback5 speaker-safe-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>
@@ -1375,6 +1538,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1392,6 +1560,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1413,21 +1586,41 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco">
<path name="compress-offload-playback6 bt-sco" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco-wb">
<path name="compress-offload-playback6 bt-sco-wb" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <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-playback6 speaker-safe-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>
@@ -1453,6 +1646,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1470,6 +1668,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1491,21 +1694,41 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco">
<path name="compress-offload-playback7 bt-sco" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco-wb">
<path name="compress-offload-playback7 bt-sco-wb" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <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-playback7 speaker-safe-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>
@@ -1531,6 +1754,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1548,6 +1776,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1569,21 +1802,41 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco">
<path name="compress-offload-playback8 bt-sco" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco-wb">
<path name="compress-offload-playback8 bt-sco-wb" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <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-playback8 speaker-safe-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>
@@ -1609,6 +1862,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1626,6 +1884,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1647,21 +1910,41 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco">
<path name="compress-offload-playback9 bt-sco" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco-wb">
<path name="compress-offload-playback9 bt-sco-wb" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <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="compress-offload-playback9 speaker-safe-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>
@@ -2242,6 +2525,11 @@
<path name="audio-playback-voip" />
</path>
+ <path name="audio-playback-voip speaker-safe-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
<!-- VoIP Tx settings -->
<path name="audio-record-voip-low-latency">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
@@ -2853,11 +3141,20 @@
<path name="speaker-and-headphones" />
</path>
+ <path name="speaker-safe-and-line">
+ <path name="speaker-safe-and-headphones" />
+ </path>
+
<path name="speaker-and-headphones-liquid">
<path name="headphones" />
<path name="speaker" />
</path>
+ <path name="speaker-safe-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
<path name="speaker-and-line-liquid">
<path name="speaker-and-headphones-liquid" />
</path>
@@ -2889,6 +3186,11 @@
<path name="display-port" />
</path>
+ <path name="speaker-safe-and-display-port">
+ <path name="speaker-safe" />
+ <path name="display-port" />
+ </path>
+
<path name="voice-rec-mic">
<path name="handset-mic" />
</path>
@@ -3327,36 +3629,71 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-a2dp">
<path name="compress-offload-playback4 bt-a2dp" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-a2dp">
<path name="compress-offload-playback5 bt-a2dp" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-a2dp">
<path name="compress-offload-playback6 bt-a2dp" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-a2dp">
<path name="compress-offload-playback7 bt-a2dp" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-a2dp">
<path name="compress-offload-playback8 bt-a2dp" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-a2dp">
<path name="compress-offload-playback9 bt-a2dp" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-a2dp">
<path name="audio-ull-playback bt-a2dp" />
<path name="audio-ull-playback" />
@@ -3431,6 +3768,11 @@
<path name="mmap-playback" />
</path>
+ <path name="mmap-playback speaker-safe-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
<path name="mmap-playback speaker-and-usb-headphones">
<path name="mmap-playback usb-headphones" />
<path name="mmap-playback" />
@@ -3533,6 +3875,10 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink speaker-safe-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink afe-proxy">
<path name="incall_music_uplink" />
</path>
@@ -3670,4 +4016,5 @@
<path name="call-proxy-in">
</path>
+
</mixer>
diff --git a/configs/lahaina/mixer_paths_hdk.xml b/configs/lahaina/mixer_paths_hdk.xml
index d811856..a1d2091 100644
--- a/configs/lahaina/mixer_paths_hdk.xml
+++ b/configs/lahaina/mixer_paths_hdk.xml
@@ -24,6 +24,10 @@
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="Voice Rx Device Mute" id="0" value="0" />
@@ -549,6 +553,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference bt-sco-wb">
<path name="echo-reference bt-sco" />
</path>
@@ -572,6 +581,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="WSA_CDC_DMA_RX_0" />
<ctl name="EC Reference Channels" value="One"/>
@@ -592,6 +606,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip bt-sco-wb">
<path name="echo-reference-voip bt-sco" />
</path>
@@ -634,6 +653,16 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-display-port1">
+ <path name="deep-buffer-playback display-port1" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="deep-buffer-playback bt-sco">
<ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -711,6 +740,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-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>
@@ -757,6 +791,16 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-display-port1">
+ <path name="low-latency-playback display-port1" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
@@ -826,6 +870,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-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>
@@ -890,6 +939,16 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-display-port1">
+ <path name="audio-ull-playback display-port1" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
@@ -927,11 +986,21 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-usb-headphones">
<path name="audio-ull-playback usb-headphones" />
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -998,6 +1067,16 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-display-port1">
+ <path name="compress-offload-playback display-port1" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -1071,6 +1150,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-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>
@@ -1109,6 +1193,16 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback2 display-port1" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -1183,6 +1277,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-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>
@@ -1221,6 +1320,16 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback3 display-port1" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1238,6 +1347,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1259,21 +1373,41 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco">
<path name="compress-offload-playback3 bt-sco" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco-wb">
<path name="compress-offload-playback3 bt-sco-wb" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <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-playback3 speaker-safe-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>
@@ -1312,6 +1446,16 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback4 display-port1" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1329,6 +1473,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1350,21 +1499,41 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco">
<path name="compress-offload-playback4 bt-sco" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco-wb">
<path name="compress-offload-playback4 bt-sco-wb" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <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-playback4 speaker-safe-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>
@@ -1403,6 +1572,16 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback5 display-port1" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1420,6 +1599,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1441,21 +1625,41 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco">
<path name="compress-offload-playback5 bt-sco" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco-wb">
<path name="compress-offload-playback5 bt-sco-wb" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <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-playback5 speaker-safe-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>
@@ -1494,6 +1698,16 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback6 display-port1" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1511,6 +1725,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1532,21 +1751,41 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco">
<path name="compress-offload-playback6 bt-sco" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco-wb">
<path name="compress-offload-playback6 bt-sco-wb" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <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-playback6 speaker-safe-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>
@@ -1585,6 +1824,16 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback7 display-port1" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1602,6 +1851,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1623,21 +1877,41 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco">
<path name="compress-offload-playback7 bt-sco" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco-wb">
<path name="compress-offload-playback7 bt-sco-wb" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <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-playback7 speaker-safe-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>
@@ -1676,6 +1950,16 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback8 display-port1" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1693,6 +1977,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1714,21 +2003,41 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco">
<path name="compress-offload-playback8 bt-sco" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco-wb">
<path name="compress-offload-playback8 bt-sco-wb" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <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-playback8 speaker-safe-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>
@@ -1767,6 +2076,16 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback9 display-port1" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1784,6 +2103,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1805,21 +2129,41 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco">
<path name="compress-offload-playback9 bt-sco" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco-wb">
<path name="compress-offload-playback9 bt-sco-wb" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <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="compress-offload-playback9 speaker-safe-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>
@@ -2448,6 +2792,16 @@
<path name="audio-playback-voip" />
</path>
+ <path name="audio-playback-voip speaker-safe-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-safe-and-display-port1">
+ <path name="audio-playback-voip display-port1" />
+ <path name="audio-playback-voip" />
+ </path>
+
<!-- VoIP Tx settings -->
<path name="audio-record-voip-low-latency">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
@@ -3008,11 +3362,20 @@
<path name="speaker-and-headphones" />
</path>
+ <path name="speaker-safe-and-line">
+ <path name="speaker-safe-and-headphones" />
+ </path>
+
<path name="speaker-and-headphones-liquid">
<path name="headphones" />
<path name="speaker" />
</path>
+ <path name="speaker-safe-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
<path name="speaker-and-line-liquid">
<path name="speaker-and-headphones-liquid" />
</path>
@@ -3058,6 +3421,16 @@
<path name="display-port1" />
</path>
+ <path name="speaker-safe-and-display-port">
+ <path name="speaker-safe" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-safe-and-display-port1">
+ <path name="speaker-safe" />
+ <path name="display-port1" />
+ </path>
+
<path name="voice-rec-mic">
<path name="handset-mic" />
</path>
@@ -3469,36 +3842,71 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-a2dp">
<path name="compress-offload-playback4 bt-a2dp" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-a2dp">
<path name="compress-offload-playback5 bt-a2dp" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-a2dp">
<path name="compress-offload-playback6 bt-a2dp" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-a2dp">
<path name="compress-offload-playback7 bt-a2dp" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-a2dp">
<path name="compress-offload-playback8 bt-a2dp" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-a2dp">
<path name="compress-offload-playback9 bt-a2dp" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-a2dp">
<path name="audio-ull-playback bt-a2dp" />
<path name="audio-ull-playback" />
@@ -3586,6 +3994,16 @@
<path name="mmap-playback" />
</path>
+ <path name="mmap-playback speaker-safe-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-display-port1">
+ <path name="mmap-playback display-port1" />
+ <path name="mmap-playback" />
+ </path>
+
<path name="mmap-playback speaker-and-usb-headphones">
<path name="mmap-playback usb-headphones" />
<path name="mmap-playback" />
@@ -3700,6 +4118,14 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink speaker-safe-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-display-port1">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink afe-proxy">
<path name="incall_music_uplink" />
</path>
diff --git a/configs/lahaina/mixer_paths_hhg.xml b/configs/lahaina/mixer_paths_hhg.xml
index f716350..f7221a0 100644
--- a/configs/lahaina/mixer_paths_hhg.xml
+++ b/configs/lahaina/mixer_paths_hhg.xml
@@ -24,6 +24,10 @@
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="Voice Rx Device Mute" id="0" value="0" />
@@ -550,6 +554,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference bt-sco-wb">
<path name="echo-reference bt-sco" />
</path>
@@ -578,6 +587,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip-low-latency bt-sco-wb">
<path name="echo-reference-voip-low-latency bt-sco" />
</path>
@@ -606,6 +620,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip bt-sco-wb">
<path name="echo-reference-voip bt-sco" />
</path>
@@ -644,6 +663,16 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-display-port1">
+ <path name="deep-buffer-playback display-port1" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="deep-buffer-playback bt-sco">
<ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -721,6 +750,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-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>
@@ -763,6 +797,16 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-display-port1">
+ <path name="low-latency-playback display-port1" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
@@ -832,6 +876,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-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>
@@ -892,6 +941,16 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-display-port1">
+ <path name="audio-ull-playback display-port1" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
@@ -929,11 +988,21 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-usb-headphones">
<path name="audio-ull-playback usb-headphones" />
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -996,6 +1065,16 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-display-port1">
+ <path name="compress-offload-playback display-port1" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -1069,6 +1148,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-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>
@@ -1103,6 +1187,16 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback2 display-port1" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -1177,6 +1271,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-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>
@@ -1211,6 +1310,16 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback3 display-port1" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1228,6 +1337,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1249,21 +1363,41 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco">
<path name="compress-offload-playback3 bt-sco" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco-wb">
<path name="compress-offload-playback3 bt-sco-wb" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <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-playback3 speaker-safe-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>
@@ -1298,6 +1432,16 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback4 display-port1" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1315,6 +1459,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1336,21 +1485,41 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco">
<path name="compress-offload-playback4 bt-sco" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco-wb">
<path name="compress-offload-playback4 bt-sco-wb" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <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-playback4 speaker-safe-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>
@@ -1385,6 +1554,16 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback5 display-port1" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1402,6 +1581,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1423,21 +1607,41 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco">
<path name="compress-offload-playback5 bt-sco" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco-wb">
<path name="compress-offload-playback5 bt-sco-wb" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <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-playback5 speaker-safe-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>
@@ -1472,6 +1676,16 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback6 display-port1" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1489,6 +1703,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1510,21 +1729,41 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco">
<path name="compress-offload-playback6 bt-sco" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco-wb">
<path name="compress-offload-playback6 bt-sco-wb" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <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-playback6 speaker-safe-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>
@@ -1559,6 +1798,16 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback7 display-port1" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1576,6 +1825,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1597,21 +1851,41 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco">
<path name="compress-offload-playback7 bt-sco" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco-wb">
<path name="compress-offload-playback7 bt-sco-wb" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <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-playback7 speaker-safe-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>
@@ -1646,6 +1920,16 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback8 display-port1" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1663,6 +1947,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1684,21 +1973,41 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco">
<path name="compress-offload-playback8 bt-sco" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco-wb">
<path name="compress-offload-playback8 bt-sco-wb" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <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-playback8 speaker-safe-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>
@@ -1733,6 +2042,16 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback9 display-port1" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1750,6 +2069,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1771,21 +2095,41 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco">
<path name="compress-offload-playback9 bt-sco" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco-wb">
<path name="compress-offload-playback9 bt-sco-wb" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <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="compress-offload-playback9 speaker-safe-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>
@@ -2395,6 +2739,16 @@
<path name="audio-playback-voip" />
</path>
+ <path name="audio-playback-voip speaker-safe-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-safe-and-display-port1">
+ <path name="audio-playback-voip display-port1" />
+ <path name="audio-playback-voip" />
+ </path>
+
<!-- VoIP Tx settings -->
<path name="audio-record-voip-low-latency">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
@@ -2756,7 +3110,7 @@
</path>
<path name="speaker-mic">
- <path name="dmic5" />
+ <path name="dmic3" />
</path>
<path name="speaker-mic-liquid">
@@ -2986,11 +3340,20 @@
<path name="speaker-and-headphones" />
</path>
+ <path name="speaker-safe-and-line">
+ <path name="speaker-safe-and-headphones" />
+ </path>
+
<path name="speaker-and-headphones-liquid">
<path name="headphones" />
<path name="speaker" />
</path>
+ <path name="speaker-safe-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
<path name="speaker-and-line-liquid">
<path name="speaker-and-headphones-liquid" />
</path>
@@ -3036,6 +3399,16 @@
<path name="display-port1" />
</path>
+ <path name="speaker-safe-and-display-port">
+ <path name="speaker-safe" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-safe-and-display-port1">
+ <path name="speaker-safe" />
+ <path name="display-port1" />
+ </path>
+
<path name="voice-rec-mic">
<path name="handset-mic" />
</path>
@@ -3447,36 +3820,71 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-a2dp">
<path name="compress-offload-playback4 bt-a2dp" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-a2dp">
<path name="compress-offload-playback5 bt-a2dp" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-a2dp">
<path name="compress-offload-playback6 bt-a2dp" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-a2dp">
<path name="compress-offload-playback7 bt-a2dp" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-a2dp">
<path name="compress-offload-playback8 bt-a2dp" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-a2dp">
<path name="compress-offload-playback9 bt-a2dp" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-a2dp">
<path name="audio-ull-playback bt-a2dp" />
<path name="audio-ull-playback" />
@@ -3560,6 +3968,16 @@
<path name="mmap-playback" />
</path>
+ <path name="mmap-playback speaker-safe-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-display-port1">
+ <path name="mmap-playback display-port1" />
+ <path name="mmap-playback" />
+ </path>
+
<path name="mmap-playback speaker-and-usb-headphones">
<path name="mmap-playback usb-headphones" />
<path name="mmap-playback" />
@@ -3674,6 +4092,14 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink speaker-safe-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-display-port1">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink afe-proxy">
<path name="incall_music_uplink" />
</path>
diff --git a/configs/lahaina/mixer_paths_qrd.xml b/configs/lahaina/mixer_paths_qrd.xml
index 3e0f496..5bae003 100644
--- a/configs/lahaina/mixer_paths_qrd.xml
+++ b/configs/lahaina/mixer_paths_qrd.xml
@@ -24,6 +24,10 @@
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="Voice Rx Device Mute" id="0" value="0" />
@@ -550,6 +554,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference bt-sco-wb">
<path name="echo-reference bt-sco" />
</path>
@@ -578,6 +587,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip-low-latency bt-sco-wb">
<path name="echo-reference-voip-low-latency bt-sco" />
</path>
@@ -606,6 +620,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip bt-sco-wb">
<path name="echo-reference-voip bt-sco" />
</path>
@@ -644,6 +663,16 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-display-port1">
+ <path name="deep-buffer-playback display-port1" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="deep-buffer-playback bt-sco">
<ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -721,6 +750,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-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>
@@ -763,6 +797,16 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-display-port1">
+ <path name="low-latency-playback display-port1" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
@@ -832,6 +876,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-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>
@@ -892,6 +941,16 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-display-port1">
+ <path name="audio-ull-playback display-port1" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
@@ -929,11 +988,21 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-usb-headphones">
<path name="audio-ull-playback usb-headphones" />
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -996,6 +1065,16 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-display-port1">
+ <path name="compress-offload-playback display-port1" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -1069,6 +1148,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-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>
@@ -1103,6 +1187,16 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback2 display-port1" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -1177,6 +1271,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-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>
@@ -1211,6 +1310,16 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback3 display-port1" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1228,6 +1337,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1249,21 +1363,41 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco">
<path name="compress-offload-playback3 bt-sco" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco-wb">
<path name="compress-offload-playback3 bt-sco-wb" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <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-playback3 speaker-safe-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>
@@ -1298,6 +1432,16 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback4 display-port1" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1315,6 +1459,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1336,21 +1485,41 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco">
<path name="compress-offload-playback4 bt-sco" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco-wb">
<path name="compress-offload-playback4 bt-sco-wb" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <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-playback4 speaker-safe-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>
@@ -1385,6 +1554,16 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback5 display-port1" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1402,6 +1581,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1423,21 +1607,41 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco">
<path name="compress-offload-playback5 bt-sco" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco-wb">
<path name="compress-offload-playback5 bt-sco-wb" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <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-playback5 speaker-safe-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>
@@ -1472,6 +1676,16 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback6 display-port1" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1489,6 +1703,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1510,21 +1729,41 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco">
<path name="compress-offload-playback6 bt-sco" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco-wb">
<path name="compress-offload-playback6 bt-sco-wb" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <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-playback6 speaker-safe-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>
@@ -1559,6 +1798,16 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback7 display-port1" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1576,6 +1825,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1597,21 +1851,41 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco">
<path name="compress-offload-playback7 bt-sco" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco-wb">
<path name="compress-offload-playback7 bt-sco-wb" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <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-playback7 speaker-safe-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>
@@ -1646,6 +1920,16 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback8 display-port1" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1663,6 +1947,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1684,21 +1973,41 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco">
<path name="compress-offload-playback8 bt-sco" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco-wb">
<path name="compress-offload-playback8 bt-sco-wb" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <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-playback8 speaker-safe-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>
@@ -1733,6 +2042,16 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback9 display-port1" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1750,6 +2069,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1771,21 +2095,41 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco">
<path name="compress-offload-playback9 bt-sco" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco-wb">
<path name="compress-offload-playback9 bt-sco-wb" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <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="compress-offload-playback9 speaker-safe-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>
@@ -2395,6 +2739,16 @@
<path name="audio-playback-voip" />
</path>
+ <path name="audio-playback-voip speaker-safe-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-safe-and-display-port1">
+ <path name="audio-playback-voip display-port1" />
+ <path name="audio-playback-voip" />
+ </path>
+
<!-- VoIP Tx settings -->
<path name="audio-record-voip-low-latency">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
@@ -2987,11 +3341,20 @@
<path name="speaker-and-headphones" />
</path>
+ <path name="speaker-safe-and-line">
+ <path name="speaker-safe-and-headphones" />
+ </path>
+
<path name="speaker-and-headphones-liquid">
<path name="headphones" />
<path name="speaker" />
</path>
+ <path name="speaker-safe-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
<path name="speaker-and-line-liquid">
<path name="speaker-and-headphones-liquid" />
</path>
@@ -3037,6 +3400,16 @@
<path name="display-port1" />
</path>
+ <path name="speaker-safe-and-display-port">
+ <path name="speaker-safe" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-safe-and-display-port1">
+ <path name="speaker-safe" />
+ <path name="display-port1" />
+ </path>
+
<path name="voice-rec-mic">
<path name="handset-mic" />
</path>
@@ -3448,36 +3821,71 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-a2dp">
<path name="compress-offload-playback4 bt-a2dp" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-a2dp">
<path name="compress-offload-playback5 bt-a2dp" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-a2dp">
<path name="compress-offload-playback6 bt-a2dp" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-a2dp">
<path name="compress-offload-playback7 bt-a2dp" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-a2dp">
<path name="compress-offload-playback8 bt-a2dp" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-a2dp">
<path name="compress-offload-playback9 bt-a2dp" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-a2dp">
<path name="audio-ull-playback bt-a2dp" />
<path name="audio-ull-playback" />
@@ -3561,6 +3969,16 @@
<path name="mmap-playback" />
</path>
+ <path name="mmap-playback speaker-safe-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-display-port1">
+ <path name="mmap-playback display-port1" />
+ <path name="mmap-playback" />
+ </path>
+
<path name="mmap-playback speaker-and-usb-headphones">
<path name="mmap-playback usb-headphones" />
<path name="mmap-playback" />
@@ -3675,6 +4093,14 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink speaker-safe-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-display-port1">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink afe-proxy">
<path name="incall_music_uplink" />
</path>
diff --git a/configs/lahaina/mixer_paths_shimaidp.xml b/configs/lahaina/mixer_paths_shimaidp.xml
old mode 100755
new mode 100644
index d43d437..e46a218
--- a/configs/lahaina/mixer_paths_shimaidp.xml
+++ b/configs/lahaina/mixer_paths_shimaidp.xml
@@ -25,6 +25,10 @@
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<!-- These are the initial mixer settings -->
@@ -545,6 +549,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference bt-sco-wb">
<path name="echo-reference bt-sco" />
</path>
@@ -573,6 +582,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip-low-latency bt-sco-wb">
<path name="echo-reference-voip-low-latency bt-sco" />
</path>
@@ -601,6 +615,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip bt-sco-wb">
<path name="echo-reference-voip bt-sco" />
</path>
@@ -639,6 +658,16 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-display-port1">
+ <path name="deep-buffer-playback display-port1" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="deep-buffer-playback bt-sco">
<ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -716,6 +745,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-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>
@@ -758,6 +792,16 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-display-port1">
+ <path name="low-latency-playback display-port1" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
@@ -827,6 +871,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-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>
@@ -887,6 +936,16 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-display-port1">
+ <path name="audio-ull-playback display-port1" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
@@ -924,11 +983,21 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-usb-headphones">
<path name="audio-ull-playback usb-headphones" />
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -991,6 +1060,16 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-display-port1">
+ <path name="compress-offload-playback display-port1" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -1064,6 +1143,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-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>
@@ -1098,6 +1182,16 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback2 display-port1" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -1172,6 +1266,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-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>
@@ -1206,6 +1305,16 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback3 display-port1" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1223,6 +1332,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1244,21 +1358,41 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco">
<path name="compress-offload-playback3 bt-sco" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco-wb">
<path name="compress-offload-playback3 bt-sco-wb" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <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-playback3 speaker-safe-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>
@@ -1293,6 +1427,16 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback4 display-port1" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1310,6 +1454,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1331,21 +1480,41 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco">
<path name="compress-offload-playback4 bt-sco" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco-wb">
<path name="compress-offload-playback4 bt-sco-wb" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <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-playback4 speaker-safe-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>
@@ -1380,6 +1549,16 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback5 display-port1" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1397,6 +1576,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1418,21 +1602,41 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco">
<path name="compress-offload-playback5 bt-sco" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco-wb">
<path name="compress-offload-playback5 bt-sco-wb" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <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-playback5 speaker-safe-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>
@@ -1467,6 +1671,16 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback6 display-port1" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1484,6 +1698,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1505,21 +1724,41 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco">
<path name="compress-offload-playback6 bt-sco" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco-wb">
<path name="compress-offload-playback6 bt-sco-wb" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <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-playback6 speaker-safe-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>
@@ -1554,6 +1793,16 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback7 display-port1" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1571,6 +1820,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1592,21 +1846,41 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco">
<path name="compress-offload-playback7 bt-sco" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco-wb">
<path name="compress-offload-playback7 bt-sco-wb" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <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-playback7 speaker-safe-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>
@@ -1641,6 +1915,16 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback8 display-port1" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1658,6 +1942,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1679,21 +1968,41 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco">
<path name="compress-offload-playback8 bt-sco" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco-wb">
<path name="compress-offload-playback8 bt-sco-wb" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <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-playback8 speaker-safe-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>
@@ -1728,6 +2037,16 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback9 display-port1" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1745,6 +2064,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1766,21 +2090,41 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco">
<path name="compress-offload-playback9 bt-sco" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco-wb">
<path name="compress-offload-playback9 bt-sco-wb" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <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="compress-offload-playback9 speaker-safe-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>
@@ -2390,6 +2734,16 @@
<path name="audio-playback-voip" />
</path>
+ <path name="audio-playback-voip speaker-safe-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-safe-and-display-port1">
+ <path name="audio-playback-voip display-port1" />
+ <path name="audio-playback-voip" />
+ </path>
+
<!-- VoIP Tx settings -->
<path name="audio-record-voip-low-latency">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
@@ -2945,11 +3299,20 @@
<path name="speaker-and-headphones" />
</path>
+ <path name="speaker-safe-and-line">
+ <path name="speaker-safe-and-headphones" />
+ </path>
+
<path name="speaker-and-headphones-liquid">
<path name="headphones" />
<path name="speaker" />
</path>
+ <path name="speaker-safe-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
<path name="speaker-and-line-liquid">
<path name="speaker-and-headphones-liquid" />
</path>
@@ -2989,6 +3352,16 @@
<path name="display-port1" />
</path>
+ <path name="speaker-safe-and-display-port">
+ <path name="speaker-safe" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-safe-and-display-port1">
+ <path name="speaker-safe" />
+ <path name="display-port1" />
+ </path>
+
<path name="voice-rec-mic">
<path name="handset-mic" />
</path>
@@ -3449,36 +3822,71 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-a2dp">
<path name="compress-offload-playback4 bt-a2dp" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-a2dp">
<path name="compress-offload-playback5 bt-a2dp" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-a2dp">
<path name="compress-offload-playback6 bt-a2dp" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-a2dp">
<path name="compress-offload-playback7 bt-a2dp" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-a2dp">
<path name="compress-offload-playback8 bt-a2dp" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-a2dp">
<path name="compress-offload-playback9 bt-a2dp" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-a2dp">
<path name="audio-ull-playback bt-a2dp" />
<path name="audio-ull-playback" />
@@ -3562,6 +3970,16 @@
<path name="mmap-playback" />
</path>
+ <path name="mmap-playback speaker-safe-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-display-port1">
+ <path name="mmap-playback display-port1" />
+ <path name="mmap-playback" />
+ </path>
+
<path name="mmap-playback speaker-and-usb-headphones">
<path name="mmap-playback usb-headphones" />
<path name="mmap-playback" />
@@ -3676,6 +4094,14 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink speaker-safe-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-display-port1">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink afe-proxy">
<path name="incall_music_uplink" />
</path>
diff --git a/configs/lahaina/mixer_paths_shimaidps.xml b/configs/lahaina/mixer_paths_shimaidps.xml
old mode 100755
new mode 100644
index dc731bf..c30150c
--- a/configs/lahaina/mixer_paths_shimaidps.xml
+++ b/configs/lahaina/mixer_paths_shimaidps.xml
@@ -25,6 +25,10 @@
<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="Voice Rx Device Mute" id="0" value="0" />
@@ -536,6 +540,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference bt-sco-wb">
<path name="echo-reference bt-sco" />
</path>
@@ -564,6 +573,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip-low-latency bt-sco-wb">
<path name="echo-reference-voip-low-latency bt-sco" />
</path>
@@ -592,6 +606,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip bt-sco-wb">
<path name="echo-reference-voip bt-sco" />
</path>
@@ -621,6 +640,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="deep-buffer-playback bt-sco">
<ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -698,6 +722,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-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>
@@ -731,6 +760,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
@@ -800,6 +834,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-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>
@@ -851,6 +890,11 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
@@ -888,11 +932,21 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-usb-headphones">
<path name="audio-ull-playback usb-headphones" />
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -938,6 +992,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -1011,6 +1070,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-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>
@@ -1036,6 +1100,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -1110,6 +1179,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-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>
@@ -1135,6 +1209,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1152,6 +1231,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1173,21 +1257,41 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco">
<path name="compress-offload-playback3 bt-sco" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco-wb">
<path name="compress-offload-playback3 bt-sco-wb" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <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-playback3 speaker-safe-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>
@@ -1213,6 +1317,10 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <path name="compress-offload-playback4" />
+ </path>
<path name="compress-offload-playback4 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
@@ -1231,6 +1339,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1252,21 +1365,41 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco">
<path name="compress-offload-playback4 bt-sco" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco-wb">
<path name="compress-offload-playback4 bt-sco-wb" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <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-playback4 speaker-safe-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>
@@ -1292,6 +1425,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1309,6 +1447,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1330,21 +1473,41 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco">
<path name="compress-offload-playback5 bt-sco" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco-wb">
<path name="compress-offload-playback5 bt-sco-wb" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <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-playback5 speaker-safe-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>
@@ -1370,6 +1533,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1387,6 +1555,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1408,21 +1581,41 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco">
<path name="compress-offload-playback6 bt-sco" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco-wb">
<path name="compress-offload-playback6 bt-sco-wb" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <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-playback6 speaker-safe-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>
@@ -1448,6 +1641,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1465,6 +1663,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1486,21 +1689,41 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco">
<path name="compress-offload-playback7 bt-sco" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco-wb">
<path name="compress-offload-playback7 bt-sco-wb" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <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-playback7 speaker-safe-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>
@@ -1526,6 +1749,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1543,6 +1771,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1564,21 +1797,41 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco">
<path name="compress-offload-playback8 bt-sco" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco-wb">
<path name="compress-offload-playback8 bt-sco-wb" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <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-playback8 speaker-safe-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>
@@ -1604,6 +1857,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1621,6 +1879,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1642,21 +1905,41 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco">
<path name="compress-offload-playback9 bt-sco" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco-wb">
<path name="compress-offload-playback9 bt-sco-wb" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <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="compress-offload-playback9 speaker-safe-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>
@@ -2237,6 +2520,11 @@
<path name="audio-playback-voip" />
</path>
+ <path name="audio-playback-voip speaker-safe-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
<!-- VoIP Tx settings -->
<path name="audio-record-voip-low-latency">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
@@ -2832,11 +3120,20 @@
<path name="speaker-and-headphones" />
</path>
+ <path name="speaker-safe-and-line">
+ <path name="speaker-safe-and-headphones" />
+ </path>
+
<path name="speaker-and-headphones-liquid">
<path name="headphones" />
<path name="speaker" />
</path>
+ <path name="speaker-safe-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
<path name="speaker-and-line-liquid">
<path name="speaker-and-headphones-liquid" />
</path>
@@ -2868,6 +3165,11 @@
<path name="display-port" />
</path>
+ <path name="speaker-safe-and-display-port">
+ <path name="speaker-safe" />
+ <path name="display-port" />
+ </path>
+
<path name="voice-rec-mic">
<path name="handset-mic" />
</path>
@@ -3258,36 +3560,71 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-a2dp">
<path name="compress-offload-playback4 bt-a2dp" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-a2dp">
<path name="compress-offload-playback5 bt-a2dp" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-a2dp">
<path name="compress-offload-playback6 bt-a2dp" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-a2dp">
<path name="compress-offload-playback7 bt-a2dp" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-a2dp">
<path name="compress-offload-playback8 bt-a2dp" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-a2dp">
<path name="compress-offload-playback9 bt-a2dp" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-a2dp">
<path name="audio-ull-playback bt-a2dp" />
<path name="audio-ull-playback" />
@@ -3362,6 +3699,11 @@
<path name="mmap-playback" />
</path>
+ <path name="mmap-playback speaker-safe-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
<path name="mmap-playback speaker-and-usb-headphones">
<path name="mmap-playback usb-headphones" />
<path name="mmap-playback" />
@@ -3464,6 +3806,10 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink speaker-safe-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink afe-proxy">
<path name="incall_music_uplink" />
</path>
diff --git a/configs/lahaina/mixer_paths_shimaqrd.xml b/configs/lahaina/mixer_paths_shimaqrd.xml
old mode 100755
new mode 100644
index 2db82d3..0105838
--- a/configs/lahaina/mixer_paths_shimaqrd.xml
+++ b/configs/lahaina/mixer_paths_shimaqrd.xml
@@ -25,6 +25,10 @@
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<!-- These are the initial mixer settings -->
@@ -546,6 +550,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference bt-sco-wb">
<path name="echo-reference bt-sco" />
</path>
@@ -569,6 +578,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="WSA_CDC_DMA_RX_0" />
<ctl name="EC Reference Channels" value="One"/>
@@ -589,6 +603,11 @@
<ctl name="EC Reference Channels" value="Two"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
<path name="echo-reference-voip bt-sco-wb">
<path name="echo-reference-voip bt-sco" />
</path>
@@ -631,6 +650,16 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-display-port1">
+ <path name="deep-buffer-playback display-port1" />
+ <path name="deep-buffer-playback" />
+ </path>
+
<path name="deep-buffer-playback bt-sco">
<ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -708,6 +737,11 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-safe-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>
@@ -754,6 +788,16 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-display-port1">
+ <path name="low-latency-playback display-port1" />
+ <path name="low-latency-playback" />
+ </path>
+
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
@@ -823,6 +867,11 @@
<path name="low-latency-playback" />
</path>
+ <path name="low-latency-playback speaker-safe-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>
@@ -887,6 +936,16 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-display-port1">
+ <path name="audio-ull-playback display-port1" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
@@ -924,11 +983,21 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-swb">
+ <path name="audio-ull-playback bt-sco-swb" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-usb-headphones">
<path name="audio-ull-playback usb-headphones" />
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -995,6 +1064,16 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-display-port1">
+ <path name="compress-offload-playback display-port1" />
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -1068,6 +1147,11 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-safe-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>
@@ -1106,6 +1190,16 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback2 display-port1" />
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -1180,6 +1274,11 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-safe-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>
@@ -1218,6 +1317,16 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback3 display-port1" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1235,6 +1344,11 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -1256,21 +1370,41 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco">
<path name="compress-offload-playback3 bt-sco" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback3 speaker-and-bt-sco-wb">
<path name="compress-offload-playback3 bt-sco-wb" />
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <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-playback3 speaker-safe-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>
@@ -1309,6 +1443,16 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback4 display-port1" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1326,6 +1470,11 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1347,21 +1496,41 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco">
<path name="compress-offload-playback4 bt-sco" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-sco-wb">
<path name="compress-offload-playback4 bt-sco-wb" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <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-playback4 speaker-safe-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>
@@ -1400,6 +1569,16 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback5 display-port1" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1417,6 +1596,11 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1438,21 +1622,41 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco">
<path name="compress-offload-playback5 bt-sco" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-sco-wb">
<path name="compress-offload-playback5 bt-sco-wb" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <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-playback5 speaker-safe-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>
@@ -1491,6 +1695,16 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback6 display-port1" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1508,6 +1722,11 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1529,21 +1748,41 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco">
<path name="compress-offload-playback6 bt-sco" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-sco-wb">
<path name="compress-offload-playback6 bt-sco-wb" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <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-playback6 speaker-safe-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>
@@ -1582,6 +1821,16 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback7 display-port1" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1599,6 +1848,11 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1620,21 +1874,41 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco">
<path name="compress-offload-playback7 bt-sco" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-sco-wb">
<path name="compress-offload-playback7 bt-sco-wb" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <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-playback7 speaker-safe-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>
@@ -1673,6 +1947,16 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback8 display-port1" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1690,6 +1974,11 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1711,21 +2000,41 @@
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco">
<path name="compress-offload-playback8 bt-sco" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-sco-wb">
<path name="compress-offload-playback8 bt-sco-wb" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <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-playback8 speaker-safe-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>
@@ -1764,6 +2073,16 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-display-port1">
+ <path name="compress-offload-playback9 display-port1" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1781,6 +2100,11 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 headphones">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1802,21 +2126,46 @@
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco">
<path name="compress-offload-playback9 bt-sco" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-sco-wb">
<path name="compress-offload-playback9 bt-sco-wb" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <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="compress-offload-playback9 speaker-safe-and-bt-sco-swb">
+ <path name="compress-offload-playback9 bt-sco-swb" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="audio-with-haptics-playback handset">
+ <ctl name="RX_CDC_DMA_RX_6 Audio Mixer MultiMedia32" value="1"/>
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia31" value="1"/>
+ </path>
+
<path name="audio-record">
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="1" />
</path>
@@ -2445,6 +2794,16 @@
<path name="audio-playback-voip" />
</path>
+ <path name="audio-playback-voip speaker-safe-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-safe-and-display-port1">
+ <path name="audio-playback-voip display-port1" />
+ <path name="audio-playback-voip" />
+ </path>
+
<!-- VoIP Tx settings -->
<path name="audio-record-voip-low-latency">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
@@ -3001,11 +3360,20 @@
<path name="speaker-and-headphones" />
</path>
+ <path name="speaker-safe-and-line">
+ <path name="speaker-safe-and-headphones" />
+ </path>
+
<path name="speaker-and-headphones-liquid">
<path name="headphones" />
<path name="speaker" />
</path>
+ <path name="speaker-safe-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
<path name="speaker-and-line-liquid">
<path name="speaker-and-headphones-liquid" />
</path>
@@ -3051,6 +3419,16 @@
<path name="display-port1" />
</path>
+ <path name="speaker-safe-and-display-port">
+ <path name="speaker-safe" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-safe-and-display-port1">
+ <path name="speaker-safe" />
+ <path name="display-port1" />
+ </path>
+
<path name="voice-rec-mic">
<path name="handset-mic" />
</path>
@@ -3463,36 +3841,71 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4 speaker-and-bt-a2dp">
<path name="compress-offload-playback4 bt-a2dp" />
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5 speaker-and-bt-a2dp">
<path name="compress-offload-playback5 bt-a2dp" />
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6 speaker-and-bt-a2dp">
<path name="compress-offload-playback6 bt-a2dp" />
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7 speaker-and-bt-a2dp">
<path name="compress-offload-playback7 bt-a2dp" />
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="compress-offload-playback8 speaker-and-bt-a2dp">
<path name="compress-offload-playback8 bt-a2dp" />
<path name="compress-offload-playback8" />
</path>
+ <path name="compress-offload-playback8 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
<path name="compress-offload-playback9 speaker-and-bt-a2dp">
<path name="compress-offload-playback9 bt-a2dp" />
<path name="compress-offload-playback9" />
</path>
+ <path name="compress-offload-playback9 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-a2dp">
<path name="audio-ull-playback bt-a2dp" />
<path name="audio-ull-playback" />
@@ -3580,6 +3993,16 @@
<path name="mmap-playback" />
</path>
+ <path name="mmap-playback speaker-safe-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-display-port1">
+ <path name="mmap-playback display-port1" />
+ <path name="mmap-playback" />
+ </path>
+
<path name="mmap-playback speaker-and-usb-headphones">
<path name="mmap-playback usb-headphones" />
<path name="mmap-playback" />
@@ -3694,6 +4117,14 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink speaker-safe-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-display-port1">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink afe-proxy">
<path name="incall_music_uplink" />
</path>
diff --git a/configs/lahaina/shima_overlay/mixer_paths_shimaqrd_overlay.xml b/configs/lahaina/shima_overlay/mixer_paths_shimaqrd_overlay.xml
index 34defc0..d5284a6 100755
--- a/configs/lahaina/shima_overlay/mixer_paths_shimaqrd_overlay.xml
+++ b/configs/lahaina/shima_overlay/mixer_paths_shimaqrd_overlay.xml
@@ -25,6 +25,10 @@
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<ctl name="VI_FEED_TX Channels" value="One"/>
<ctl name="TX DEC0 MUX" value="MSM_DMIC"/>
@@ -48,6 +52,10 @@
<ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
<path name="echo-reference-voip-low-latency">
<ctl name="AUDIO_REF_EC_UL8 MUX" value="WSA_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
@@ -56,6 +64,10 @@
<ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
<path name="echo-reference-voip">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="WSA_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
@@ -64,6 +76,10 @@
<ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
<path name="amic2">
<ctl name="TX DEC0 MUX" value="SWR_MIC"/>
<ctl name="TX SMIC MUX0" value="SWR_MIC1"/>
diff --git a/configs/lahaina/yupik_overlay/mixer_paths_yupikidp_overlay.xml b/configs/lahaina/yupik_overlay/mixer_paths_yupikidp_overlay.xml
index d016dd4..448dece 100644
--- a/configs/lahaina/yupik_overlay/mixer_paths_yupikidp_overlay.xml
+++ b/configs/lahaina/yupik_overlay/mixer_paths_yupikidp_overlay.xml
@@ -25,6 +25,10 @@
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<ctl name="TX DEC0 MUX" value="MSM_DMIC"/>
<ctl name="TX DEC1 MUX" value="MSM_DMIC"/>
@@ -67,18 +71,18 @@
<path name="speaker-dmic-broadside">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two"/>
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1"/>
- <ctl name="TX DMIC MUX1" value="DMIC0"/>
+ <ctl name="TX DMIC MUX1" value="DMIC3"/>
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1"/>
- <ctl name="TX DMIC MUX2" value="DMIC3"/>
+ <ctl name="TX DMIC MUX2" value="DMIC0"/>
</path>
<path name="three-mic">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Three"/>
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1"/>
- <ctl name="TX DMIC MUX1" value="DMIC0"/>
+ <ctl name="TX DMIC MUX1" value="DMIC3"/>
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1"/>
- <ctl name="TX DMIC MUX2" value="DMIC2"/>
+ <ctl name="TX DMIC MUX2" value="DMIC0"/>
<ctl name="TX_AIF1_CAP Mixer DEC3" value="1"/>
- <ctl name="TX DMIC MUX3" value="DMIC3"/>
+ <ctl name="TX DMIC MUX3" value="DMIC2"/>
</path>
<path name="speaker-tmic">
<path name="three-mic" />
@@ -86,13 +90,13 @@
<path name="speaker-qmic">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Four"/>
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1"/>
- <ctl name="TX DMIC MUX1" value="DMIC0"/>
+ <ctl name="TX DMIC MUX1" value="DMIC3"/>
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1"/>
- <ctl name="TX DMIC MUX2" value="DMIC1"/>
+ <ctl name="TX DMIC MUX2" value="DMIC0"/>
<ctl name="TX_AIF1_CAP Mixer DEC3" value="1"/>
<ctl name="TX DMIC MUX3" value="DMIC2"/>
<ctl name="TX_AIF1_CAP Mixer DEC4" value="1"/>
- <ctl name="TX DMIC MUX4" value="DMIC3"/>
+ <ctl name="TX DMIC MUX4" value="DMIC1"/>
</path>
<path name="voice-tty-vco-handset-mic">
<path name="dmic1"/>
@@ -119,4 +123,16 @@
<path name="mmap-record capture-fm">
<ctl name="MultiMedia16 Mixer SEC_MI2S_TX" value="1"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
</mixer>
diff --git a/configs/lahaina/yupik_overlay/mixer_paths_yupikqrd_overlay.xml b/configs/lahaina/yupik_overlay/mixer_paths_yupikqrd_overlay.xml
index d57fdad..fe02fc4 100644
--- a/configs/lahaina/yupik_overlay/mixer_paths_yupikqrd_overlay.xml
+++ b/configs/lahaina/yupik_overlay/mixer_paths_yupikqrd_overlay.xml
@@ -25,6 +25,10 @@
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<!-- -->
+<!-- Changes from Qualcomm Innovation Center are provided under the following license:-->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
<mixer>
<ctl name="VI_FEED_TX Channels" value="One"/>
<ctl name="TX DEC0 MUX" value="MSM_DMIC"/>
@@ -35,10 +39,10 @@
<ctl name="TX DEC5 MUX" value="MSM_DMIC"/>
<ctl name="TX DEC6 MUX" value="MSM_DMIC"/>
<ctl name="TX DEC7 MUX" value="MSM_DMIC"/>
- <ctl name="TX_DEC0 Volume" value="96"/>
- <ctl name="TX_DEC1 Volume" value="96"/>
- <ctl name="TX_DEC2 Volume" value="96"/>
- <ctl name="TX_DEC3 Volume" value="96"/>
+ <ctl name="TX_DEC0 Volume" value="84"/>
+ <ctl name="TX_DEC1 Volume" value="84"/>
+ <ctl name="TX_DEC2 Volume" value="84"/>
+ <ctl name="TX_DEC3 Volume" value="84"/>
<ctl name="MultiMedia1 Mixer SEC_MI2S_TX" value="0"/>
<ctl name="MultiMedia2 Mixer SEC_MI2S_TX" value="0"/>
<ctl name="MultiMedia8 Mixer SEC_MI2S_TX" value="0"/>
@@ -54,6 +58,10 @@
<ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
</path>
+ <path name="echo-reference usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
<path name="echo-reference-voip-low-latency">
<ctl name="AUDIO_REF_EC_UL8 MUX" value="WSA_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
@@ -62,6 +70,10 @@
<ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
</path>
+ <path name="echo-reference-voip-low-latency usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
<path name="echo-reference-voip">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="WSA_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
@@ -70,6 +82,10 @@
<ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_0"/>
<ctl name="EC Reference Channels" value="One"/>
</path>
+ <path name="echo-reference-voip usb-headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="USB_AUDIO_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
<path name="speaker">
<ctl name="WSA_CDC_DMA_RX_0 Channels" value="One"/>
<ctl name="WSA RX1 MUX" value="AIF1_PB"/>
@@ -270,4 +286,8 @@
<path name="mmap-record capture-fm">
<ctl name="MultiMedia16 Mixer SEC_MI2S_TX" value="1"/>
</path>
+ <path name="audio-with-haptics-playback handset">
+ <ctl name="RX_CDC_DMA_RX_6 Audio Mixer MultiMedia32" value="1"/>
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia31" value="1"/>
+ </path>
</mixer>
diff --git a/configs/lito/audio_policy_configuration.xml b/configs/lito/audio_policy_configuration.xml
index ff08ed4..c2872d8 100644
--- a/configs/lito/audio_policy_configuration.xml
+++ b/configs/lito/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -179,7 +215,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
@@ -219,7 +255,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/configs/lito/audio_tuning_mixer.txt b/configs/lito/audio_tuning_mixer.txt
new file mode 100644
index 0000000..2080ae5
--- /dev/null
+++ b/configs/lito/audio_tuning_mixer.txt
@@ -0,0 +1,208 @@
+# Copyright (c) 2021, The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of The Linux Foundation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#RAS_TEST_SPKR_PHONE_SPKR_STEREO
+acdb_dev_id:136
+!Playback
+Rxdevice:0
+
+enable
+WSA_CDC_DMA_RX_0 Channels:Two
+WSA RX0 MUX:AIF1_PB
+WSA RX1 MUX:AIF1_PB
+WSA_RX0 INP0:RX0
+WSA_RX1 INP0:RX1
+WSA_COMP1 Switch:1
+WSA_COMP2 Switch:1
+SpkrLeft COMP Switch:1
+SpkrRight COMP Switch:1
+SpkrLeft BOOST Switch:1
+SpkrRight BOOST Switch:1
+SpkrLeft VISENSE Switch:1
+SpkrRight VISENSE Switch:1
+SpkrLeft SWR DAC_Port Switch:1
+SpkrRight SWR DAC_Port Switch:1
+WSA_RX0 Digital Volume:62
+WSA_RX1 Digital Volume:62
+WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1:1
+
+disable
+WSA RX0 MUX:ZERO
+WSA RX1 MUX:ZERO
+WSA_RX0 INP0:ZERO
+WSA_RX1 INP0:ZERO
+WSA_COMP1 Switch:0
+WSA_COMP2 Switch:0
+SpkrLeft COMP Switch:0
+SpkrRight COMP Switch:0
+SpkrLeft BOOST Switch:0
+SpkrRight BOOST Switch:0
+SpkrLeft VISENSE Switch:0
+SpkrRight VISENSE Switch:0
+SpkrLeft SWR DAC_Port Switch:0
+SpkrRight SWR DAC_Port Switch:0
+WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1:0
+
+#SPKR_PHONE_SPKR_TX_FB_PROT_STEREO_MCS
+acdb_dev_id:193
+!Record
+Txdevice:0
+
+enable
+WSA_AIF_VI Mixer WSA_SPKR_VI_1:1
+WSA_AIF_VI Mixer WSA_SPKR_VI_2:1
+WSA_CDC_DMA_0 TX Format:UNPACKED
+VI_FEED_TX Channels:Two
+WSA_RX_0_VI_FB_LCH_MUX:WSA_CDC_DMA_TX_0
+WSA_RX_0_VI_FB_RCH_MUX:WSA_CDC_DMA_TX_0
+MultiMedia1 Mixer WSA_CDC_DMA_TX_0:1
+
+
+disable
+WSA_AIF_VI Mixer WSA_SPKR_VI_1:0
+WSA_AIF_VI Mixer WSA_SPKR_VI_2:0
+MultiMedia1 Mixer WSA_CDC_DMA_TX_0:0
+
+#SPKR_PHONE_SPKR_TX_FB_PROT_MONO_L_MCS
+acdb_dev_id:194
+!Record
+Txdevice:0
+
+enable
+WSA_AIF_VI Mixer WSA_SPKR_VI_1:1
+WSA_CDC_DMA_0 TX Format:UNPACKED
+VI_FEED_TX Channels:One
+WSA_RX_0_VI_FB_LCH_MUX:WSA_CDC_DMA_TX_0
+MultiMedia1 Mixer WSA_CDC_DMA_TX_0:1
+
+disable
+WSA_AIF_VI Mixer WSA_SPKR_VI_1:0
+MultiMedia1 Mixer WSA_CDC_DMA_TX_0:0
+
+#SPKR_PHONE_SPKR_TX_FB_PROT_MONO_R_MCS
+acdb_dev_id:195
+!Record
+Txdevice:0
+
+enable
+WSA_AIF_VI Mixer WSA_SPKR_VI_2:1
+WSA_CDC_DMA_0 TX Format:UNPACKED
+VI_FEED_TX Channels:One
+WSA_RX_0_VI_FB_RCH_MUX:WSA_CDC_DMA_TX_0
+MultiMedia1 Mixer WSA_CDC_DMA_TX_0:1
+
+disable
+WSA_AIF_VI Mixer WSA_SPKR_VI_2:0
+MultiMedia1 Mixer WSA_CDC_DMA_TX_0:0
+
+#SPKR_PHONE_SPKR_STEREO_RX_FB_PROT_MCS
+acdb_dev_id:196
+!Playback
+Rxdevice:0
+
+enable
+WSA_CDC_DMA_RX_0 Channels:Two
+WSA RX0 MUX:AIF1_PB
+WSA RX1 MUX:AIF1_PB
+WSA_RX0 INP0:RX0
+WSA_RX1 INP0:RX1
+WSA_COMP1 Switch:1
+WSA_COMP2 Switch:1
+SpkrLeft COMP Switch:1
+SpkrRight COMP Switch:1
+SpkrLeft VISENSE Switch:1
+SpkrRight VISENSE Switch:1
+SpkrLeft SWR DAC_Port Switch:1
+SpkrRight SWR DAC_Port Switch:1
+WSA_RX0 Digital Volume:84
+WSA_RX1 Digital Volume:84
+WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1:1
+
+disable
+WSA RX0 MUX:ZERO
+WSA RX1 MUX:ZERO
+WSA_RX0 INP0:ZERO
+WSA_RX1 INP0:ZERO
+WSA_COMP1 Switch:0
+WSA_COMP2 Switch:0
+SpkrLeft COMP Switch:0
+SpkrRight COMP Switch:0
+SpkrLeft VISENSE Switch:0
+SpkrRight VISENSE Switch:0
+SpkrLeft SWR DAC_Port Switch:0
+SpkrRight SWR DAC_Port Switch:0
+WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1:0
+
+#SPKR_PHONE_SPKR_MONO_L_RX_FB_PROT_MCS
+acdb_dev_id:197
+!Playback
+Rxdevice:0
+
+enable
+WSA_CDC_DMA_RX_0 Channels:One
+WSA RX0 MUX:AIF1_PB
+WSA_RX0 INP0:RX0
+WSA_COMP1 Switch:1
+SpkrLeft COMP Switch:1
+SpkrLeft VISENSE Switch:1
+SpkrLeft SWR DAC_Port Switch:1
+WSA_RX0 Digital Volume:84
+WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1:1
+
+disable
+WSA RX0 MUX:ZERO
+WSA_RX0 INP0:ZERO
+WSA_COMP1 Switch:0
+SpkrLeft COMP Switch:0
+SpkrLeft VISENSE Switch:0
+SpkrLeft SWR DAC_Port Switch:0
+WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1:0
+
+
+#SPKR_PHONE_SPKR_MONO_R_RX_FB_PROT_MCS
+acdb_dev_id:198
+!Playback
+Rxdevice:0
+
+enable
+WSA_CDC_DMA_RX_0 Channels:One
+WSA RX1 MUX:AIF1_PB
+WSA_RX1 INP0:RX1
+WSA_COMP2 Switch:1
+SpkrRight COMP Switch:1
+SpkrRight VISENSE Switch:1
+SpkrRight SWR DAC_Port Switch:1
+WSA_RX1 Digital Volume:84
+WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1:1
+
+disable
+WSA RX1 MUX:ZERO
+WSA_RX1 INP0:ZERO
+WSA_COMP2 Switch:0
+SpkrRight COMP Switch:0
+SpkrRight VISENSE Switch:0
+SpkrRight SWR DAC_Port Switch:0
+WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1:0
+
diff --git a/configs/lito/mixer_paths.xml b/configs/lito/mixer_paths.xml
index ecf1b62..26e67c1 100644
--- a/configs/lito/mixer_paths.xml
+++ b/configs/lito/mixer_paths.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -882,6 +882,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/lito/mixer_paths_cdp.xml b/configs/lito/mixer_paths_cdp.xml
index 5d1a696..28bbbb3 100644
--- a/configs/lito/mixer_paths_cdp.xml
+++ b/configs/lito/mixer_paths_cdp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2019-2021, 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 -->
@@ -886,6 +886,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/lito/mixer_paths_lagoonmtp.xml b/configs/lito/mixer_paths_lagoonmtp.xml
index 228e38f..e6dc5cd 100644
--- a/configs/lito/mixer_paths_lagoonmtp.xml
+++ b/configs/lito/mixer_paths_lagoonmtp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -837,6 +837,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/lito/mixer_paths_lagoonqrd.xml b/configs/lito/mixer_paths_lagoonqrd.xml
index a5d8d65..3703e50 100644
--- a/configs/lito/mixer_paths_lagoonqrd.xml
+++ b/configs/lito/mixer_paths_lagoonqrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -845,6 +845,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/lito/mixer_paths_orchidmtp.xml b/configs/lito/mixer_paths_orchidmtp.xml
index d1fa472..f5d9398 100644
--- a/configs/lito/mixer_paths_orchidmtp.xml
+++ b/configs/lito/mixer_paths_orchidmtp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -874,6 +874,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/lito/mixer_paths_qrd.xml b/configs/lito/mixer_paths_qrd.xml
index fdef5ae..7766d9c 100644
--- a/configs/lito/mixer_paths_qrd.xml
+++ b/configs/lito/mixer_paths_qrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -890,6 +890,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/msm8909/audio_policy_configuration.xml b/configs/msm8909/audio_policy_configuration.xml
index d4dcd79..c515818 100644
--- a/configs/msm8909/audio_policy_configuration.xml
+++ b/configs/msm8909/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2017, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2017, 2021 The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -132,7 +168,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -164,7 +200,7 @@
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/configs/msm8937/audio_platform_info_sdm429w.xml b/configs/msm8937/audio_platform_info_sdm429w.xml
index 91a7a20..9509f18 100644
--- a/configs/msm8937/audio_platform_info_sdm429w.xml
+++ b/configs/msm8937/audio_platform_info_sdm429w.xml
@@ -56,6 +56,7 @@
<param key="spkr_1_tz_name" value="wsa881x.0f"/>
<param key="spkr_2_tz_name" value=""/>
<param key="hfp_pcm_dev_id" value="18"/>
+ <param key="afe_loopback" value="1"/>
</config_params>
<acdb_ids>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="136"/>
diff --git a/configs/msm8937/audio_platform_info_sdm429w_dvt2.xml b/configs/msm8937/audio_platform_info_sdm429w_dvt2.xml
index 8dacccf..dffb7ee 100644
--- a/configs/msm8937/audio_platform_info_sdm429w_dvt2.xml
+++ b/configs/msm8937/audio_platform_info_sdm429w_dvt2.xml
@@ -53,12 +53,14 @@
<usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="25" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="27" />
<usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="27" />
+ <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="56" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsa881x.0f"/>
<param key="spkr_2_tz_name" value=""/>
<param key="hfp_vol_mixer_ctl" value="SLIMBUS_7 LOOPBACK Volume"/>
<param key="hfp_pcm_dev_id" value="18"/>
+ <param key="afe_loopback" value="1"/>
</config_params>
<acdb_ids>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="136"/>
diff --git a/configs/msm8937/audio_policy_configuration.xml b/configs/msm8937/audio_policy_configuration.xml
index 50db483..148b113 100644
--- a/configs/msm8937/audio_policy_configuration.xml
+++ b/configs/msm8937/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2017, 2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2017, 2020-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -163,7 +199,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -199,11 +235,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/configs/msm8937/audio_policy_configuration_sdm429w.xml b/configs/msm8937/audio_policy_configuration_sdm429w.xml
index b210fbc..33a4af5 100644
--- a/configs/msm8937/audio_policy_configuration_sdm429w.xml
+++ b/configs/msm8937/audio_policy_configuration_sdm429w.xml
@@ -49,7 +49,6 @@
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Speaker</item>
- <item>Speaker Safe</item>
<item>Earpiece</item>
<item>Telephony Tx</item>
<item>Built-In Mic</item>
@@ -117,8 +116,6 @@
</devicePort>
<devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
</devicePort>
- <devicePort tagName="Speaker Safe" type="AUDIO_DEVICE_OUT_SPEAKER_SAFE" role="sink">
- </devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
@@ -163,8 +160,6 @@
sources="primary output,raw,deep_buffer"/>
<route type="mix" sink="Speaker"
sources="primary output,raw,deep_buffer,compressed_offload"/>
- <route type="mix" sink="Speaker Safe"
- sources="primary output,raw,deep_buffer,compressed_offload"/>
<route type="mix" sink="BT SCO"
sources="primary output,raw,deep_buffer,voip_rx"/>
<route type="mix" sink="BT SCO Headset"
diff --git a/configs/msm8937/mixer_paths_mtp.xml b/configs/msm8937/mixer_paths_mtp.xml
index 8ded630..c92fb58 100644
--- a/configs/msm8937/mixer_paths_mtp.xml
+++ b/configs/msm8937/mixer_paths_mtp.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
- Copyright (c) 2015-2016, 2018-2020, The Linux Foundation. All rights reserved.
+ Copyright (c) 2015-2016, 2018-2021, 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
@@ -1420,6 +1420,11 @@
<path name="headphones" />
</path>
+ <path name="wsa-speaker-and-headphones">
+ <path name="wsa-speaker" />
+ <path name="headphones" />
+ </path>
+
<path name="usb-headphones">
</path>
diff --git a/configs/msm8937/mixer_paths_sdm429w_dvt2.xml b/configs/msm8937/mixer_paths_sdm429w_dvt2.xml
index 4a6d124..aea01f4 100644
--- a/configs/msm8937/mixer_paths_sdm429w_dvt2.xml
+++ b/configs/msm8937/mixer_paths_sdm429w_dvt2.xml
@@ -935,6 +935,7 @@
<path name="speaker-and-bt-a2dp">
<path name="speaker" />
+ <path name="bt-a2dp" />
</path>
<path name="voice-rec-mic">
diff --git a/configs/msm8937/mixer_paths_tasha.xml b/configs/msm8937/mixer_paths_tasha.xml
index 24b5c1e..4944f9d 100644
--- a/configs/msm8937/mixer_paths_tasha.xml
+++ b/configs/msm8937/mixer_paths_tasha.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016, 2018, 2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, 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 -->
@@ -2359,6 +2360,10 @@
<path name="wsa-speaker" />
</path>
+ <path name="wsa-speaker-and-headphones">
+ <path name="wsa-speaker" />
+ <path name="headphones" />
+ </path>
<path name="usb-headphones">
</path>
diff --git a/configs/msm8937/mixer_paths_tashalite.xml b/configs/msm8937/mixer_paths_tashalite.xml
index 00b2d74..4f20a0a 100644
--- a/configs/msm8937/mixer_paths_tashalite.xml
+++ b/configs/msm8937/mixer_paths_tashalite.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016, 2018, 2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, -->
+<!-- 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 -->
@@ -2326,6 +2327,10 @@
<path name="wsa-speaker" />
</path>
+ <path name="wsa-speaker-and-headphones">
+ <path name="wsa-speaker" />
+ <path name="headphones" />
+ </path>
<path name="usb-headphones">
</path>
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index 23364e2..9f7c7aa 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -71,9 +71,18 @@
endif
##AUDIO_FEATURE_FLAGS
-#Audio Specific device overlays
-DEVICE_PACKAGE_OVERLAYS += vendor/qcom/opensource/audio-hal/primary-hal/configs/common/overlay
+ifneq ($(BOARD_OPENSOURCE_DIR), )
+ #Audio Specific device overlays
+ DEVICE_PACKAGE_OVERLAYS += $(BOARD_OPENSOURCE_DIR)/audio-hal/primary-hal/configs/common/overlay
+ #AudioHal-primaryHal path
+ PRIMARYHAL_PATH += $(BOARD_OPENSOURCE_DIR)/audio-hal/primary-hal
+else
+ #Audio Specific device overlays
+ DEVICE_PACKAGE_OVERLAYS += vendor/qcom/opensource/audio-hal/primary-hal/configs/common/overlay
+ #AudioHal-primaryHal path
+ PRIMARYHAL_PATH += vendor/qcom/opensource/audio-hal/primary-hal
+endif # BOARD_OPENSOURCE_DIR
ifeq ($(TARGET_SUPPORTS_WEARABLES),true)
ifeq ($(TARGET_KERNEL_VERSION), 4.14)
@@ -88,7 +97,7 @@
ifeq ($(TARGET_SUPPORTS_WEARABLES), true)
ifeq ($(AUDIO_FEATURE_ENABLED_SPLIT_A2DP), true)
PRODUCT_COPY_FILES += \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf
+ $(PRIMARYHAL_PATH)/configs/msm8937/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf
else
PRODUCT_COPY_FILES += \
$(BOARD_COMMON_DIR)/media/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf
@@ -99,7 +108,7 @@
endif
else
PRODUCT_COPY_FILES += \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf
+ $(PRIMARYHAL_PATH)/configs/msm8937/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf
endif
# Target supports smartPA
@@ -108,62 +117,63 @@
endif
PRODUCT_COPY_FILES +=\
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf\
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf\
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/mixer_paths_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/mixer_paths_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tashalite.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/mixer_paths_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_mtp.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/mixer_paths_sku1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_sku1.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/mixer_paths_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wtp.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/mixer_paths_sdm429w_dvt2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wtp_newport.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/sound_trigger_mixer_paths_wcd9306.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9306.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/sound_trigger_mixer_paths_wcd9330.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9330.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_platform_info_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tashalite.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_platform_info_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tasha.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_platform_info_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_mtp.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_platform_info_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_wtp.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_platform_info_sdm429w_dvt2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_wtp_newport.xml \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
-vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf\
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf\
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/mixer_paths_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/mixer_paths_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tashalite.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/mixer_paths_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_mtp.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/mixer_paths_sku1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_sku1.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/mixer_paths_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wtp.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/mixer_paths_sdm429w_dvt2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wtp_newport.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/sound_trigger_mixer_paths_wcd9306.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9306.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/sound_trigger_mixer_paths_wcd9330.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9330.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_platform_info_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tashalite.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_platform_info_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_tasha.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_platform_info_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_mtp.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_platform_info_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_wtp.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_platform_info_sdm429w_dvt2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_wtp_newport.xml \
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
+$(PRIMARYHAL_PATH)/configs/msm8937/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml
ifeq ($(TARGET_SUPPORTS_WEARABLES), true)
ifeq ($(TARGET_SUPPORTS_A2DP_SLIMBUS_INTERFACE),true)
PRODUCT_COPY_FILES += \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_platform_info_sdm429w_dvt2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/mixer_paths_sdm429w_dvt2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/audio_platform_info_sdm429w_dvt2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/mixer_paths_sdm429w_dvt2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml
else
PRODUCT_COPY_FILES += \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_platform_info_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/mixer_paths_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/audio_platform_info_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/mixer_paths_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml
endif
else
PRODUCT_COPY_FILES += \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
endif
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
ifeq ($(TARGET_PRODUCT),sdm429w_law)
PRODUCT_COPY_FILES += \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_policy_configuration_sdm429w_law.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/audio_policy_configuration_sdm429w_law.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml
else ifeq ($(TARGET_SUPPORTS_WEARABLES), true)
PRODUCT_COPY_FILES += \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_policy_configuration_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/audio_policy_configuration_sdm429w.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml
else ifeq ($(TARGET_USES_AOSP_FOR_AUDIO), true)
PRODUCT_COPY_FILES += \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_policy_configuration_common.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/audio_policy_configuration_common.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml
else
PRODUCT_COPY_FILES += \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/msm8937/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8937/audio_policy_configuration_common.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml
endif
PRODUCT_COPY_FILES += \
- $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
+ $(TOPDIR)$(PRIMARYHAL_PATH)/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
@@ -198,17 +208,15 @@
audio.offload.min.duration.secs=30
#Enable offload audio video playback by default
+ifneq ($(TARGET_PRODUCT),sdm429w)
PRODUCT_PROPERTY_OVERRIDES += \
audio.offload.video=true
+endif
#Enable audio track offload by default
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.offload.track.enable=true
-#Enable music through deep buffer
-PRODUCT_PROPERTY_OVERRIDES += \
-audio.deep_buffer.media=true
-
#enable voice path for PCM VoIP by default
PRODUCT_PROPERTY_OVERRIDES += \
vendor.voice.path.for.pcm.voip=true
diff --git a/configs/msm8937/sound_trigger_platform_info.xml b/configs/msm8937/sound_trigger_platform_info.xml
index e8ec308..41fb422 100644
--- a/configs/msm8937/sound_trigger_platform_info.xml
+++ b/configs/msm8937/sound_trigger_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2013-2016, 2018, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2013-2016, 2018, 2021, 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 -->
@@ -63,6 +63,7 @@
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
<param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
+ <param second_stage_supported="false" />
<param app_type="2" /> <!-- app type used in ACDB -->
<param library="libsmwrapper.so" />
<param max_cpe_phrases="6" />
diff --git a/configs/msm8953/audio_output_policy.conf b/configs/msm8953/audio_output_policy.conf
index d983d9a..b19fbb0 100644
--- a/configs/msm8953/audio_output_policy.conf
+++ b/configs/msm8953/audio_output_policy.conf
@@ -18,6 +18,13 @@
bit_width 16
app_type 69937
}
+ voip_rx {
+ flags AUDIO_OUTPUT_FLAG_VOIP_RX|AUDIO_OUTPUT_FLAG_DIRECT
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 8000|16000|32000|48000
+ bit_width 16
+ app_type 69946
+ }
deep_buffer {
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
formats AUDIO_FORMAT_PCM_16_BIT
diff --git a/configs/msm8953/audio_platform_info_intcodec.xml b/configs/msm8953/audio_platform_info_intcodec.xml
index 157d998..557cd0f 100644
--- a/configs/msm8953/audio_platform_info_intcodec.xml
+++ b/configs/msm8953/audio_platform_info_intcodec.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, 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 -->
@@ -53,6 +53,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="27" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="27" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsa881x.0f"/>
@@ -64,6 +66,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" acdb_id="136"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" acdb_id="136"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="137"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
</acdb_ids>
<backend_names>
@@ -165,6 +168,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/audio_platform_info_sku3_tasha.xml b/configs/msm8953/audio_platform_info_sku3_tasha.xml
index d3cf620..806584e 100644
--- a/configs/msm8953/audio_platform_info_sku3_tasha.xml
+++ b/configs/msm8953/audio_platform_info_sku3_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, 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 -->
@@ -62,6 +62,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="28" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="28" />
</pcm_ids>
<config_params>
<param key="native_audio_mode" value="src"/>
@@ -69,6 +71,9 @@
<param key="ffv_split_ec_ref_data" value="false"/>
<param key="ffv_ec_ref_channel_count" value="1"/>
</config_params>
+ <acdb_ids>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
+ </acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_BT_SCO_WB" interface="INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" interface="INT_BT_SCO_RX"/>
@@ -87,6 +92,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/audio_platform_info_sku4.xml b/configs/msm8953/audio_platform_info_sku4.xml
index 8b211a7..d848790 100644
--- a/configs/msm8953/audio_platform_info_sku4.xml
+++ b/configs/msm8953/audio_platform_info_sku4.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, 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 -->
@@ -52,6 +52,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="27" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="27" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsa881x.0f"/>
@@ -63,6 +65,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" acdb_id="136"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" acdb_id="136"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="137"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
</acdb_ids>
<backend_names>
@@ -164,6 +167,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/audio_platform_info_tasha.xml b/configs/msm8953/audio_platform_info_tasha.xml
index b9ae049..ee65dac 100644
--- a/configs/msm8953/audio_platform_info_tasha.xml
+++ b/configs/msm8953/audio_platform_info_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, 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 -->
@@ -64,6 +64,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="28" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="28" />
</pcm_ids>
<config_params>
<param key="native_audio_mode" value="src"/>
@@ -71,6 +73,9 @@
<param key="ffv_split_ec_ref_data" value="false"/>
<param key="ffv_ec_ref_channel_count" value="1"/>
</config_params>
+ <acdb_ids>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
+ </acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_BT_SCO_WB" interface="INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" interface="INT_BT_SCO_RX"/>
@@ -89,6 +94,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/audio_platform_info_tashalite.xml b/configs/msm8953/audio_platform_info_tashalite.xml
index a358144..ee65dac 100644
--- a/configs/msm8953/audio_platform_info_tashalite.xml
+++ b/configs/msm8953/audio_platform_info_tashalite.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, 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 -->
@@ -64,6 +64,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="28" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="28" />
</pcm_ids>
<config_params>
<param key="native_audio_mode" value="src"/>
@@ -71,6 +73,9 @@
<param key="ffv_split_ec_ref_data" value="false"/>
<param key="ffv_ec_ref_channel_count" value="1"/>
</config_params>
+ <acdb_ids>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
+ </acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_BT_SCO_WB" interface="INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" interface="INT_BT_SCO_RX"/>
@@ -89,6 +94,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/audio_policy_configuration.xml b/configs/msm8953/audio_policy_configuration.xml
index 00c2f31..ebcf725 100644
--- a/configs/msm8953/audio_policy_configuration.xml
+++ b/configs/msm8953/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2017, 2020 The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2017, 2020-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -174,7 +210,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -210,11 +246,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/configs/msm8953/mixer_paths_mtp.xml b/configs/msm8953/mixer_paths_mtp.xml
index fea32be..3d38818 100644
--- a/configs/msm8953/mixer_paths_mtp.xml
+++ b/configs/msm8953/mixer_paths_mtp.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
- Copyright (c) 2015-2016, 2018, 2020 The Linux Foundation. All rights reserved.
+ Copyright (c) 2015-2016, 2018, 2020-2021, 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
@@ -266,6 +266,15 @@
<ctl name="IIR1 Enable Band5" value="0" />
<!-- IIR -->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="0" />
+ <!-- VoIP over audio -->
+
<!-- ADSP testfwk -->
<ctl name="MI2S_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
@@ -1309,7 +1318,68 @@
<ctl name="SpkrMono WSA_RDAC" value="Switch" />
</path>
- <path name="spkr-rx-calib">
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
+ <path name="spkr-rx-calib">
<ctl name="PRI_MI2S_RX_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/mixer_paths_sku3_tasha.xml b/configs/msm8953/mixer_paths_sku3_tasha.xml
index 7efefd2..8bc89e9 100644
--- a/configs/msm8953/mixer_paths_sku3_tasha.xml
+++ b/configs/msm8953/mixer_paths_sku3_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, 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 -->
@@ -546,6 +546,12 @@
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <!-- VoIP over audio -->
+
<!-- These are audio route (FE to BE) specific mixer settings -->
<path name="deep-buffer-playback">
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia1" value="1" />
@@ -1964,6 +1970,60 @@
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
</path>
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="SLIMBUS_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/mixer_paths_sku4.xml b/configs/msm8953/mixer_paths_sku4.xml
index 91a4d1a..d171873 100644
--- a/configs/msm8953/mixer_paths_sku4.xml
+++ b/configs/msm8953/mixer_paths_sku4.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
- Copyright (c) 2015, 2018, 2020 The Linux Foundation. All rights reserved.
+ Copyright (c) 2015, 2018, 2020-2021, 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
@@ -270,6 +270,15 @@
<ctl name="MI2S_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="0" />
+ <!-- VoIP over audio -->
+
<path name="bt-sco-wb-samplerate">
<ctl name="Internal BTSCO SampleRate" value="16000" />
</path>
@@ -1308,6 +1317,59 @@
<ctl name="SpkrMono WSA_RDAC" value="Switch" />
</path>
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="PRI_MI2S_RX_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/mixer_paths_tasha.xml b/configs/msm8953/mixer_paths_tasha.xml
index 1a2987c..948a88e 100644
--- a/configs/msm8953/mixer_paths_tasha.xml
+++ b/configs/msm8953/mixer_paths_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, 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 -->
@@ -571,6 +571,12 @@
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <!-- VoIP over audio -->
+
<!-- These are audio route (FE to BE) specific mixer settings -->
<path name="deep-buffer-playback">
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia1" value="1" />
@@ -2034,6 +2040,68 @@
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
</path>
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="SLIMBUS_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/mixer_paths_tashalite.xml b/configs/msm8953/mixer_paths_tashalite.xml
index 5efe6d3..923bff1 100644
--- a/configs/msm8953/mixer_paths_tashalite.xml
+++ b/configs/msm8953/mixer_paths_tashalite.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 2020-2021, 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 -->
@@ -553,6 +553,12 @@
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <!-- VoIP over audio -->
+
<!-- These are audio route (FE to BE) specific mixer settings -->
<path name="deep-buffer-playback">
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia1" value="1" />
@@ -2011,6 +2017,68 @@
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
</path>
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="SLIMBUS_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index e68cc7e..3043a4c 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -8,7 +8,7 @@
#AUDIO_FEATURE_ENABLED_VOICE_CONCURRENCY := true
AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_COMPRESS_CAPTURE := false
-AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := true
+AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := false
AUDIO_FEATURE_ENABLED_EXTN_FORMATS := true
AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER := true
AUDIO_FEATURE_ENABLED_EXTN_RESAMPLER := true
@@ -257,7 +257,7 @@
endor.audio.feature.spkr_prot.enable=true \
vendor.audio.feature.dsm_feedback.enable=false \
vendor.audio.feature.ssrec.enable=true \
-vendor.audio.feature.compr_voip.enable=true \
+vendor.audio.feature.compr_voip.enable=false \
vendor.audio.feature.kpi_optimize.enable=true \
vendor.audio.feature.usb_offload.enable=false \
vendor.audio.feature.usb_offload_burst_mode.enable=false \
diff --git a/configs/msm8953/sound_trigger_platform_info.xml b/configs/msm8953/sound_trigger_platform_info.xml
index e0b0a93..4526218 100644
--- a/configs/msm8953/sound_trigger_platform_info.xml
+++ b/configs/msm8953/sound_trigger_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2013-2018, 2021 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 -->
@@ -74,6 +74,7 @@
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
<param execution_type="ADSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
+ <param second_stage_supported="false" />
<param app_type="2" /> <!-- app type used in ACDB -->
<param library="libsmwrapper.so" />
<param max_cpe_phrases="6" />
diff --git a/configs/msm8998/audio_policy_configuration.xml b/configs/msm8998/audio_policy_configuration.xml
index 10190ac..d53f1f5 100644
--- a/configs/msm8998/audio_policy_configuration.xml
+++ b/configs/msm8998/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -352,7 +352,7 @@
<route type="mix" sink="primary input"
sources="Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In,Telephony Rx"/>
<route type="mix" sink="voip_tx"
- sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="surround_sound"
sources="Built-In Mic,Built-In Back Mic"/>
<route type="mix" sink="record_24"
diff --git a/configs/msmnile/audio_policy_configuration.xml b/configs/msmnile/audio_policy_configuration.xml
index 7a8a230..d44a8ef 100644
--- a/configs/msmnile/audio_policy_configuration.xml
+++ b/configs/msmnile/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -80,8 +116,6 @@
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
- <profile name="" format="dynamic"
- samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
@@ -187,7 +221,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
@@ -216,7 +250,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -252,11 +286,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -279,11 +313,11 @@
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
diff --git a/configs/msmnile/mixer_paths_pahu.xml b/configs/msmnile/mixer_paths_pahu.xml
index e3ad0bf..a622d9f 100644
--- a/configs/msmnile/mixer_paths_pahu.xml
+++ b/configs/msmnile/mixer_paths_pahu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-2018, 2020-2021 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 -->
@@ -670,6 +670,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/msmnile/mixer_paths_tavil.xml b/configs/msmnile/mixer_paths_tavil.xml
index c54c467..3ee909c 100644
--- a/configs/msmnile/mixer_paths_tavil.xml
+++ b/configs/msmnile/mixer_paths_tavil.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-2021, 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 -->
@@ -846,6 +846,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/msmnile_au/audio_effects.conf b/configs/msmnile_au/audio_effects.conf
index edb9814..c8b20b7 100755
--- a/configs/msmnile_au/audio_effects.conf
+++ b/configs/msmnile_au/audio_effects.conf
@@ -45,12 +45,6 @@
audio_pre_processing {
path /vendor/lib/soundfx/libqcomvoiceprocessing.so
}
- audiosphere {
- path /vendor/lib/soundfx/libasphere.so
- }
- shoebox {
- path /vendor/lib/soundfx/libshoebox.so
- }
audio_bmt {
path /vendor/lib/soundfx/libqtiautobundle.so
}
@@ -259,14 +253,6 @@
library audio_pre_processing
uuid 1d97bb0b-9e2f-4403-9ae3-58c2554306f8
}
- audiosphere {
- library audiosphere
- uuid 184e62ab-2d19-4364-9d1b-c0a40733866c
- }
- shoebox {
- library shoebox
- uuid 1eab784c-1a36-4b2a-b7fc-e34c44cab89e
- }
auto_bmt {
library auto_bmt
uuid e039757b-a367-44e9-9bbb-634af0c51cb7
@@ -300,30 +286,6 @@
# additional effect from vendor
# UUID generated using version 1
-output_session_processing {
- music {
- music_helper {
- }
- }
- ring {
- ring_helper {
- }
- }
- alarm {
- alarm_helper {
- }
- }
- # stream type voice_call is used for VoIP call
- voice_call {
- voice_helper {
- }
- }
- notification {
- notification_helper {
- }
- }
-}
-
# Added aec, ns effects for voice_communication, which are supported by the board
pre_processing {
diff --git a/configs/msmnile_au/audio_effects.xml b/configs/msmnile_au/audio_effects.xml
index 3f8c540..0f6f25d 100644
--- a/configs/msmnile_au/audio_effects.xml
+++ b/configs/msmnile_au/audio_effects.xml
@@ -38,7 +38,6 @@
<library name="proxy" path="libeffectproxy.so"/>
<library name="offload_bundle" path="libqcompostprocbundle.so"/>
<library name="audio_pre_processing" path="libqcomvoiceprocessing.so"/>
- <library name="volume_listener" path="libvolumelistener.so"/>
<library name="audiosphere" path="libasphere.so"/>
<library name="shoebox" path="libshoebox.so"/>
<library name="audio_bmt" path="libqtiautobundle.so"/>
@@ -83,19 +82,11 @@
<libsw library="visualizer_sw" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
<libhw library="visualizer_hw" uuid="7a8044a0-1a71-11e3-a184-0002a5d5c51b"/>
</effectProxy>
- <effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
<effect name="hw_acc" library="offload_bundle" uuid="7d1580bd-297f-4683-9239-e475b6d1d69f"/>
<effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
<effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
<effect name="aec" library="audio_pre_processing" uuid="0f8d0d2a-59e5-45fe-b6e4-248c8a799109"/>
<effect name="ns" library="audio_pre_processing" uuid="1d97bb0b-9e2f-4403-9ae3-58c2554306f8"/>
- <effect name="music_helper" library="volume_listener" uuid="08b8b058-0590-11e5-ac71-0025b32654a0"/>
- <effect name="ring_helper" library="volume_listener" uuid="0956df94-0590-11e5-bdbe-0025b32654a0"/>
- <effect name="alarm_helper" library="volume_listener" uuid="09f303e2-0590-11e5-8fdb-0025b32654a0"/>
- <effect name="voice_helper" library="volume_listener" uuid="0ace5c08-0590-11e5-ae9e-0025b32654a0"/>
- <effect name="notification_helper" library="volume_listener" uuid="0b776dde-0590-11e5-81ba-0025b32654a0"/>
- <effect name="audiosphere" library="audiosphere" uuid="184e62ab-2d19-4364-9d1b-c0a40733866c"/>
- <effect name="shoebox" library="shoebox" uuid="1eab784c-1a36-4b2a-b7fc-e34c44cab89e"/>
<effect name="audio_bmt" library="audio_bmt" uuid="e039757b-a367-44e9-9bbb-634af0c51cb7"/>
<effect name="audio_fnb" library="audio_fnb" uuid="6bc88c84-a544-11e8-98d0-529269fb1459"/>
<effect name="audio_delay" library="audio_delay" uuid="a31574a6-a5e7-11e8-98d0-529269fb1459"/>
@@ -105,21 +96,6 @@
<effect name="audio_synth" library="audio_synth" uuid="a124b54f-4026-4ed2-9316-4ba2d5effdb8"/>
</effects>
<postprocess>
- <stream type="music">
- <apply effect="music_helper"/>
- </stream>
- <stream type="ring">
- <apply effect="ring_helper"/>
- </stream>
- <stream type="alarm">
- <apply effect="alarm_helper"/>
- </stream>
- <stream type="voice_call">
- <apply effect="voice_helper"/>
- </stream>
- <stream type="notification">
- <apply effect="notification_helper"/>
- </stream>
</postprocess>
<preprocess>
<stream type="voice_communication">
diff --git a/configs/msmnile_au/audio_io_policy.conf b/configs/msmnile_au/audio_io_policy.conf
index 9f19dc3..1959c14 100644
--- a/configs/msmnile_au/audio_io_policy.conf
+++ b/configs/msmnile_au/audio_io_policy.conf
@@ -84,7 +84,7 @@
sys_notification {
flags AUDIO_OUTPUT_FLAG_SYS_NOTIFICATION
formats AUDIO_FORMAT_PCM_16_BIT
- sampling_rates 48000
+ sampling_rates 8000|16000|24000|32000|48000
bit_width 16
app_type 69937
}
@@ -98,10 +98,17 @@
phone {
flags AUDIO_OUTPUT_FLAG_PHONE
formats AUDIO_FORMAT_PCM_16_BIT
- sampling_rates 48000
+ sampling_rates 8000|16000|24000|32000|48000
bit_width 16
app_type 69936
}
+ alerts {
+ flags AUDIO_OUTPUT_FLAG_ALERTS
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 48000
+ bit_width 16
+ app_type 69937
+ }
front_passenger {
flags AUDIO_OUTPUT_FLAG_FRONT_PASSENGER
formats AUDIO_FORMAT_PCM_16_BIT
diff --git a/configs/msmnile_au/audio_platform_info.xml b/configs/msmnile_au/audio_platform_info.xml
index 90cc644..f5e7fbf 100644
--- a/configs/msmnile_au/audio_platform_info.xml
+++ b/configs/msmnile_au/audio_platform_info.xml
@@ -33,7 +33,8 @@
<device name="SND_DEVICE_OUT_BUS_MEDIA" acdb_id="60"/>
<device name="SND_DEVICE_OUT_BUS_SYS" acdb_id="60"/>
<device name="SND_DEVICE_OUT_BUS_NAV" acdb_id="14"/>
- <device name="SND_DEVICE_OUT_BUS_PHN" acdb_id="94"/>
+ <device name="SND_DEVICE_OUT_BUS_PHN" acdb_id="60"/>
+ <device name="SND_DEVICE_OUT_BUS_ALR" acdb_id="60"/>
<device name="SND_DEVICE_OUT_BUS_PAX" acdb_id="60"/>
<device name="SND_DEVICE_OUT_BUS_RSE" acdb_id="60"/>
<device name="SND_DEVICE_OUT_BT_SCO" acdb_id="21"/>
@@ -93,54 +94,64 @@
</bit_width_configs>
<pcm_ids>
- <usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_DEEP_BUFFER" type="out" id="0"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="21"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="22"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="23"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="24"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="25"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_MEDIA" type="out" id="0"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE" type="out" id="1"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_PHONE" type="out" id="12"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER" type="out" id="55"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" type="out" id="54"/>
- <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
- <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
- <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15"/>
- <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15"/>
- <usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
- <usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5"/>
- <usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
- <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
- <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
- <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
- <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" />
- <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="28" />
- <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="28" />
- <usecase name="USECASE_AUDIO_RECORD" type="in" id="0" />
- <usecase name="USECASE_AUDIO_RECORD_BUS" type="in" id="0" />
- <usecase name="USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER" type="in" id="55" />
- <usecase name="USECASE_AUDIO_RECORD_BUS_REAR_SEAT" type="in" id="54" />
- <usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO" type="out" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="in" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="out" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="in" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="out" id="36" />
- <usecase name="USECASE_ICC_CALL" type="in" id="33" />
- <usecase name="USECASE_ICC_CALL" type="out" id="33" />
- <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="in" id="33" />
- <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="out" id="33" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9" fe="4"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_DEEP_BUFFER" type="out" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7" fe="3"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11" fe="6"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="21" fe="10"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="22" fe="11"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="23" fe="12"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="24" fe="13"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="25" fe="14"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_MEDIA" type="out" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" type="out" id="9" fe="4"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE" type="out" id="1" fe="1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_PHONE" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_ALERTS" type="out" id="59" fe="30"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER" type="out" id="55" fe="22"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" type="out" id="54" fe="21"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2" fe="50"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2" fe="50"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15" fe="51"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15" fe="51"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="in" id="-1" fe="-1"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="out" id="-1" fe="-1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5" fe="-1"/>
+ <usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6" fe="-1"/>
+ <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" fe="7"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" fe="7"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="28" fe="15"/>
+ <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="28" fe="15"/>
+ <usecase name="USECASE_AUDIO_RECORD" type="in" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS" type="in" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER" type="in" id="55" fe="22"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS_REAR_SEAT" type="in" id="54" fe="21"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="out" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="in" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="out" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="in" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="out" id="36" fe="20"/>
+ <usecase name="USECASE_ICC_CALL" type="in" id="33" fe="8"/>
+ <usecase name="USECASE_ICC_CALL" type="out" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="in" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="out" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="31" fe="16"/>
+ <usecase name="USECASE_AUDIO_RECORD2" type="in" id="61" fe="32"/>
+ <usecase name="USECASE_AUDIO_RECORD3" type="in" id="62" fe="33"/>
</pcm_ids>
+ <soft_volume_params>
+ <vol_params name="USECASE_AUDIO_PLAYBACK_MEDIA" period="70" step="10000" curve="0"/>
+ <vol_params name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" period="25" step="1000" curve="0"/>
+ <vol_params name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" period="40" step="1000" curve="0"/>
+ </soft_volume_params>
+
<config_params>
<param key="spkr_1_tz_name" value="wsatz.13"/>
<param key="spkr_2_tz_name" value="wsatz.14"/>
@@ -181,6 +192,7 @@
<device name="SND_DEVICE_OUT_BUS_SYS" interface="TERT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_NAV" interface="TERT_TDM_RX_1"/>
<device name="SND_DEVICE_OUT_BUS_PHN" interface="TERT_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_BUS_ALR" interface="TERT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_PAX" interface="QUAT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_RSE" interface="QUIN_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_ICC" interface="TERT_TDM_RX_0"/>
@@ -206,6 +218,7 @@
<device name="SND_DEVICE_OUT_BUS_SYS" backend="sys-bus-out" interface="TERT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_NAV" backend="nav-bus-out" interface="TERT_TDM_RX_1"/>
<device name="SND_DEVICE_OUT_BUS_PHN" backend="phone-bus-out" interface="TERT_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_BUS_ALR" backend="alerts-bus-out" interface="TERT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_PAX" backend="pax-bus-out" interface="QUAT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_RSE" backend="rse-bus-out" interface="QUIN_TDM_RX_0"/>
</backend_names>
diff --git a/configs/msmnile_au/audio_platform_info_sa8295.xml b/configs/msmnile_au/audio_platform_info_sa8295.xml
new file mode 100644
index 0000000..f74a86b
--- /dev/null
+++ b/configs/msmnile_au/audio_platform_info_sa8295.xml
@@ -0,0 +1,568 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2014, 2016-2021, The Linux Foundation. All rights reserved. -->
+<!-- -->
+<!-- Redistribution and use in source and binary forms, with or without -->
+<!-- modification, are permitted provided that the following conditions are -->
+<!-- met: -->
+<!-- * Redistributions of source code must retain the above copyright -->
+<!-- notice, this list of conditions and the following disclaimer. -->
+<!-- * Redistributions in binary form must reproduce the above -->
+<!-- copyright notice, this list of conditions and the following -->
+<!-- disclaimer in the documentation and/or other materials provided -->
+<!-- with the distribution. -->
+<!-- * Neither the name of The Linux Foundation nor the names of its -->
+<!-- contributors may be used to endorse or promote products derived -->
+<!-- from this software without specific prior written permission. -->
+<!-- -->
+<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
+<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
+<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
+<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
+<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
+<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
+<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
+<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
+<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
+<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
+<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<audio_platform_info>
+ <acdb_ids>
+ <device name="SND_DEVICE_OUT_HANDSET" acdb_id="60"/>
+ <device name="SND_DEVICE_OUT_SPEAKER" acdb_id="60"/>
+ <device name="SND_DEVICE_OUT_HEADPHONES" acdb_id="60"/>
+ <device name="SND_DEVICE_OUT_BUS_MEDIA" acdb_id="60"/>
+ <device name="SND_DEVICE_OUT_BUS_SYS" acdb_id="60"/>
+ <device name="SND_DEVICE_OUT_BUS_NAV" acdb_id="14"/>
+ <device name="SND_DEVICE_OUT_BUS_PHN" acdb_id="94"/>
+ <device name="SND_DEVICE_OUT_BUS_PAX" acdb_id="60"/>
+ <device name="SND_DEVICE_OUT_BUS_RSE" acdb_id="60"/>
+ <device name="SND_DEVICE_OUT_BT_SCO" acdb_id="21"/>
+ <device name="SND_DEVICE_OUT_BT_SCO_WB" acdb_id="39"/>
+ <device name="SND_DEVICE_OUT_BT_A2DP" acdb_id="60"/>
+ <device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="94"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="94"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_HFP" acdb_id="94"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" acdb_id="94"/>
+ <device name="SND_DEVICE_IN_HANDSET_MIC" acdb_id="47"/>
+ <device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="47"/>
+ <device name="SND_DEVICE_IN_BUS" acdb_id="47"/>
+ <device name="SND_DEVICE_IN_BUS_PAX" acdb_id="47"/>
+ <device name="SND_DEVICE_IN_BUS_RSE" acdb_id="47"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC" acdb_id="47"/>
+ <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" acdb_id="95"/>
+ <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="95"/>
+ <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP" acdb_id="95"/>
+ <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP_MMSECNS" acdb_id="131"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" acdb_id="20"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" acdb_id="38"/>
+ <device name="SND_DEVICE_IN_HANDSET_DMIC" acdb_id="80"/>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC" acdb_id="80"/>
+ <device name="SND_DEVICE_IN_QUAD_MIC" acdb_id="47"/>
+ <device name="SND_DEVICE_IN_HANDSET_QMIC" acdb_id="47"/>
+ </acdb_ids>
+
+ <module_ids>
+ <aec>
+ <device name="SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS" module_id="0x10F17" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_BROADSIDE" module_id="0x10F18" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" module_id="0x10F0A" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
+ <device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" module_id="0x10F09" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
+ <device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" module_id="0x10F0A" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
+ <device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" module_id="0x10F09" instance_id="0x0" param_id="0x10EAF" param_value="0x01"/>
+ </aec>
+ <ns>
+ <device name="SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS" module_id="0x10F17" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_BROADSIDE" module_id="0x10F18" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" module_id="0x10F0A" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
+ <device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" module_id="0x10F09" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
+ <device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" module_id="0x10F0A" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
+ <device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" module_id="0x10F09" instance_id="0x0" param_id="0x10EAF" param_value="0x02"/>
+ </ns>
+ <mmsecns>
+ <!-- multi-mic surround ECNS zone control -->
+ <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP_MMSECNS" topology_id="0x1FFF0002" module_id="0x10F3B" instance_id="0x8000" param_id="0x109F0"/>
+ </mmsecns>
+ </module_ids>
+
+ <bit_width_configs>
+ <device name="SND_DEVICE_OUT_SPEAKER" bit_width="24"/>
+ </bit_width_configs>
+
+ <pcm_ids>
+ <usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_DEEP_BUFFER" type="out" id="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="21"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="22"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="23"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="24"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="25"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_MEDIA" type="out" id="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" type="out" id="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE" type="out" id="1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_PHONE" type="out" id="12"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER" type="out" id="55"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" type="out" id="54"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5"/>
+ <usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
+ <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="28" />
+ <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="28" />
+ <usecase name="USECASE_AUDIO_RECORD" type="in" id="0" />
+ <usecase name="USECASE_AUDIO_RECORD_BUS" type="in" id="0" />
+ <usecase name="USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER" type="in" id="55" />
+ <usecase name="USECASE_AUDIO_RECORD_BUS_REAR_SEAT" type="in" id="54" />
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="29" />
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="out" id="29" />
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="29" />
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="29" />
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="in" id="36" />
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="out" id="36" />
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="in" id="36" />
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="out" id="36" />
+ </pcm_ids>
+
+ <config_params>
+ <param key="spkr_1_tz_name" value="wsatz.13"/>
+ <param key="spkr_2_tz_name" value="wsatz.14"/>
+ <!-- In the below value string, the value indicates default mono -->
+ <!-- speaker. It can be set to either left or right -->
+ <param key="mono_speaker" value="right"/>
+ <!-- In the below value string, first parameter indicates size -->
+ <!-- followed by perf lock options -->
+ <param key="perf_lock_opts" value="4, 0x40400000, 0x1, 0x40C00000, 0x1"/>
+ <param key="native_audio_mode" value="src"/>
+ <param key="input_mic_max_count" value="4"/>
+ <param key="true_32_bit" value="true"/>
+ <!-- In the below value string, the value indicates sidetone gain in dB -->
+ <param key="usb_sidetone_gain" value="35"/>
+ <param key="hfp_pcm_dev_id" value="36"/>
+ </config_params>
+
+ <gain_db_to_level_mapping>
+ <gain_level_map db="-59" level="5"/>
+ <gain_level_map db="-17.4" level="4"/>
+ <gain_level_map db="-13.8" level="3"/>
+ <gain_level_map db="-10.2" level="2"/>
+ <gain_level_map db="0" level="1"/>
+ </gain_db_to_level_mapping>
+
+ <backend_names>
+ <device name="SND_DEVICE_OUT_HANDSET" interface="PRI_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_SPEAKER" interface="PRI_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_HEADPHONES" interface="PRI_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_BT_SCO" interface="SEN_TDM_RX_1"/>
+ <device name="SND_DEVICE_OUT_BT_SCO_WB" interface="SEN_TDM_RX_1"/>
+ <device name="SND_DEVICE_OUT_BT_A2DP" interface="PRI_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_HANDSET" interface="PRI_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER" interface="PRI_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_HFP" interface="PRI_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" interface="PRI_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_BUS_MEDIA" interface="PRI_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_BUS_SYS" interface="PRI_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_BUS_NAV" interface="PRI_TDM_RX_1"/>
+ <device name="SND_DEVICE_OUT_BUS_PHN" interface="PRI_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_BUS_PAX" interface="QUAT_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_BUS_RSE" interface="QUIN_TDM_RX_0"/>
+ <device name="SND_DEVICE_IN_HANDSET_MIC" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_SPEAKER_MIC" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_BUS" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_BUS_PAX" interface="QUAT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_BUS_RSE" interface="QUIN_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SEN_TDM_TX_1"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="SEN_TDM_TX_1"/>
+ <device name="SND_DEVICE_IN_HANDSET_DMIC" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_SPEAKER_DMIC" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_QUAD_MIC" interface="TERT_TDM_TX_0"/>
+ <device name="SND_DEVICE_IN_HANDSET_QMIC" interface="TERT_TDM_TX_0"/>
+ <!-- multi-mic surround ECNS mixer path definition -->
+ <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP_MMSECNS" backend="bt-sco-mmsecns" interface="TERT_TDM_TX_0"/>
+ </backend_names>
+ <!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
+ <microphone_characteristics>
+ <microphone valid_mask="31" device_id="builtin_mic_1" type="AUDIO_DEVICE_IN_BUILTIN_MIC" address="bottom" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
+ group="0" index_in_the_group="0" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="93"
+ frequencies="100.00 106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00 20000.00"
+ responses="-0.78 -0.71 -0.64 -0.60 -0.55 -0.50 -0.47 -0.42 -0.39 -0.36 -0.34 -0.33 -0.32 -0.29 -0.28 -0.28 -0.27 -0.25 -0.25 -0.24 -0.23 -0.23 -0.22 -0.22 -0.19 -0.17 -0.15 -0.15 -0.14 -0.14 -0.12 -0.11 -0.10 -0.10 -0.08 -0.07 -0.07 -0.04 -0.03 -0.01 0.00 0.04 0.06 0.07 0.08 0.13 0.09 0.14 0.19 0.23 0.28 0.29 0.31 0.37 0.88 0.86 0.77 0.78 0.84 0.86 1.05 1.12 1.18 1.25 1.43 1.66 1.83 2.02 2.23 2.59 2.84 3.35 4.01 6.82 6.62 6.42 7.30 8.23 7.54 12.68 13.76 18.69 19.68 20.90 23.70 25.10 21.65 16.18 18.84 25.44 23.48 23.22 24.89"
+ sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 0.0 1.0" geometric_location="0.0269 0.0058 0.0079" />
+ <microphone valid_mask="31" device_id="builtin_mic_2" type="AUDIO_DEVICE_IN_BACK_MIC" address="back" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
+ group="0" index_in_the_group="1" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="92"
+ frequencies="106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00 20000.00"
+ responses="-0.75 -0.74 -0.69 -0.65 -0.62 -0.61 -0.56 -0.53 -0.50 -0.47 -0.43 -0.40 -0.37 -0.36 -0.33 -0.30 -0.28 -0.25 -0.24 -0.24 -0.24 -0.25 -0.24 -0.12 -0.10 -0.08 -0.09 -0.07 -0.07 -0.06 -0.06 -0.06 -0.05 -0.04 -0.05 -0.04 -0.01 0.02 0.02 0.00 0.02 0.03 0.07 0.10 0.10 0.13 0.01 0.01 0.10 0.11 0.19 0.24 0.38 0.46 0.26 0.27 0.43 0.76 0.75 1.09 1.09 0.94 1.06 1.21 1.47 1.45 1.36 2.07 2.85 2.90 3.85 4.65 5.84 5.46 6.15 7.50 8.30 10.62 12.70 16.65 20.95 25.41 26.32 20.20 16.60 11.24 7.85 7.62 20.19 7.32 2.87 5.18"
+ sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 1.0 0.0" geometric_location="0.0546 0.1456 0.00415" />
+ <microphone valid_mask="31" device_id="builtin_mic_3" type="AUDIO_DEVICE_IN_BUILTIN_MIC" address="" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
+ group="0" index_in_the_group="2" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="92"
+ frequencies="100.00 106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00"
+ responses="-9.24 -9.31 -9.39 -9.45 -9.46 -9.47 -9.50 -9.52 -9.51 -9.52 -9.51 -9.50 -9.49 -9.47 -9.48 -9.49 -9.48 -9.50 -9.51 -9.53 -9.55 -9.59 -9.63 -9.67 -9.58 -9.57 -9.65 -9.68 -9.71 -9.75 -9.79 -9.84 -9.87 -9.87 -9.90 -9.90 -9.91 -9.97 -10.01 -10.05 -9.85 -9.93 -9.94 -9.98 -10.04 -10.12 -10.28 -10.25 -10.01 -9.86 -9.81 -9.82 -9.61 -9.46 -8.27 -8.42 -8.98 -8.99 -8.82 -9.21 -8.92 -8.97 -9.30 -9.44 -9.52 -9.28 -9.09 -8.81 -7.02 -5.72 -5.30 -7.26 -8.39 -12.28 -8.23 -6.99 -5.52 -4.87 -3.82 -6.09 0.00 -2.15 -0.26 1.48 5.22 10.92 6.41 9.55 12.96 3.35 22.00 19.75"
+ sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 0.0 1.0" geometric_location="0.0274 0.14065 0.0079" />
+ <microphone valid_mask="31" device_id="builtin_mic_4" type="AUDIO_DEVICE_IN_BACK_MIC" address="" location="AUDIO_MICROPHONE_LOCATION_MAINBODY"
+ group="0" index_in_the_group="3" directionality="AUDIO_MICROPHONE_DIRECTIONALITY_OMNI" num_frequency_responses="92"
+ frequencies="106.00 112.00 118.00 125.00 132.00 140.00 150.00 160.00 170.00 180.00 190.00 200.00 212.00 224.00 236.00 250.00 265.00 280.00 300.00 315.00 335.00 355.00 375.00 400.00 425.00 450.00 475.00 500.00 530.00 560.00 600.00 630.00 670.00 710.00 750.00 800.00 850.00 900.00 950.00 1000.00 1060.00 1120.00 1180.00 1250.00 1320.00 1400.00 1500.00 1600.00 1700.00 1800.00 1900.00 2000.00 2120.00 2240.00 2360.00 2500.00 2650.00 2800.00 3000.00 3150.00 3350.00 3550.00 3750.00 4000.00 4250.00 4500.00 4750.00 5000.00 5300.00 5600.00 6000.00 6300.00 6700.00 7100.00 7500.00 8000.00 8500.00 9000.00 9500.00 10000.00 10600.00 11200.00 11800.00 12500.00 13200.00 14000.00 15000.00 16000.00 17000.00 18000.00 19000.00 20000.00"
+ responses="-0.75 -0.74 -0.69 -0.65 -0.62 -0.61 -0.56 -0.53 -0.50 -0.47 -0.43 -0.40 -0.37 -0.36 -0.33 -0.30 -0.28 -0.25 -0.24 -0.24 -0.24 -0.25 -0.24 -0.12 -0.10 -0.08 -0.09 -0.07 -0.07 -0.06 -0.06 -0.06 -0.05 -0.04 -0.05 -0.04 -0.01 0.02 0.02 0.00 0.02 0.03 0.07 0.10 0.10 0.13 0.01 0.01 0.10 0.11 0.19 0.24 0.38 0.46 0.26 0.27 0.43 0.76 0.75 1.09 1.09 0.94 1.06 1.21 1.47 1.45 1.36 2.07 2.85 2.90 3.85 4.65 5.84 5.46 6.15 7.50 8.30 10.62 12.70 16.65 20.95 25.41 26.32 20.20 16.60 11.24 7.85 7.62 20.19 7.32 2.87 5.18"
+ sensitivity="-37.0" max_spl="132.5" min_spl="28.5" orientation="0.0 1.0 0.0" geometric_location="0.0546 0.1456 0.00415" />
+ </microphone_characteristics>
+ <snd_devices>
+ <input_snd_device>
+ <input_snd_device_mic_mapping>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_MIC_AEC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_MIC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_MIC_AEC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_AEC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_MIC_AEC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_MIC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_SPEAKER_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_CAMCORDER_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_DMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_SPEAKER_DMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_SPEAKER_TMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_SPEAKER_QMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_4"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_MIC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_AANC_HANDSET_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_QUAD_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_4"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_DMIC_STEREO">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_STEREO">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_SPEAKER_DMIC_BROADSIDE">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_BROADSIDE">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC_BROADSIDE">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_NS_BROADSIDE">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_BROADSIDE">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_FLUENCE_DMIC_AANC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_4"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_QMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_4"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_QMIC_AEC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_4"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_QMIC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_4"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_QMIC_AEC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_4"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_THREE_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_TMIC_FLUENCE_PRO">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_TMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_TMIC_AEC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_TMIC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_SPEAKER_TMIC_AEC_NS">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_VOICE_REC_TMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_THREE_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED"/>
+ <mic_info mic_device_id="builtin_mic_4"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_UNUSED AUDIO_MICROPHONE_CHANNEL_MAPPING_DIRECT"/>
+ </snd_dev>
+ <snd_dev in_snd_device="SND_DEVICE_IN_HANDSET_GENERIC_QMIC">
+ <mic_info mic_device_id="builtin_mic_1"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_2"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_3"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ <mic_info mic_device_id="builtin_mic_4"
+ channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
+ </snd_dev>
+ </input_snd_device_mic_mapping>
+ </input_snd_device>
+ </snd_devices>
+</audio_platform_info>
+
diff --git a/configs/msmnile_au/audio_policy_configuration.xml b/configs/msmnile_au/audio_policy_configuration.xml
old mode 100644
new mode 100755
index 4193abd..f00e643
--- a/configs/msmnile_au/audio_policy_configuration.xml
+++ b/configs/msmnile_au/audio_policy_configuration.xml
@@ -57,11 +57,16 @@
<item>Sys Notification Bus</item>
<item>Nav Guidance Bus</item>
<item>Phone Bus</item>
+ <item>Alerts Bus</item>
<item>Front Passenger Bus</item>
<item>Rear Seat Bus</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
+ <item>Primary In Bus</item>
+ <item>Front Passenger In Bus</item>
+ <item>Rear Seat In Bus</item>
<item>FM Tuner</item>
+ <item>Echo Reference</item>
</attachedDevices>
<defaultOutputDevice>Media Bus</defaultOutputDevice>
<mixPorts>
@@ -74,6 +79,26 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
+ <mixPort name="carplay_8k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_16k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="16000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_24k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="24000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_32k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="32000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_48k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="nav_guidance" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -82,6 +107,10 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
+ <mixPort name="alerts" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="front_passenger" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -106,7 +135,7 @@
</mixPort>
<mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ samplingRates="8000,16000,24000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
@@ -144,13 +173,13 @@
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_DTS"
samplingRates="32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1"/>
@@ -168,19 +197,13 @@
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
- channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
- <profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
- samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
- channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
</mixPort>
<mixPort name="dsd_compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
@@ -204,7 +227,7 @@
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
- <mixPort name="primary input" role="sink" maxOpenCount="2" maxActiveCount="2">
+ <mixPort name="primary input" role="sink" maxOpenCount="3" maxActiveCount="3">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
@@ -222,6 +245,11 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
+ <mixPort name="fast input" role="sink" flags="AUDIO_INPUT_FLAG_FAST">
+ <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
+ </mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
@@ -231,6 +259,20 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
+ <mixPort name="echo_ref" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </mixPort>
+ <mixPort name="mixport_tuner0" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000"
+ channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
@@ -271,6 +313,15 @@
minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
</gains>
</devicePort>
+ <devicePort tagName="Alerts Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
+ address="BUS05_ALERTS">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
<devicePort tagName="Front Passenger Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
address="BUS08_FRONT_PASSENGER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -297,6 +348,8 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
+ <devicePort tagName="Speaker Safe" type="AUDIO_DEVICE_OUT_SPEAKER_SAFE" role="sink">
+ </devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -321,10 +374,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
- <devicePort tagName="BT SCO All" type="AUDIO_DEVICE_OUT_ALL_SCO" role="sink">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
- </devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
@@ -386,18 +435,48 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
-
+ <devicePort tagName="Primary In Bus" type="AUDIO_DEVICE_IN_BUS" role="source" address="BUS04_INPUT">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
+ <devicePort tagName="Front Passenger In Bus" type="AUDIO_DEVICE_IN_BUS" role="source" address="BUS09_INPUT_FRONT_PASSENGER">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
+ <devicePort tagName="Rear Seat In Bus" type="AUDIO_DEVICE_IN_BUS" role="source" address="BUS17_INPUT_REAR_SEAT">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
+ <devicePort tagName="Echo Reference" type="AUDIO_DEVICE_IN_ECHO_REFERENCE" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="16000,48000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Media Bus"
sources="media,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Sys Notification Bus"
- sources="sys_notification,mmap_no_irq_out"/>
+ sources="sys_notification,mmap_no_irq_out,carplay_8k_sys,carplay_16k_sys,carplay_24k_sys,carplay_32k_sys,carplay_48k_sys"/>
<route type="mix" sink="Nav Guidance Bus"
sources="nav_guidance,mmap_no_irq_out"/>
<route type="mix" sink="Phone Bus"
sources="phone,mmap_no_irq_out"/>
+ <route type="mix" sink="Alerts Bus"
+ sources="alerts"/>
<route type="mix" sink="Front Passenger Bus"
sources="front_passenger,mmap_no_irq_out"/>
<route type="mix" sink="Rear Seat Bus"
@@ -406,6 +485,8 @@
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Speaker"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
+ <route type="mix" sink="Speaker Safe"
+ sources="primary output,raw,deep_buffer,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Wired Headset"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Wired Headphones"
@@ -418,7 +499,7 @@
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="FM"
sources="primary output"/>
- <route type="mix" sink="BT SCO All"
+ <route type="mix" sink="BT SCO"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
@@ -426,22 +507,32 @@
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx,incall_music_uplink"/>
+ <route type="mix" sink="primary input"
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,Primary In Bus,Front Passenger In Bus,Rear Seat In Bus"/>
+ <route type="mix" sink="echo_ref"
+ sources="Echo Reference"/>
+ <route type="mix" sink="fast input"
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
+ <route type="mix" sink="mmap_no_irq_in"
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,Telephony Rx"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="record_24"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
- <route type="mix" sink="mmap_no_irq_in"
- sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
+ <route type="mix" sink="mixport_tuner0"
+ sources="FM Tuner"/>
</routes>
</module>
diff --git a/configs/msmnile_au/card-defs-dummy.xml b/configs/msmnile_au/card-defs-dummy.xml
new file mode 100644
index 0000000..a7eccd0
--- /dev/null
+++ b/configs/msmnile_au/card-defs-dummy.xml
@@ -0,0 +1,4 @@
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.-->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
+<def>
+</def>
diff --git a/configs/msmnile_au/mixer_paths_adp.xml b/configs/msmnile_au/mixer_paths_adp.xml
index 3c21e2e..3e3c5ff 100644
--- a/configs/msmnile_au/mixer_paths_adp.xml
+++ b/configs/msmnile_au/mixer_paths_adp.xml
@@ -26,147 +26,40 @@
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="Voice Rx Device Mute" id="0" value="0" />
- <ctl name="Voice Rx Device Mute" id="1" value="-1" />
- <ctl name="Voice Rx Device Mute" id="2" value="20" />
- <ctl name="Voice Tx Mute" id="0" value="0" />
- <ctl name="Voice Tx Mute" id="1" value="-1" />
- <ctl name="Voice Tx Mute" id="2" value="500" />
- <ctl name="Voice Rx Gain" id="0" value="0" />
- <ctl name="Voice Rx Gain" id="1" value="-1" />
- <ctl name="Voice Rx Gain" id="2" value="20" />
- <ctl name="Voice Sidetone Enable" value="0" />
- <ctl name="Voip Tx Mute" id="0" value="0" />
- <ctl name="Voip Tx Mute" id="1" value="500" />
- <ctl name="Voip Rx Gain" id="0" value="0" />
- <ctl name="Voip Rx Gain" id="1" value="20" />
- <ctl name="Voip Mode Config" value="12" />
- <ctl name="Voip Rate Config" value="0" />
- <ctl name="Voip Evrc Min Max Rate Config" id="0" value="1" />
- <ctl name="Voip Evrc Min Max Rate Config" id="1" value="4" />
- <ctl name="Voip Dtx Mode" value="0" />
- <ctl name="TTY Mode" value="OFF" />
- <ctl name="SLIMBUS_0_RX Port Mixer SLIM_0_TX" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="SLIMBUS_6_RX Port Mixer SLIM_0_TX" value="0" />
- <ctl name="SLIMBUS_4_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_4_RX Audio Mixer MultiMedia2" value="0" />
- <ctl name="MultiMedia5 Mixer SLIM_0_TX" value="0" />
+ <!-- Example commands to Enable the paired rx usecase-->
+ <!-- SlotMapping with the last possible slot of respective TDM interface -->
+ <!-- <ctl name="TERT_TDM_RX_3 SlotMapping" id = "0" value="28"/>
+ <ctl name="TERT_TDM_RX_3 SlotMapping" id = "1" value="65535" />
+ <ctl name="TERT_TDM_RX_3 Channels" value="One" />
+ <ctl name="TERT_TDM Paired_Rx" value="TERT_TDM_RX_3" />
+
+ <ctl name="QUAT_TDM_RX_3 SlotMapping" id = "0" value="124"/>
+ <ctl name="QUAT_TDM_RX_3 SlotMapping" id = "1" value="65535" />
+ <ctl name="QUAT_TDM_RX_3 Channels" value="One" />
+ <ctl name="QUAT_TDM Paired_Rx" value="QUAT_TDM_RX_3" />
+
+ <ctl name="QUIN_TDM_RX_3 SlotMapping" id = "0" value="60"/>
+ <ctl name="QUIN_TDM_RX_3 SlotMapping" id = "1" value="65535" />
+ <ctl name="QUIN_TDM_RX_3 Channels" value="One" />
+ <ctl name="QUIN_TDM Paired_Rx" value="QUIN_TDM_RX_3" /> -->
+
<ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
- <ctl name="MultiMedia5 Mixer SLIM_8_TX" value="0" />
- <ctl name="MultiMedia5 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia1 Mixer SLIM_4_TX" value="0" />
- <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
- <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
- <ctl name="MultiMedia10 Mixer SLIM_1_TX" value="0" />
- <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia1" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia3" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia6" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia2" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia2" value="0" />
- <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia3" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia3" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia4" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia5" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia5" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia5" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia7" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia7" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia7" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia7" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia8" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia8" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia8" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia10" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia10" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia10" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia11" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia11" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia11" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia11" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia12" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia12" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia12" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia12" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia13" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia13" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia13" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia13" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia14" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia14" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia14" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia14" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia15" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia15" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia15" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia15" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia3" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia5 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia6 Mixer SLIM_0_TX" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="ZERO" />
- <ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="ZERO" />
- <ctl name="AANC_SLIM_0_RX MUX" value="ZERO" />
- <!-- HFP start -->
- <ctl name="HFP_PRI_AUX_UL_HL Switch" value="0" />
- <ctl name="SLIMBUS_0_RX Port Mixer SLIM_7_TX" value="0" />
- <!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
<!-- usb headset -->
@@ -184,97 +77,12 @@
<ctl name="MultiMedia1 Mixer AFE_PCM_TX" value="0" />
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="0" />
<!-- usb headset end -->
- <!-- fm -->
- <ctl name="SLIMBUS_8 LOOPBACK Volume" value="0" />
- <ctl name="SLIMBUS_0_RX Port Mixer SLIM_8_TX" value="0" />
- <ctl name="SLIMBUS_DL_HL Switch" value="0" />
- <ctl name="SLIMBUS_6_RX Port Mixer SLIM_8_TX" value="0" />
- <ctl name="SLIMBUS6_DL_HL Switch" value="0" />
- <ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia2 Mixer TERT_TDM_TX_0" value="0" />
- <!-- fm end -->
-
- <!-- Multimode Voice1 -->
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="SLIM_6_RX_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="0" />
- <!-- Multimode Voice1 BTSCO -->
- <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="0" />
- <!-- Multimode Voice1 USB headset -->
- <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="0" />
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="0" />
- <!-- Multimode Voice1 Display-Port -->
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="0" />
- <!-- Miltimode Voice1 end-->
-
- <!-- Multimode Voice2 -->
- <ctl name="SLIM_0_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="SLIM_6_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="VoiceMMode2_Tx Mixer SLIM_0_TX_MMode2" value="0" />
- <!-- Multimode Voice2 BTSCO -->
- <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="0" />
- <!-- Multimode Voice2 USB headset -->
- <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="0" />
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="0" />
- <!-- Multimode Voice2 Display-Port -->
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="0" />
- <!-- Multimode Voice2 end-->
-
- <!-- Voice external ec. reference -->
- <ctl name="VOC_EXT_EC MUX" value="NONE" />
- <!-- Voice external ec. reference end -->
<!-- RT Proxy Cal -->
<ctl name="RT_PROXY_1_RX SetCalMode" value="CAL_MODE_NONE" />
<ctl name="RT_PROXY_1_TX SetCalMode" value="CAL_MODE_NONE" />
<!-- RT Proxy Cal end -->
- <!-- Incall Recording -->
- <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="0" />
- <ctl name="MultiMedia1 Mixer VOC_REC_DL" value="0" />
- <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="0" />
- <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="0" />
- <!-- Incall Recording End -->
-
- <!-- Incall Music -->
- <ctl name="Incall_Music Audio Mixer MultiMedia2" value="0" />
- <!-- Incall Music End -->
-
- <!-- compress-voip-call start -->
- <ctl name="SLIM_0_RX_Voice Mixer Voip" value="0" />
- <ctl name="SLIM_6_RX_Voice Mixer Voip" value="0" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="0" />
- <ctl name="SLIM_7_RX_Voice Mixer Voip" value="0" />
- <ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="0" />
- <ctl name="AFE_PCM_RX_Voice Mixer Voip" value="0" />
- <ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value="0" />
- <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="0" />
- <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="0" />
- <!-- compress-voip-call end-->
-
- <!-- Audio BTSCO -->
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia6" value="0" />
- <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
- <!-- audio record compress-->
- <ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
- <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
- <!-- audio record compress end-->
-
- <!-- ADSP testfwk -->
- <ctl name="SLIMBUS_DL_HL Switch" value="0" />
- <ctl name="SLIMBUS6_DL_HL Switch" value="0" />
- <!-- ADSP testfwk end-->
-
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia3" value="0" />
<!-- hfp-sco -->
@@ -348,84 +156,10 @@
<path name="deep-buffer-playback" />
</path>
- <path name="deep-buffer-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-display-port">
- <path name="deep-buffer-playback display-port" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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>
- <path name="deep-buffer-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-usb-headphones">
- <path name="deep-buffer-playback usb-headphones" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback speaker-safe-and-usb-headphones">
- <path name="deep-buffer-playback usb-headphones" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback headset">
- <path name="deep-buffer-playback headphones" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-headphones">
- <path name="deep-buffer-playback headphones" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback speaker-safe-and-headphones">
- <path name="deep-buffer-playback headphones" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-bt-sco">
- <path name="deep-buffer-playback bt-sco" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback speaker-safe-and-bt-sco">
- <path name="deep-buffer-playback bt-sco" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-bt-sco-wb">
- <path name="deep-buffer-playback bt-sco-wb" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback speaker-safe-and-bt-sco-wb">
- <path name="deep-buffer-playback bt-sco-wb" />
- <path name="deep-buffer-playback" />
- </path>
-
<path name="low-latency-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia5" value="1" />
@@ -439,88 +173,14 @@
<path name="low-latency-playback" />
</path>
- <path name="low-latency-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
- <path name="low-latency-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback speaker-and-usb-headphones">
- <path name="low-latency-playback usb-headphones" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="low-latency-playback speaker-safe-and-usb-headphones">
- <path name="low-latency-playback usb-headphones" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="low-latency-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback headset">
- <path name="low-latency-playback headphones" />
- </path>
-
- <path name="low-latency-playback speaker-and-headphones">
- <path name="low-latency-playback headphones" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="low-latency-playback speaker-safe-and-headphones">
- <path name="low-latency-playback headphones" />
- <path name="low-latency-playback" />
- </path>
-
<path name="low-latency-playback resume">
<ctl name="MultiMedia5_RX QOS Vote" value="Enable" />
</path>
- <path name="low-latency-playback speaker-and-bt-sco">
- <path name="low-latency-playback bt-sco" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="low-latency-playback speaker-safe-and-bt-sco">
- <path name="low-latency-playback bt-sco" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="low-latency-playback speaker-and-bt-sco-wb">
- <path name="low-latency-playback bt-sco-wb" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="low-latency-playback speaker-safe-and-bt-sco-wb">
- <path name="low-latency-playback bt-sco-wb" />
- <path name="low-latency-playback" />
- </path>
-
<path name="audio-ull-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia8" value="1" />
@@ -534,78 +194,10 @@
<path name="audio-ull-playback" />
</path>
- <path name="audio-ull-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback headset">
- <path name="audio-ull-playback headphones" />
- </path>
-
- <path name="audio-ull-playback speaker-and-headphones">
- <path name="audio-ull-playback" />
- <path name="audio-ull-playback headphones" />
- </path>
-
- <path name="audio-ull-playback speaker-safe-and-headphones">
- <path name="audio-ull-playback" />
- <path name="audio-ull-playback headphones" />
- </path>
-
- <path name="audio-ull-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
- <path name="audio-ull-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback speaker-and-bt-sco">
- <path name="audio-ull-playback bt-sco" />
- <path name="audio-ull-playback" />
- </path>
-
- <path name="audio-ull-playback speaker-safe-and-bt-sco">
- <path name="audio-ull-playback bt-sco" />
- <path name="audio-ull-playback" />
- </path>
-
- <path name="audio-ull-playback speaker-and-bt-sco-wb">
- <path name="audio-ull-playback bt-sco-wb" />
- <path name="audio-ull-playback" />
- </path>
-
- <path name="audio-ull-playback speaker-safe-and-bt-sco-wb">
- <path name="audio-ull-playback bt-sco-wb" />
- <path name="audio-ull-playback" />
- </path>
-
- <path name="multi-channel-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
- </path>
-
<path name="multi-channel-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
</path>
@@ -623,685 +215,82 @@
<path name="compress-offload-playback" />
</path>
- <path name="compress-offload-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="silence-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="1" />
- </path>
-
- <path name="compress-offload-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
- <path name="compress-offload-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback speaker-and-usb-headphones">
- <path name="compress-offload-playback usb-headphones" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-safe-and-usb-headphones">
- <path name="compress-offload-playback usb-headphones" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback headset">
- <path name="compress-offload-playback headphones" />
- </path>
-
- <path name="compress-offload-playback headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback speaker-and-headphones">
- <path name="compress-offload-playback headphones" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-safe-and-headphones">
- <path name="compress-offload-playback headphones" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-and-bt-sco">
- <path name="compress-offload-playback bt-sco" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-safe-and-bt-sco">
- <path name="compress-offload-playback bt-sco" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-and-bt-sco-wb">
- <path name="compress-offload-playback bt-sco-wb" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-safe-and-bt-sco-wb">
- <path name="compress-offload-playback bt-sco-wb" />
- <path name="compress-offload-playback" />
- </path>
-
<path name="compress-offload-playback2">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia7" value="1" />
</path>
- <path name="compress-offload-playback2 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
- <path name="compress-offload-playback2 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-usb-headphones">
- <path name="compress-offload-playback2 usb-headphones" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 speaker-safe-and-usb-headphones">
- <path name="compress-offload-playback2 usb-headphones" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 headset">
- <path name="compress-offload-playback2 headphones" />
- </path>
-
- <path name="compress-offload-playback2 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-headphones">
- <path name="compress-offload-playback2 headphones" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 speaker-safe-and-headphones">
- <path name="compress-offload-playback2 headphones" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-bt-sco">
- <path name="compress-offload-playback2 bt-sco" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 speaker-safe-and-bt-sco">
- <path name="compress-offload-playback2 bt-sco" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback2 bt-sco-wb" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 speaker-safe-and-bt-sco-wb">
- <path name="compress-offload-playback2 bt-sco-wb" />
- <path name="compress-offload-playback2" />
- </path>
-
<path name="compress-offload-playback3">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
- <path name="compress-offload-playback3 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
- <path name="compress-offload-playback3 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-usb-headphones">
- <path name="compress-offload-playback3 usb-headphones" />
- <path name="compress-offload-playback3" />
- </path>
-
- <path name="compress-offload-playback3 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 headset">
- <path name="compress-offload-playback3 headphones" />
- </path>
-
- <path name="compress-offload-playback3 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-headphones">
- <path name="compress-offload-playback3 headphones" />
- <path name="compress-offload-playback3" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-bt-sco">
- <path name="compress-offload-playback3 bt-sco" />
- <path name="compress-offload-playback3" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback3 bt-sco-wb" />
- <path name="compress-offload-playback3" />
- </path>
-
<path name="compress-offload-playback4">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
- <path name="compress-offload-playback4 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
-
<path name="compress-offload-playback4 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
</path>
- <path name="compress-offload-playback4 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-usb-headphones">
- <path name="compress-offload-playback4 usb-headphones" />
- <path name="compress-offload-playback4" />
- </path>
-
- <path name="compress-offload-playback4 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 headset">
- <path name="compress-offload-playback4 headphones" />
- </path>
-
- <path name="compress-offload-playback4 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-headphones">
- <path name="compress-offload-playback4 headphones" />
- <path name="compress-offload-playback4" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-bt-sco">
- <path name="compress-offload-playback4 bt-sco" />
- <path name="compress-offload-playback4" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback4 bt-sco-wb" />
- <path name="compress-offload-playback4" />
- </path>
-
<path name="compress-offload-playback5">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
- <path name="compress-offload-playback5 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
- <path name="compress-offload-playback5 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-usb-headphones">
- <path name="compress-offload-playback5 usb-headphones" />
- <path name="compress-offload-playback5" />
- </path>
-
- <path name="compress-offload-playback5 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 headset">
- <path name="compress-offload-playback5 headphones" />
- </path>
-
- <path name="compress-offload-playback5 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-headphones">
- <path name="compress-offload-playback5 headphones" />
- <path name="compress-offload-playback5" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-bt-sco">
- <path name="compress-offload-playback5 bt-sco" />
- <path name="compress-offload-playback5" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback5 bt-sco-wb" />
- <path name="compress-offload-playback5" />
- </path>
-
<path name="compress-offload-playback6">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
- <path name="compress-offload-playback6 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
- <path name="compress-offload-playback6 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-usb-headphones">
- <path name="compress-offload-playback6 usb-headphones" />
- <path name="compress-offload-playback6" />
- </path>
-
- <path name="compress-offload-playback6 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 headset">
- <path name="compress-offload-playback6 headphones" />
- </path>
-
- <path name="compress-offload-playback6 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-headphones">
- <path name="compress-offload-playback6 headphones" />
- <path name="compress-offload-playback6" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-bt-sco">
- <path name="compress-offload-playback6 bt-sco" />
- <path name="compress-offload-playback6" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback6 bt-sco-wb" />
- <path name="compress-offload-playback6" />
- </path>
-
<path name="compress-offload-playback7">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
- <path name="compress-offload-playback7 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
- <path name="compress-offload-playback7 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-usb-headphones">
- <path name="compress-offload-playback7 usb-headphones" />
- <path name="compress-offload-playback7" />
- </path>
-
- <path name="compress-offload-playback7 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 headset">
- <path name="compress-offload-playback7 headphones" />
- </path>
-
- <path name="compress-offload-playback7 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-headphones">
- <path name="compress-offload-playback7 headphones" />
- <path name="compress-offload-playback7" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-bt-sco">
- <path name="compress-offload-playback7 bt-sco" />
- <path name="compress-offload-playback7" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback7 bt-sco-wb" />
- <path name="compress-offload-playback7" />
- </path>
-
<path name="compress-offload-playback8">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
- <path name="compress-offload-playback8 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
- <path name="compress-offload-playback8 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-usb-headphones">
- <path name="compress-offload-playback8 usb-headphones" />
- <path name="compress-offload-playback8" />
- </path>
-
- <path name="compress-offload-playback8 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 headset">
- <path name="compress-offload-playback8 headphones" />
- </path>
-
- <path name="compress-offload-playback8 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-headphones">
- <path name="compress-offload-playback8 headphones" />
- <path name="compress-offload-playback8" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-bt-sco">
- <path name="compress-offload-playback8 bt-sco" />
- <path name="compress-offload-playback8" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback8 bt-sco-wb" />
- <path name="compress-offload-playback8" />
- </path>
-
<path name="compress-offload-playback9">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
- <path name="compress-offload-playback9 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
- <path name="compress-offload-playback9 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-usb-headphones">
- <path name="compress-offload-playback9 usb-headphones" />
- <path name="compress-offload-playback9" />
- </path>
-
- <path name="compress-offload-playback9 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 headset">
- <path name="compress-offload-playback9 headphones" />
- </path>
-
- <path name="compress-offload-playback9 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-headphones">
- <path name="compress-offload-playback9 headphones" />
- <path name="compress-offload-playback9" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-bt-sco">
- <path name="compress-offload-playback9 bt-sco" />
- <path name="compress-offload-playback9" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback9 bt-sco-wb" />
- <path name="compress-offload-playback9" />
- </path>
-
<!-- The following use cases are used for car streams -->
<path name="media-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
@@ -1323,6 +312,11 @@
<ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia10" value="1" />
</path>
+ <path name="alerts-playback alerts-bus-out">
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia31" value="1" />
+ </path>
+
<path name="front-passenger-playback pax-bus-out">
<ctl name="QUAT_TDM_RX_0 Channels" value="Eight" />
<ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia23" value="1" />
@@ -1336,6 +330,19 @@
<path name="audio-record">
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
+ </path>
+
+ <path name="audio-record2">
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="MultiMedia33 Mixer TERT_TDM_TX_0" value="1" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
+ </path>
+
+ <path name="audio-record3">
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="MultiMedia34 Mixer TERT_TDM_TX_0" value="1" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
</path>
<path name="front-passenger-record">
@@ -1353,24 +360,15 @@
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
</path>
- <path name="audio-record usb-headset-mic">
- <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="1" />
- </path>
-
- <path name="audio-record bt-sco">
- <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="audio-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <path name="audio-record bt-sco" />
- </path>
-
<path name="audio-record capture-fm">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
</path>
+ <path name="echo-reference-external">
+ <ctl name="MultiMedia2 Mixer SEC_TDM_TX_0" value="1" />
+ </path>
+
<path name="audio-record-compress">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
@@ -1381,19 +379,6 @@
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
</path>
- <path name="audio-record-compress bt-sco">
- <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="audio-record-compress bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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>
-
<path name="audio-record-compress2">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia17 Mixer TERT_TDM_TX_0" value="1" />
@@ -1404,19 +389,6 @@
<ctl name="MultiMedia17 Mixer TERT_TDM_TX_0" value="1" />
</path>
- <path name="audio-record-compress2 usb-headset-mic">
- <ctl name="MultiMedia17 Mixer USB_AUDIO_TX" value="1" />
- </path>
-
- <path name="audio-record-compress2 bt-sco">
- <ctl name="MultiMedia17 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="audio-record-compress2 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <path name="audio-record-compress2 bt-sco" />
- </path>
-
<path name="low-latency-record">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
@@ -1427,19 +399,6 @@
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
</path>
- <path name="low-latency-record bt-sco">
- <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="low-latency-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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>
-
<path name="low-latency-record capture-fm">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
@@ -1450,168 +409,6 @@
<ctl name="MultiMedia2 Mixer TERT_TDM_TX_0" value="1" />
</path>
- <path name="play-fm">
- <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
- <ctl name="SLIMBUS_0_RX Port Mixer SLIM_8_TX" value="1" />
- <ctl name="SLIMBUS_DL_HL Switch" value="1" />
- </path>
-
- <path name="play-fm headphones">
- <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
- <ctl name="SLIMBUS_6_RX Port Mixer SLIM_8_TX" value="1" />
- <ctl name="SLIMBUS6_DL_HL Switch" value="1" />
- </path>
-
- <path name="play-fm headset">
- <path name="play-fm headphones" />
- </path>
-
- <path name="incall-rec-uplink">
- <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
- </path>
-
- <path name="incall-rec-uplink bt-sco">
- <path name="incall-rec-uplink" />
- </path>
-
- <path name="incall-rec-uplink bt-sco-wb">
- <path name="incall-rec-uplink" />
- </path>
-
- <path name="incall-rec-uplink usb-headset-mic">
- <path name="incall-rec-uplink" />
- </path>
-
- <path name="incall-rec-uplink headset-mic">
- <path name="incall-rec-uplink" />
- </path>
-
- <path name="incall-rec-uplink afe-proxy">
- <path name="incall-rec-uplink" />
- </path>
-
- <path name="incall-rec-uplink-compress">
- <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="1" />
- </path>
-
- <path name="incall-rec-uplink-compress headset-mic">
- <path name="incall-rec-uplink-compress" />
- </path>
-
- <path name="incall-rec-uplink-compress bt-sco">
- <path name="incall-rec-uplink-compress" />
- </path>
-
- <path name="incall-rec-uplink-compress bt-sco-wb">
- <path name="incall-rec-uplink-compress" />
- </path>
-
- <path name="incall-rec-uplink-compress usb-headset-mic">
- <path name="incall-rec-uplink-compress" />
- </path>
-
- <path name="incall-rec-uplink-compress afe-proxy">
- <path name="incall-rec-uplink-compress" />
- </path>
-
- <path name="incall-rec-downlink">
- <ctl name="MultiMedia1 Mixer VOC_REC_DL" value="1" />
- </path>
-
- <path name="incall-rec-downlink bt-sco">
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-downlink bt-sco-wb">
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-downlink usb-headset-mic">
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-downlink headset-mic">
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-downlink afe-proxy">
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-downlink-compress">
- <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="1" />
- </path>
-
- <path name="incall-rec-downlink-compress headset-mic">
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-downlink-compress bt-sco">
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-downlink-compress bt-sco-wb">
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-downlink-compress usb-headset-mic">
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-downlink-compress afe-proxy">
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink">
- <path name="incall-rec-uplink" />
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink bt-sco">
- <path name="incall-rec-uplink-and-downlink" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink bt-sco-wb">
- <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>
-
- <path name="incall-rec-uplink-and-downlink headset-mic">
- <path name="incall-rec-uplink-and-downlink" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink afe-proxy">
- <path name="incall-rec-uplink-and-downlink" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink-compress">
- <path name="incall-rec-uplink-compress" />
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink-compress bt-sco">
- <path name="incall-rec-uplink-and-downlink-compress" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink-compress headset-mic">
- <path name="incall-rec-uplink-and-downlink-compress" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink-compress bt-sco-wb">
- <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>
-
- <path name="incall-rec-uplink-and-downlink-compress afe-proxy">
- <path name="incall-rec-uplink-and-downlink-compress" />
- </path>
-
<path name="icc-call">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia9" value="1" />
@@ -1643,12 +440,14 @@
</path>
<path name="hfp-sco bt-sco">
- <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="One" />
<path name="hfp-sco" />
</path>
<path name="hfp-sco bt-sco-mmsecns">
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
<path name="hfp-sco" />
</path>
@@ -1658,12 +457,14 @@
</path>
<path name="hfp-sco-wb bt-sco-wb">
- <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="One" />
<path name="hfp-sco-wb" />
</path>
<path name="hfp-sco-wb bt-sco-mmsecns">
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
<path name="hfp-sco-wb" />
</path>
@@ -1682,223 +483,17 @@
<path name="hfp-sco-downlink" />
</path>
- <path name="compress-voip-call">
- <ctl name="SLIM_0_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call bt-a2dp">
- <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call headphones">
- <ctl name="SLIM_6_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call headset">
- <ctl name="SLIM_6_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_1_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call bt-sco">
- <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
- <path name="compress-voip-call usb-headphones">
- <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call usb-headset">
- <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
- </path>
-
- <path name="voicemmode1-call">
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call headphones">
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call headset">
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call bt-sco">
- <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
- <path name="voicemmode1-call usb-headphones">
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call usb-headset">
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call display-port-and-usb-headset-mic">
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call display-port">
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
- </path>
-
- <path name="voicemmode2-call">
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call headphones">
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call headset">
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call bt-sco">
- <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
- <path name="voicemmode2-call usb-headphones">
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call usb-headset">
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call display-port-and-usb-headset-mic">
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call display-port">
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
- </path>
-
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
- <path name="audio-playback-voip headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip headset">
- <path name="audio-playback-voip headphones" />
- </path>
-
- <path name="audio-playback-voip bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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>
-
<path name="audio-playback-voip afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
- <path name="audio-playback-voip usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip speaker-and-display-port">
- <path name="audio-playback-voip display-port" />
- <path name="audio-playback-voip" />
- </path>
-
<!-- VoIP Tx settings -->
- <path name="audio-record-voip">
- <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
- </path>
-
- <path name="audio-record-voip headset-mic">
- <ctl name="MultiMedia10 Mixer SLIM_1_TX" value="1" />
- </path>
-
- <path name="audio-record-voip usb-headset-mic">
- <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="1" />
- </path>
-
- <path name="audio-record-voip bt-sco">
- <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="audio-record-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <path name="audio-record-voip bt-sco" />
- </path>
- <path name="spkr-rx-calib">
- <ctl name="SLIMBUS_DL_HL Switch" value="1" />
- </path>
<path name="spkr-vi-record">
</path>
@@ -1986,10 +581,6 @@
<path name="sidetone-iir" />
</path>
- <path name="afe-sidetone">
- <ctl name="Voice Sidetone Enable" value="1" />
- </path>
-
<path name="speaker-mic">
<path name="dmic3" />
</path>
@@ -2473,41 +1064,6 @@
<path name="tty-headphones">
</path>
- <path name="voice-tty-full-headphones">
- <ctl name="TTY Mode" value="FULL" />
- <path name="tty-headphones" />
- </path>
-
- <path name="voice-tty-full-headset">
- <ctl name="TTY Mode" value="FULL" />
- <path name="tty-headphones" />
- </path>
-
- <path name="voice-tty-vco-headphones">
- <ctl name="TTY Mode" value="VCO" />
- <path name="tty-headphones" />
- </path>
-
- <path name="voice-tty-vco-headset">
- <ctl name="TTY Mode" value="VCO" />
- <path name="tty-headphones" />
- </path>
-
- <path name="voice-tty-hco-handset">
- <ctl name="TTY Mode" value="HCO" />
- <path name="handset" />
- </path>
-
- <path name="voice-tty-hco-handset-qrd">
- <ctl name="TTY Mode" value="HCO" />
- <path name="handset-qrd" />
- </path>
-
- <path name="voice-tty-hco-handset-hdk">
- <ctl name="TTY Mode" value="HCO" />
- <path name="handset-qrd" />
- </path>
-
<path name="voice-tty-full-headset-mic">
<path name="amic2" />
</path>
@@ -2546,21 +1102,11 @@
<!-- USB TTY start -->
<!-- full: both end tty -->
- <path name="voice-tty-full-usb">
- <ctl name="TTY Mode" value="FULL" />
- <path name="usb-headphones" />
- </path>
<path name="voice-tty-full-usb-mic">
<path name="usb-headset-mic" />
</path>
- <!-- vco, in: handset mic use existing, out: tty -->
- <path name="voice-tty-vco-usb">
- <ctl name="TTY Mode" value="VCO" />
- <path name="usb-headphones" />
- </path>
-
<!-- hco, in: tty, out: speaker, use existing handset -->
<path name="voice-tty-hco-usb-mic">
<path name="voice-tty-full-usb-mic" />
@@ -2569,156 +1115,6 @@
<!-- USB TTY end -->
<!-- Added for ADSP testfwk -->
- <path name="ADSP testfwk">
- <ctl name="SLIMBUS_DL_HL Switch" value="1" />
- </path>
-
- <path name="bt-a2dp">
- <ctl name="SLIM7_RX ADM Channels" value="Two" />
- </path>
-
- <path name="speaker-and-bt-a2dp">
- <path name="speaker" />
- <path name="bt-a2dp" />
- </path>
-
- <path name="speaker-safe-and-bt-a2dp">
- <path name="speaker-safe" />
- <path name="bt-a2dp" />
- </path>
-
- <path name="deep-buffer-playback bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="low-latency-playback bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="compress-offload-playback bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback2 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback3 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback4 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback5 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback6 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback7 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback8 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback9 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="audio-ull-playback bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-bt-a2dp">
- <path name="deep-buffer-playback bt-a2dp" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback speaker-safe-and-bt-a2dp">
- <path name="deep-buffer-playback bt-a2dp" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-and-bt-a2dp">
- <path name="compress-offload-playback bt-a2dp" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-safe-and-bt-a2dp">
- <path name="compress-offload-playback bt-a2dp" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="low-latency-playback speaker-and-bt-a2dp">
- <path name="low-latency-playback bt-a2dp" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="low-latency-playback speaker-safe-and-bt-a2dp">
- <path name="low-latency-playback bt-a2dp" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-bt-a2dp">
- <path name="compress-offload-playback2 bt-a2dp" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 speaker-safe-and-bt-a2dp">
- <path name="compress-offload-playback2 bt-a2dp" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-bt-a2dp">
- <path name="compress-offload-playback3 bt-a2dp" />
- <path name="compress-offload-playback3" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-bt-a2dp">
- <path name="compress-offload-playback4 bt-a2dp" />
- <path name="compress-offload-playback4" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-bt-a2dp">
- <path name="compress-offload-playback5 bt-a2dp" />
- <path name="compress-offload-playback5" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-bt-a2dp">
- <path name="compress-offload-playback6 bt-a2dp" />
- <path name="compress-offload-playback6" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-bt-a2dp">
- <path name="compress-offload-playback7 bt-a2dp" />
- <path name="compress-offload-playback7" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-bt-a2dp">
- <path name="compress-offload-playback8 bt-a2dp" />
- <path name="compress-offload-playback8" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-bt-a2dp">
- <path name="compress-offload-playback9 bt-a2dp" />
- <path name="compress-offload-playback9" />
- </path>
-
- <path name="audio-ull-playback speaker-and-bt-a2dp">
- <path name="audio-ull-playback bt-a2dp" />
- <path name="audio-ull-playback" />
- </path>
-
- <path name="audio-ull-playback speaker-safe-and-bt-a2dp">
- <path name="audio-ull-playback bt-a2dp" />
- <path name="audio-ull-playback" />
- </path>
<path name="mmap-playback">
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
@@ -2744,291 +1140,16 @@
<ctl name="QUIN_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
- <path name="mmap-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback headset">
- <path name="mmap-playback headphones" />
- </path>
-
- <path name="mmap-playback speaker-and-headphones">
- <path name="mmap-playback" />
- <path name="mmap-playback headphones" />
- </path>
-
- <path name="mmap-playback speaker-safe-and-headphones">
- <path name="mmap-playback" />
- <path name="mmap-playback headphones" />
- </path>
-
- <path name="mmap-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <path name="mmap-playback bt-sco" />
- </path>
-
<path name="mmap-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
- <path name="mmap-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback hdmi">
- <ctl name="HDMI Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback speaker-and-hdmi">
- <path name="mmap-playback hdmi" />
- <path name="mmap-playback" />
- </path>
-
- <path name="mmap-playback speaker-and-display-port">
- <path name="mmap-playback display-port" />
- <path name="mmap-playback" />
- </path>
-
- <path name="mmap-playback speaker-and-usb-headphones">
- <path name="mmap-playback usb-headphones" />
- <path name="mmap-playback" />
- </path>
-
- <path name="mmap-playback speaker-safe-and-usb-headphones">
- <path name="mmap-playback usb-headphones" />
- <path name="mmap-playback" />
- </path>
-
<path name="mmap-record">
- <ctl name="MultiMedia16 Mixer TERT_TDM_TX_0" value="1" />
- </path>
-
- <path name="mmap-record headset-mic">
- <ctl name="MultiMedia16 Mixer SLIM_1_TX" value="1" />
- </path>
-
- <path name="mmap-record bt-sco">
- <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="mmap-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <path name="mmap-record bt-sco" />
- </path>
-
- <path name="mmap-record capture-fm">
- <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="1" />
- </path>
-
- <path name="mmap-record usb-headset-mic">
- <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
- </path>
-
- <path name="hifi-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
+ <ctl name="MultiMedia16 Mixer TERT_TDM_TX_0" value="1" />
</path>
<path name="hifi-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
</path>
- <path name="hifi-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
- </path>
-
- <path name="hifi-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
- </path>
-
- <path name="hifi-record">
- <ctl name="MultiMedia2 Mixer SLIM_0_TX" value="1" />
- </path>
-
- <path name="hifi-record headset-mic">
- <ctl name="MultiMedia2 Mixer SLIM_1_TX" value="1" />
- </path>
-
- <path name="hifi-record usb-headset-mic">
- <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
- </path>
-
- <path name="incall_music_uplink">
- <ctl name="Incall_Music Audio Mixer MultiMedia9" value="1" />
- </path>
-
- <path name="incall_music_uplink speaker">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink handset">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink handset-hac">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink display-port">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink bt-sco">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink bt-sco-wb">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-display-port">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink afe-proxy">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink usb-headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink usb-headset">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-usb-headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-safe-and-usb-headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-safe-and-headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-bt-sco">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-safe-and-bt-sco">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink voice-tty-hco-handset">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-bt-a2dp">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-safe-and-bt-a2dp">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink bt-a2dp">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink afe-proxy">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink2">
- <ctl name="Incall_Music_2 Audio Mixer MultiMedia9" value="1" />
- </path>
-
- <path name="incall_music_uplink2 speaker">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 handset">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 handset-hac">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 display-port">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 bt-sco">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 bt-sco-wb">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 speaker-and-display-port">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 afe-proxy">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 usb-headphones">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 usb-headset">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 speaker-and-usb-headphones">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 headphones">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 speaker-and-headphones">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 speaker-and-bt-sco">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 voice-tty-hco-handset">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 speaker-and-bt-a2dp">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 bt-a2dp">
- <path name="incall_music_uplink2" />
- </path>
-
- <path name="incall_music_uplink2 afe-proxy">
- <path name="incall_music_uplink2" />
- </path>
</mixer>
diff --git a/configs/msmnile_au/mixer_paths_custom.xml b/configs/msmnile_au/mixer_paths_custom.xml
index 0f6f6bb..c5ad307 100644
--- a/configs/msmnile_au/mixer_paths_custom.xml
+++ b/configs/msmnile_au/mixer_paths_custom.xml
@@ -1315,6 +1315,11 @@
<ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia10" value="1" />
</path>
+ <path name="alerts-playback">
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia31" value="1" />
+ </path>
+
<path name="front-passenger-playback">
<ctl name="QUAT_TDM_RX_0 Channels" value="Eight" />
<ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia23" value="1" />
diff --git a/configs/msmnile_au/mixer_paths_sa8295_adp.xml b/configs/msmnile_au/mixer_paths_sa8295_adp.xml
new file mode 100644
index 0000000..3cc2250
--- /dev/null
+++ b/configs/msmnile_au/mixer_paths_sa8295_adp.xml
@@ -0,0 +1,3101 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. -->
+<!-- -->
+<!-- Redistribution and use in source and binary forms, with or without -->
+<!-- modification, are permitted provided that the following conditions are -->
+<!-- met: -->
+<!-- * Redistributions of source code must retain the above copyright -->
+<!-- notice, this list of conditions and the following disclaimer. -->
+<!-- * Redistributions in binary form must reproduce the above -->
+<!-- copyright notice, this list of conditions and the following -->
+<!-- disclaimer in the documentation and/or other materials provided -->
+<!-- with the distribution. -->
+<!-- * Neither the name of The Linux Foundation nor the names of its -->
+<!-- contributors may be used to endorse or promote products derived -->
+<!-- from this software without specific prior written permission. -->
+<!-- -->
+<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
+<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
+<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
+<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
+<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
+<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
+<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
+<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
+<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
+<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
+<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<mixer>
+ <!-- These are the initial mixer settings -->
+ <ctl name="Voice Rx Device Mute" id="0" value="0" />
+ <ctl name="Voice Rx Device Mute" id="1" value="-1" />
+ <ctl name="Voice Rx Device Mute" id="2" value="20" />
+ <ctl name="Voice Tx Mute" id="0" value="0" />
+ <ctl name="Voice Tx Mute" id="1" value="-1" />
+ <ctl name="Voice Tx Mute" id="2" value="500" />
+ <ctl name="Voice Rx Gain" id="0" value="0" />
+ <ctl name="Voice Rx Gain" id="1" value="-1" />
+ <ctl name="Voice Rx Gain" id="2" value="20" />
+ <ctl name="Voice Sidetone Enable" value="0" />
+ <ctl name="Voip Tx Mute" id="0" value="0" />
+ <ctl name="Voip Tx Mute" id="1" value="500" />
+ <ctl name="Voip Rx Gain" id="0" value="0" />
+ <ctl name="Voip Rx Gain" id="1" value="20" />
+ <ctl name="Voip Mode Config" value="12" />
+ <ctl name="Voip Rate Config" value="0" />
+ <ctl name="Voip Evrc Min Max Rate Config" id="0" value="1" />
+ <ctl name="Voip Evrc Min Max Rate Config" id="1" value="4" />
+ <ctl name="Voip Dtx Mode" value="0" />
+ <ctl name="TTY Mode" value="OFF" />
+ <ctl name="SLIMBUS_0_RX Port Mixer SLIM_0_TX" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="SLIMBUS_6_RX Port Mixer SLIM_0_TX" value="0" />
+ <ctl name="SLIMBUS_4_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="SLIMBUS_4_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="MultiMedia5 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer SLIM_8_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_4_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer SLIM_1_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia1" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia3" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia6" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia1" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia5" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia7" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia8" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia10" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia11" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia12" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia13" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia14" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia15" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia16" value="0" />
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia6 Mixer SLIM_0_TX" value="0" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="ZERO" />
+ <ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="ZERO" />
+ <ctl name="AANC_SLIM_0_RX MUX" value="ZERO" />
+ <!-- HFP start -->
+ <ctl name="HFP_PRI_AUX_UL_HL Switch" value="0" />
+ <ctl name="SLIMBUS_0_RX Port Mixer SLIM_7_TX" value="0" />
+ <!-- HFP end -->
+ <!-- echo reference -->
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
+ <!-- usb headset -->
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="MultiMedia1 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="0" />
+ <!-- usb headset end -->
+ <!-- fm -->
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="0" />
+ <ctl name="SLIMBUS_0_RX Port Mixer SLIM_8_TX" value="0" />
+ <ctl name="SLIMBUS_DL_HL Switch" value="0" />
+ <ctl name="SLIMBUS_6_RX Port Mixer SLIM_8_TX" value="0" />
+ <ctl name="SLIMBUS6_DL_HL Switch" value="0" />
+ <ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="0" />
+ <ctl name="MultiMedia2 Mixer TERT_TDM_TX_0" value="0" />
+ <!-- fm end -->
+
+ <!-- Multimode Voice1 -->
+ <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="SLIM_6_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="0" />
+ <!-- Multimode Voice1 BTSCO -->
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="0" />
+ <!-- Multimode Voice1 USB headset -->
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="0" />
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="0" />
+ <!-- Multimode Voice1 Display-Port -->
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="0" />
+ <!-- Miltimode Voice1 end-->
+
+ <!-- Multimode Voice2 -->
+ <ctl name="SLIM_0_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="SLIM_6_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_0_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 BTSCO -->
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 USB headset -->
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="0" />
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 Display-Port -->
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="0" />
+ <!-- Multimode Voice2 end-->
+
+ <!-- Voice external ec. reference -->
+ <ctl name="VOC_EXT_EC MUX" value="NONE" />
+ <!-- Voice external ec. reference end -->
+
+ <!-- RT Proxy Cal -->
+ <ctl name="RT_PROXY_1_RX SetCalMode" value="CAL_MODE_NONE" />
+ <ctl name="RT_PROXY_1_TX SetCalMode" value="CAL_MODE_NONE" />
+ <!-- RT Proxy Cal end -->
+
+ <!-- Incall Recording -->
+ <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="0" />
+ <ctl name="MultiMedia1 Mixer VOC_REC_DL" value="0" />
+ <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="0" />
+ <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="0" />
+ <!-- Incall Recording End -->
+
+ <!-- Incall Music -->
+ <ctl name="Incall_Music Audio Mixer MultiMedia2" value="0" />
+ <!-- Incall Music End -->
+
+ <!-- compress-voip-call start -->
+ <ctl name="SLIM_0_RX_Voice Mixer Voip" value="0" />
+ <ctl name="SLIM_6_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="0" />
+ <ctl name="SLIM_7_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="0" />
+ <ctl name="AFE_PCM_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value="0" />
+ <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="0" />
+ <!-- compress-voip-call end-->
+
+ <!-- Audio BTSCO -->
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia6" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
+ <!-- audio record compress-->
+ <ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
+ <!-- audio record compress end-->
+
+ <!-- ADSP testfwk -->
+ <ctl name="SLIMBUS_DL_HL Switch" value="0" />
+ <ctl name="SLIMBUS6_DL_HL Switch" value="0" />
+ <!-- ADSP testfwk end-->
+
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia3" value="0" />
+
+ <!-- hfp-sco -->
+ <ctl name="PRI_TDM_RX_2 Audio Mixer MultiMedia21" value="0" />
+ <ctl name="MultiMedia21 Mixer SEN_TDM_TX_1" value="0" />
+ <ctl name="SEN_TDM_RX_1 Audio Mixer MultiMedia6" value="0" />
+ <ctl name="MultiMedia6 Mixer TERT_TDM_TX_0" value="0" />
+
+ <!-- icc-call and anc-loopback -->
+ <ctl name="SEC_TDM_RX_0 Audio Mixer MultiMedia9" value="0" />
+ <ctl name="MultiMedia9 Mixer TERT_TDM_TX_0" value="0" />
+
+ <!-- These are audio route (FE to BE) specific mixer settings -->
+
+ <!-- EC Reference -->
+ <ctl name="EC Reference Channels" value="Zero" />
+ <ctl name="EC Reference SampleRate" value="0" />
+ <ctl name="EC Reference Bit Format" value="0" />
+ <!-- EC Reference end -->
+
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="PRI_TDM_RX_2" />
+ <ctl name="EC Reference Channels" value="One" />
+ <ctl name="EC Reference Bit Format" value="S16_LE" />
+ <ctl name="EC Reference SampleRate" value="48000" />
+ </path>
+
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_6_RX" />
+ </path>
+
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
+ </path>
+
+ <path name="echo-reference display-port">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="DISPLAY_PORT" />
+ </path>
+
+ <path name="echo-reference headphones-44.1">
+ </path>
+
+ <path name="multi-mic-echo-reference">
+ <ctl name="SEC_TDM_TX_0 SampleRate" value="KHZ_16" />
+ <ctl name="SEC_TDM_TX_0 Channels" value="Six" />
+ <ctl name="MultiMedia2 Mixer SEC_TDM_TX_0" value="1" />
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SEC_TDM_TX_0" />
+ <!-- EC Reference supports up to Eight channels -->
+ <ctl name="EC Reference Channels" value="Four" />
+ <!-- ctl name="EC Reference SampleRate" supports 8000, 16000, 32000,
+ 44100, 48000, 96000, 192000, 384000 -->
+ <!-- ctl name="EC Reference Bit Format" supports S16_LE and S24_LE -->
+ </path>
+
+ <path name="deep-buffer-playback">
+ <path name="auto-playback" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-protected">
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe">
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="deep-buffer-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-usb-headphones">
+ <path name="deep-buffer-playback usb-headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-usb-headphones">
+ <path name="deep-buffer-playback usb-headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback headset">
+ <path name="deep-buffer-playback headphones" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-headphones">
+ <path name="deep-buffer-playback headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-headphones">
+ <path name="deep-buffer-playback headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-bt-sco">
+ <path name="deep-buffer-playback bt-sco" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-bt-sco">
+ <path name="deep-buffer-playback bt-sco" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-bt-sco-wb">
+ <path name="deep-buffer-playback bt-sco-wb" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-bt-sco-wb">
+ <path name="deep-buffer-playback bt-sco-wb" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="low-latency-playback">
+ <path name="auto-playback" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback speaker-protected">
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe">
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="low-latency-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-usb-headphones">
+ <path name="low-latency-playback usb-headphones" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-usb-headphones">
+ <path name="low-latency-playback usb-headphones" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback headset">
+ <path name="low-latency-playback headphones" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback headphones" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-headphones">
+ <path name="low-latency-playback headphones" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback resume">
+ <ctl name="MultiMedia5_RX QOS Vote" value="Enable" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-bt-sco">
+ <path name="low-latency-playback bt-sco" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-bt-sco">
+ <path name="low-latency-playback bt-sco" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-bt-sco-wb">
+ <path name="low-latency-playback bt-sco-wb" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-bt-sco-wb">
+ <path name="low-latency-playback bt-sco-wb" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="audio-ull-playback">
+ <path name="auto-playback" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-protected">
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe">
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback headset">
+ <path name="audio-ull-playback headphones" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ <path name="audio-ull-playback headphones" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-headphones">
+ <path name="audio-ull-playback" />
+ <path name="audio-ull-playback headphones" />
+ </path>
+
+ <path name="audio-ull-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="audio-ull-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-bt-sco">
+ <path name="audio-ull-playback bt-sco" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-bt-sco">
+ <path name="audio-ull-playback bt-sco" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-bt-sco-wb">
+ <path name="audio-ull-playback bt-sco-wb" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-wb">
+ <path name="audio-ull-playback bt-sco-wb" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="multi-channel-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="multi-channel-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="compress-offload-tdm-config">
+ <ctl name="PRI_TDM SlotWidth" value="32" />
+ <ctl name="PRI_TDM SlotNumber" value="Eight" />
+ <ctl name="PRI_TDM_RX_0 SampleRate" value="KHZ_48" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="0" value="0" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="1" value="4" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="2" value="8" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="3" value="12" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="4" value="16" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="5" value="20" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="6" value="65535" />
+ </path>
+
+ <path name="compress-offload-playback">
+ <path name="compress-offload-tdm-config" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback speaker-protected">
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe">
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="silence-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-usb-headphones">
+ <path name="compress-offload-playback usb-headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback usb-headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback headset">
+ <path name="compress-offload-playback headphones" />
+ </path>
+
+ <path name="compress-offload-playback headphones-44.1">
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback headphones-dsd">
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-headphones">
+ <path name="compress-offload-playback headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-bt-sco">
+ <path name="compress-offload-playback bt-sco" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback bt-sco" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback bt-sco-wb" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback bt-sco-wb" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback2">
+ <path name="compress-offload-tdm-config" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback2 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-usb-headphones">
+ <path name="compress-offload-playback2 usb-headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback2 usb-headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 headset">
+ <path name="compress-offload-playback2 headphones" />
+ </path>
+
+ <path name="compress-offload-playback2 headphones-44.1">
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 headphones-dsd">
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-headphones">
+ <path name="compress-offload-playback2 headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-headphones">
+ <path name="compress-offload-playback2 headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-sco">
+ <path name="compress-offload-playback2 bt-sco" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback2 bt-sco" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback2 bt-sco-wb" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback2 bt-sco-wb" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback3">
+ <path name="compress-offload-tdm-config" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback3 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 headset">
+ <path name="compress-offload-playback3 headphones" />
+ </path>
+
+ <path name="compress-offload-playback3 headphones-44.1">
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 headphones-dsd">
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback4">
+ <path name="compress-offload-tdm-config" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+
+ <path name="compress-offload-playback4 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 headset">
+ <path name="compress-offload-playback4 headphones" />
+ </path>
+
+ <path name="compress-offload-playback4 headphones-44.1">
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 headphones-dsd">
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback5">
+ <path name="compress-offload-tdm-config" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback5 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 headset">
+ <path name="compress-offload-playback5 headphones" />
+ </path>
+
+ <path name="compress-offload-playback5 headphones-44.1">
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 headphones-dsd">
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback6">
+ <path name="compress-offload-tdm-config" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback6 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 headset">
+ <path name="compress-offload-playback6 headphones" />
+ </path>
+
+ <path name="compress-offload-playback6 headphones-44.1">
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 headphones-dsd">
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback7">
+ <path name="compress-offload-tdm-config" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback7 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 headset">
+ <path name="compress-offload-playback7 headphones" />
+ </path>
+
+ <path name="compress-offload-playback7 headphones-44.1">
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 headphones-dsd">
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback8">
+ <path name="compress-offload-tdm-config" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback8 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 headset">
+ <path name="compress-offload-playback8 headphones" />
+ </path>
+
+ <path name="compress-offload-playback8 headphones-44.1">
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 headphones-dsd">
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback9">
+ <path name="compress-offload-tdm-config" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback9 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 headset">
+ <path name="compress-offload-playback9 headphones" />
+ </path>
+
+ <path name="compress-offload-playback9 headphones-44.1">
+ <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 headphones-dsd">
+ <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <!-- The following use cases are used for car streams -->
+ <path name="auto-playback">
+ <ctl name="PRI_TDM SlotWidth" value="32" />
+ <ctl name="PRI_TDM SlotNumber" value="Eight" />
+ <ctl name="PRI_TDM_RX_0 SampleRate" value="KHZ_48" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="0" value="0" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="1" value="4" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="2" value="8" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="3" value="12" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="4" value="16" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="5" value="20" />
+ <ctl name="PRI_TDM_RX_0 SlotMapping" id ="6" value="65535" />
+ </path>
+
+ <path name="media-playback">
+ <path name="auto-playback" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="sys-notification-playback">
+ <path name="auto-playback" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="nav-guidance-playback">
+ <path name="auto-playback" />
+ <ctl name="PRI_TDM_RX_1 SampleRate" value="KHZ_48" />
+ <ctl name="PRI_TDM_RX_1 SlotMapping" id ="0" value="24" />
+ <ctl name="PRI_TDM_RX_1 SlotMapping" id ="1" value="65535" />
+ <ctl name="PRI_TDM_RX_1 Channels" value="One" />
+ <ctl name="PRI_TDM_RX_1 Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="phone-playback">
+ <path name="auto-playback" />
+ <ctl name="PRI_TDM_RX_2 SampleRate" value="KHZ_48" />
+ <ctl name="PRI_TDM_RX_2 SlotMapping" id ="0" value="28" />
+ <ctl name="PRI_TDM_RX_2 SlotMapping" id ="1" value="65535" />
+ <ctl name="PRI_TDM_RX_2 Channels" value="One" />
+ <ctl name="PRI_TDM_RX_2 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="front-passenger-playback">
+ <ctl name="QUAT_TDM_RX_0 Channels" value="Eight" />
+ <ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia23" value="1" />
+ </path>
+
+ <path name="rear-seat-playback">
+ <ctl name="QUIN_TDM_RX_0 Channels" value="Sixteen" />
+ <ctl name="QUIN_TDM_RX_0 Audio Mixer MultiMedia22" value="1" />
+ </path>
+
+ <path name="auto-record">
+ <ctl name="TERT_TDM SlotWidth" value="32" />
+ <ctl name="TERT_TDM SlotNumber" value="Eight" />
+ <ctl name="TERT_TDM_TX_0 SampleRate" value="KHZ_48" />
+ <ctl name="TERT_TDM_TX_0 SlotMapping" id ="0" value="0" />
+ <ctl name="TERT_TDM_TX_0 SlotMapping" id ="1" value="4" />
+ <ctl name="TERT_TDM_TX_0 SlotMapping" id ="2" value="8" />
+ <ctl name="TERT_TDM_TX_0 SlotMapping" id ="3" value="12" />
+ <ctl name="TERT_TDM_TX_0 SlotMapping" id ="4" value="16" />
+ <ctl name="TERT_TDM_TX_0 SlotMapping" id ="5" value="20" />
+ <ctl name="TERT_TDM_TX_0 SlotMapping" id ="6" value="65535" />
+ </path>
+
+ <path name="audio-record">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="front-passenger-record">
+ <ctl name="QUAT_TDM_TX_0 Channels" value="Eight" />
+ <ctl name="MultiMedia23 Mixer QUAT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="rear-seat-record">
+ <ctl name="QUIN_TDM_TX_0 Channels" value="Eight" />
+ <ctl name="MultiMedia22 Mixer QUIN_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record headset-mic">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record usb-headset-mic">
+ <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record bt-sco">
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record bt-sco" />
+ </path>
+
+ <path name="audio-record capture-fm">
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record-compress">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record-compress headset-mic">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="audio-record-compress2">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia17 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 headset-mic">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia17 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 usb-headset-mic">
+ <ctl name="MultiMedia17 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 bt-sco">
+ <ctl name="MultiMedia17 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record-compress2 bt-sco" />
+ </path>
+
+ <path name="low-latency-record">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="low-latency-record headset-mic">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="low-latency-record bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="low-latency-record bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="low-latency-record capture-fm">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="fm-virtual-record capture-fm">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="MultiMedia2 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="play-fm">
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
+ <ctl name="SLIMBUS_0_RX Port Mixer SLIM_8_TX" value="1" />
+ <ctl name="SLIMBUS_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="play-fm headphones">
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
+ <ctl name="SLIMBUS_6_RX Port Mixer SLIM_8_TX" value="1" />
+ <ctl name="SLIMBUS6_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="play-fm headset">
+ <path name="play-fm headphones" />
+ </path>
+
+ <path name="incall-rec-uplink">
+ <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
+ </path>
+
+ <path name="incall-rec-uplink bt-sco">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink bt-sco-wb">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink usb-headset-mic">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink headset-mic">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink afe-proxy">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink-compress">
+ <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="1" />
+ </path>
+
+ <path name="incall-rec-uplink-compress headset-mic">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress bt-sco">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress bt-sco-wb">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress usb-headset-mic">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress afe-proxy">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink">
+ <ctl name="MultiMedia1 Mixer VOC_REC_DL" value="1" />
+ </path>
+
+ <path name="incall-rec-downlink bt-sco">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink bt-sco-wb">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink usb-headset-mic">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink headset-mic">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink afe-proxy">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink-compress">
+ <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="1" />
+ </path>
+
+ <path name="incall-rec-downlink-compress headset-mic">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress bt-sco">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress bt-sco-wb">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress usb-headset-mic">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress afe-proxy">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink">
+ <path name="incall-rec-uplink" />
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink bt-sco">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink bt-sco-wb">
+ <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>
+
+ <path name="incall-rec-uplink-and-downlink headset-mic">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink afe-proxy">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress">
+ <path name="incall-rec-uplink-compress" />
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress bt-sco">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress headset-mic">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress bt-sco-wb">
+ <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>
+
+ <path name="incall-rec-uplink-and-downlink-compress afe-proxy">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="icc-call">
+ <path name="auto-record" />
+ <path name="auto-playback" />
+ <ctl name="PRI_TDM_RX_0 SampleRate" value="KHZ_16" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Four" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia9" value="1" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="MultiMedia9 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="anc-loopback">
+ <ctl name="SEC_TDM_RX_0 Channels" value="Four" />
+ <ctl name="SEC_TDM_RX_0 Audio Mixer MultiMedia9" value="1" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="MultiMedia9 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="hfp-sco headphones">
+ </path>
+
+ <path name="hfp-sco-wb headphones">
+ <path name="hfp-sco headphones" />
+ </path>
+
+ <path name="hfp-sco headset">
+ <path name="hfp-sco headphones" />
+ </path>
+
+ <path name="hfp-sco">
+ <path name="auto-record" />
+ <ctl name="SEN_TDM SlotWidth" value="16" />
+ <ctl name="SEN_TDM SlotNumber" value="Eight" />
+ <ctl name="SEN_TDM_RX_1 Channels" value="One" />
+ <ctl name="SEN_TDM_RX_1 SlotMapping" id ="0" value="0" />
+ <ctl name="SEN_TDM_RX_1 SlotMapping" id ="1" value="65535" />
+ <ctl name="SEN_TDM_RX_1 Audio Mixer MultiMedia6" value="1" />
+ <ctl name="MultiMedia6 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="hfp-sco bt-sco">
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <path name="hfp-sco" />
+ </path>
+
+ <path name="hfp-sco bt-sco-mmsecns">
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <path name="hfp-sco" />
+ </path>
+
+ <path name="hfp-sco-wb">
+ <ctl name="SEN_TDM_RX_1 SampleRate" value="KHZ_16" />
+ <path name="hfp-sco" />
+ </path>
+
+ <path name="hfp-sco-wb bt-sco-wb">
+ <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <path name="hfp-sco-wb" />
+ </path>
+
+ <path name="hfp-sco-wb bt-sco-mmsecns">
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <path name="hfp-sco-wb" />
+ </path>
+
+
+ <path name="hfp-sco-wb headset">
+ <path name="hfp-sco headphones" />
+ </path>
+
+ <path name="hfp-sco-downlink">
+ <path name="auto-playback" />
+ <ctl name="SEN_TDM SlotWidth" value="16" />
+ <ctl name="SEN_TDM SlotNumber" value="Eight" />
+ <ctl name="SEN_TDM_TX_1 Channels" value="One" />
+ <ctl name="SEN_TDM_TX_1 SlotMapping" id ="0" value="0" />
+ <ctl name="SEN_TDM_TX_1 SlotMapping" id ="1" value="65535" />
+ <ctl name="PRI_TDM_RX_2 Channels" value="One" />
+ <ctl name="PRI_TDM_RX_2 SampleRate" value="KHZ_48" />
+ <ctl name="PRI_TDM_RX_2 SlotMapping" id ="0" value="28" />
+ <ctl name="PRI_TDM_RX_2 SlotMapping" id ="1" value="65535" />
+ <ctl name="PRI_TDM_RX_2 Audio Mixer MultiMedia21" value="1" />
+ <ctl name="MultiMedia21 Mixer SEN_TDM_TX_1" value="1" />
+ </path>
+
+ <path name="hfp-sco-wb-downlink">
+ <ctl name="SEN_TDM_TX_1 SampleRate" value="KHZ_16" />
+ <path name="hfp-sco-downlink" />
+ </path>
+
+ <path name="compress-voip-call">
+ <ctl name="SLIM_0_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call bt-a2dp">
+ <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call headphones">
+ <ctl name="SLIM_6_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call headset">
+ <ctl name="SLIM_6_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_1_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call bt-sco">
+ <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-voip-call usb-headphones">
+ <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call usb-headset">
+ <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
+ </path>
+
+ <path name="voicemmode1-call">
+ <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call headphones">
+ <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call headset">
+ <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call bt-sco">
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="voicemmode1-call usb-headphones">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call usb-headset">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call display-port-and-usb-headset-mic">
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call display-port">
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode2-call">
+ <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call headphones">
+ <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call headset">
+ <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call bt-sco">
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="voicemmode2-call usb-headphones">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call usb-headset">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call display-port-and-usb-headset-mic">
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call display-port">
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
+ </path>
+
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <path name="auto-playback" />
+ <ctl name="PRI_TDM_RX_0 Channels" value="Six" />
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headset">
+ <path name="audio-playback-voip headphones" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="audio-playback-voip afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip headset-mic">
+ <ctl name="MultiMedia10 Mixer SLIM_1_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+ <path name="spkr-rx-calib">
+ <ctl name="SLIMBUS_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="spkr-vi-record">
+ </path>
+
+ <!-- These are actual sound device specific mixer settings -->
+ <path name="amic1">
+ </path>
+
+ <path name="amic2">
+ </path>
+
+ <!-- For Tavil, DMIC numbered from 0 to 5 -->
+ <path name="dmic1">
+ </path>
+
+ <path name="dmic2">
+ </path>
+
+ <path name="dmic3">
+ </path>
+
+ <path name="dmic4">
+ </path>
+
+ <path name="dmic5">
+ </path>
+
+ <path name="dmic6">
+ </path>
+
+ <path name="speaker">
+ </path>
+
+ <path name="speaker-mono">
+ <ctl name="PRI_TDM_RX_0 Channels" value="One" />
+ </path>
+
+ <path name="speaker-mono-2">
+ </path>
+
+ <path name="speaker-qrd">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-fluid">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-liquid">
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe">
+ <path name="speaker-mono"/>
+ </path>
+
+ <path name="speaker-adp">
+ <!--ctl name="TERT_TDM_RX_0 Channels" value="Six" /-->
+ </path>
+
+ <path name="speaker-custom">
+ <!--ctl name="TERT_TDM_RX_0 Channels" value="Six" /-->
+ </path>
+
+ <path name="bus-speaker">
+ <!--ctl name="TERT_TDM_RX_0 Channels" value="Six" /-->
+ </path>
+
+ <path name="bus-mic">
+ <!--ctl name="TERT_TDM_TX_0 Channels" value="Four" /-->
+ </path>
+
+ <path name="sidetone-iir">
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ </path>
+
+ <path name="afe-sidetone">
+ <ctl name="Voice Sidetone Enable" value="1" />
+ </path>
+
+ <path name="speaker-mic">
+ <path name="dmic3" />
+ </path>
+
+ <path name="speaker-mic-liquid">
+ <path name="dmic3" />
+ </path>
+
+ <path name="speaker-mic-sbc">
+ </path>
+
+ <path name="speaker-mic-qrd">
+ <path name="dmic1" />
+ </path>
+
+ <path name="speaker-protected">
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-protected-qrd">
+ </path>
+
+ <path name="voice-speaker-protected">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-protected-qrd">
+ <path name="speaker-protected-qrd" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected">
+ <path name="speaker-protected" />
+ </path>
+
+ <path name="voice-speaker-2-protected">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="vi-feedback">
+ </path>
+
+ <path name="vi-feedback-mono-1">
+ </path>
+
+ <path name="vi-feedback-mono-2">
+ </path>
+
+ <path name="handset">
+ </path>
+
+ <path name="handset-qrd">
+ </path>
+
+ <path name="handset-mic">
+ <path name="dmic3" />
+ </path>
+
+ <path name="handset-mic-qrd">
+ <path name="dmic3" />
+ </path>
+
+ <path name="voice-handset-mic-qrd">
+ <path name="handset-mic-qrd" />
+ </path>
+
+ <path name="handset-mic-db">
+ </path>
+
+ <path name="handset-mic-cdp">
+ <path name="amic1" />
+ </path>
+
+ <path name="handset-mic-sbc">
+ </path>
+
+ <path name="three-mic">
+ </path>
+
+ <path name="three-mic-qrd">
+ </path>
+
+ <path name="anc-handset">
+ </path>
+
+ <path name="headphones">
+ </path>
+
+ <path name="headphones-44.1">
+ </path>
+
+ <path name="asrc-mode">
+ </path>
+
+ <path name="headphones-dsd">
+ </path>
+
+ <path name="hph-highquality-mode">
+ </path>
+
+ <path name="hph-lowpower-mode">
+ </path>
+
+ <path name="true-native-mode">
+ </path>
+
+ <path name="line">
+ <path name="headphones" />
+ </path>
+
+ <path name="headset-mic">
+ <path name="amic2" />
+ </path>
+
+ <path name="headset-mic-liquid">
+ <path name="amic2" />
+ </path>
+
+ <path name="voice-handset">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-qrd">
+ <path name="handset-qrd" />
+ </path>
+
+ <path name="voice-handset-tmus-qrd">
+ <path name="handset-qrd" />
+ </path>
+
+ <path name="voice-handset-hdk">
+ <path name="handset-qrd" />
+ </path>
+
+ <path name="voice-handset-tmus-hdk">
+ <path name="handset-qrd" />
+ </path>
+
+ <path name="voice-speaker">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-stereo">
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-qrd">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-hfp">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-2">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-fluid">
+ <path name="speaker-fluid" />
+ </path>
+
+ <path name="voice-speaker-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-speaker-mic-qrd">
+ <path name="speaker-mic-qrd" />
+ </path>
+
+ <path name="voice-speaker-mic-hfp">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-speaker-mic-hfp-mmsecns">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-headphones">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-headset">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-line">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="voice-headset-mic">
+ <path name="amic2" />
+ </path>
+
+ <path name="voice-headset-mic-qrd">
+ <path name="amic2" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe-and-headphones">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
+ <path name="speaker-and-line">
+ <path name="speaker-and-headphones" />
+ </path>
+
+ <path name="speaker-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-line-liquid">
+ <path name="speaker-and-headphones-liquid" />
+ </path>
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="usb-headset">
+ </path>
+
+ <path name="afe-proxy">
+ </path>
+
+ <path name="anc-headphones">
+ </path>
+
+ <path name="speaker-and-anc-headphones">
+ <path name="anc-headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="anc-fb-headphones">
+ <path name="anc-headphones" />
+ </path>
+
+ <path name="speaker-and-anc-fb-headphones">
+ <path name="anc-fb-headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-anc-headphones">
+ <path name="anc-headphones" />
+ </path>
+
+ <path name="voice-anc-fb-headphones">
+ <path name="anc-fb-headphones" />
+ </path>
+
+ <path name="speaker-and-anc-headphones-liquid">
+ <path name="anc-headphones" />
+ </path>
+
+ <path name="display-port">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-safe-and-usb-headphones">
+ <path name="speaker-safe" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-and-display-port">
+ <path name="speaker" />
+ <path name="display-port" />
+ </path>
+
+ <path name="voice-rec-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="camcorder-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="bt-sco-headset">
+ </path>
+
+ <path name="bt-sco-mic">
+ </path>
+
+ <path name="bt-sco-headset-wb">
+ </path>
+
+ <path name="bt-sco-mic-wb">
+ </path>
+
+ <path name="usb-headset-mic">
+ </path>
+
+ <path name="capture-fm">
+ </path>
+
+ <path name="aanc-path">
+ </path>
+
+ <path name="aanc-handset-mic">
+ </path>
+
+ <path name="aanc-handset-mic-qrd">
+ </path>
+
+ <!-- Dual MIC devices -->
+ <path name="handset-dmic-endfire">
+ </path>
+
+ <path name="speaker-dmic-endfire">
+ </path>
+
+ <path name="handset-dmic-endfire-qrd">
+ </path>
+
+ <path name="speaker-dmic-endfire-qrd">
+ </path>
+
+ <path name="dmic-endfire">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="dmic-endfire-liquid">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="dmic-endfire-qrd">
+ <path name="handset-dmic-endfire-qrd" />
+ </path>
+
+ <path name="handset-stereo-dmic-ef">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-tmus">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="handset-stereo-dmic-ef-liquid">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef-liquid">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-liquid-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="handset-stereo-dmic-ef-qrd">
+ <path name="handset-dmic-endfire-qrd" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef-qrd">
+ <path name="speaker-dmic-endfire-qrd" />
+ </path>
+
+ <path name="voice-dmic-ef-qrd">
+ <path name="dmic-endfire-qrd" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef-qrd">
+ <path name="speaker-dmic-endfire-qrd" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ </path>
+
+ <path name="dmic-broadside">
+ <path name="speaker-dmic-broadside" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside">
+ <path name="dmic-broadside" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside-qrd">
+ <path name="speaker-dmic-broadside-qrd" />
+ </path>
+
+ <!-- Tri MIC devices -->
+ <path name="speaker-tmic">
+ </path>
+
+ <path name="speaker-tmic-qrd">
+ </path>
+
+ <path name="voice-speaker-tmic">
+ <path name="speaker-tmic" />
+ </path>
+
+ <path name="voice-speaker-tmic-qrd">
+ <path name="speaker-tmic-qrd" />
+ </path>
+
+ <!-- Quad MIC devices -->
+ <path name="speaker-qmic">
+ <path name="auto-record" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="speaker-qmic-qrd">
+ </path>
+
+ <path name="speaker-qmic-liquid">
+ </path>
+
+ <path name="voice-speaker-qmic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="voice-speaker-qmic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="quad-mic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="quad-mic-qrd">
+ <path name="speaker-qmic-qrd" />
+ </path>
+
+ <path name="voice-speaker-qmic-qrd">
+ <path name="speaker-qmic-qrd" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ </path>
+
+ <path name="voice-tty-full-headphones">
+ <ctl name="TTY Mode" value="FULL" />
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-full-headset">
+ <ctl name="TTY Mode" value="FULL" />
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headphones">
+ <ctl name="TTY Mode" value="VCO" />
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headset">
+ <ctl name="TTY Mode" value="VCO" />
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-hco-handset">
+ <ctl name="TTY Mode" value="HCO" />
+ <path name="handset" />
+ </path>
+
+ <path name="voice-tty-hco-handset-qrd">
+ <ctl name="TTY Mode" value="HCO" />
+ <path name="handset-qrd" />
+ </path>
+
+ <path name="voice-tty-hco-handset-hdk">
+ <ctl name="TTY Mode" value="HCO" />
+ <path name="handset-qrd" />
+ </path>
+
+ <path name="voice-tty-full-headset-mic">
+ <path name="amic2" />
+ </path>
+
+ <path name="voice-tty-hco-headset-mic">
+ </path>
+
+ <path name="voice-tty-vco-handset-mic">
+ <path name="dmic1" />
+ </path>
+
+ <path name="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="unprocessed-stereo-mic">
+ <path name="voice-rec-dmic-ef" />
+ </path>
+
+ <path name="unprocessed-three-mic">
+ <path name="three-mic" />
+ </path>
+
+ <path name="unprocessed-quad-mic">
+ <path name="quad-mic" />
+ </path>
+
+ <path name="unprocessed-headset-mic">
+ <path name="amic2" />
+ </path>
+
+ <!-- USB TTY start -->
+
+ <!-- full: both end tty -->
+ <path name="voice-tty-full-usb">
+ <ctl name="TTY Mode" value="FULL" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="voice-tty-full-usb-mic">
+ <path name="usb-headset-mic" />
+ </path>
+
+ <!-- vco, in: handset mic use existing, out: tty -->
+ <path name="voice-tty-vco-usb">
+ <ctl name="TTY Mode" value="VCO" />
+ <path name="usb-headphones" />
+ </path>
+
+ <!-- hco, in: tty, out: speaker, use existing handset -->
+ <path name="voice-tty-hco-usb-mic">
+ <path name="voice-tty-full-usb-mic" />
+ </path>
+
+ <!-- USB TTY end -->
+
+ <!-- Added for ADSP testfwk -->
+ <path name="ADSP testfwk">
+ <ctl name="SLIMBUS_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="bt-a2dp">
+ <ctl name="SLIM7_RX ADM Channels" value="Two" />
+ </path>
+
+ <path name="speaker-and-bt-a2dp">
+ <path name="speaker" />
+ <path name="bt-a2dp" />
+ </path>
+
+ <path name="speaker-safe-and-bt-a2dp">
+ <path name="speaker-safe" />
+ <path name="bt-a2dp" />
+ </path>
+
+ <path name="deep-buffer-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-bt-a2dp">
+ <path name="deep-buffer-playback bt-a2dp" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-bt-a2dp">
+ <path name="deep-buffer-playback bt-a2dp" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-bt-a2dp">
+ <path name="compress-offload-playback bt-a2dp" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback bt-a2dp" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-bt-a2dp">
+ <path name="low-latency-playback bt-a2dp" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-bt-a2dp">
+ <path name="low-latency-playback bt-a2dp" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback2 bt-a2dp" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback2 bt-a2dp" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-bt-a2dp">
+ <path name="audio-ull-playback bt-a2dp" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-bt-a2dp">
+ <path name="audio-ull-playback bt-a2dp" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="mmap-playback">
+ <ctl name="PRI_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback headset">
+ <path name="mmap-playback headphones" />
+ </path>
+
+ <path name="mmap-playback speaker-and-headphones">
+ <path name="mmap-playback" />
+ <path name="mmap-playback headphones" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-headphones">
+ <path name="mmap-playback" />
+ <path name="mmap-playback headphones" />
+ </path>
+
+ <path name="mmap-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="mmap-playback bt-sco" />
+ </path>
+
+ <path name="mmap-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback hdmi">
+ <ctl name="HDMI Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback speaker-and-hdmi">
+ <path name="mmap-playback hdmi" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-and-usb-headphones">
+ <path name="mmap-playback usb-headphones" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-usb-headphones">
+ <path name="mmap-playback usb-headphones" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-record">
+ <ctl name="MultiMedia16 Mixer TERT_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="mmap-record headset-mic">
+ <ctl name="MultiMedia16 Mixer SLIM_1_TX" value="1" />
+ </path>
+
+ <path name="mmap-record bt-sco">
+ <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="mmap-record bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="mmap-record bt-sco" />
+ </path>
+
+ <path name="mmap-record capture-fm">
+ <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="1" />
+ </path>
+
+ <path name="mmap-record usb-headset-mic">
+ <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="hifi-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-record">
+ <ctl name="MultiMedia2 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="hifi-record headset-mic">
+ <ctl name="MultiMedia2 Mixer SLIM_1_TX" value="1" />
+ </path>
+
+ <path name="hifi-record usb-headset-mic">
+ <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="incall_music_uplink">
+ <ctl name="Incall_Music Audio Mixer MultiMedia9" value="1" />
+ </path>
+
+ <path name="incall_music_uplink speaker">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink handset">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink handset-hac">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink bt-sco">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink bt-sco-wb">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink usb-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink usb-headset">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-usb-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-usb-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-bt-sco">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-bt-sco">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink voice-tty-hco-handset">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-bt-a2dp">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-bt-a2dp">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink bt-a2dp">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink2">
+ <ctl name="Incall_Music_2 Audio Mixer MultiMedia9" value="1" />
+ </path>
+
+ <path name="incall_music_uplink2 speaker">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 handset">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 handset-hac">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 display-port">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 bt-sco">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 bt-sco-wb">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 speaker-and-display-port">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 afe-proxy">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 usb-headphones">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 usb-headset">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 speaker-and-usb-headphones">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 headphones">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 speaker-and-headphones">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 speaker-and-bt-sco">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 voice-tty-hco-handset">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 speaker-and-bt-a2dp">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 bt-a2dp">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 afe-proxy">
+ <path name="incall_music_uplink2" />
+ </path>
+</mixer>
diff --git a/configs/msmnile_au/msmnile_au.mk b/configs/msmnile_au/msmnile_au.mk
index 7d9aa3c..240c9db 100644
--- a/configs/msmnile_au/msmnile_au.mk
+++ b/configs/msmnile_au/msmnile_au.mk
@@ -11,8 +11,12 @@
BOARD_USES_ALSA_AUDIO := true
ifneq ($(TARGET_USES_AOSP_FOR_AUDIO), true)
-USE_CUSTOM_AUDIO_POLICY := 1
-AUDIO_FEATURE_QSSI_COMPLIANCE := true
+ifeq ($(TARGET_FWK_SUPPORTS_FULL_VALUEADDS),true)
+USE_CUSTOM_AUDIO_POLICY := 0
+else
+USE_CUSTOM_AUDIO_POLICY := 0
+endif
+AUDIO_FEATURE_QSSI_COMPLIANCE := false
AUDIO_FEATURE_ENABLED_COMPRESS_CAPTURE := false
AUDIO_FEATURE_ENABLED_COMPRESS_INPUT := true
AUDIO_FEATURE_ENABLED_CONCURRENT_CAPTURE := true
@@ -45,61 +49,100 @@
AUDIO_FEATURE_ENABLED_AHAL_EXT := false
DOLBY_ENABLE := false
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
+AUDIO_FEATURE_ENABLED_SOFT_VOLUME:= true
+SOONG_CONFIG_NAMESPACES += tinycompressnamespace
+SOONG_CONFIG_tinycompressnamespace := ext_compress_format_enabled
+SOONG_CONFIG_tinycompressnamespace_ext_compress_format_enabled := true
endif
USE_XML_AUDIO_POLICY_CONF := 1
BOARD_SUPPORTS_SOUND_TRIGGER := true
+BOARD_SUPPORTS_OPENSOURCE_STHAL := true
+AUDIO_FEATURE_ENABLED_SVA_CHANNEL_IDX := true
AUDIO_FEATURE_ENABLED_INSTANCE_ID := true
ifeq ($(TARGET_HAS_GENERIC_KERNEL_HEADERS), true)
AUDIO_FEATURE_ENABLED_GKI := true
endif
AUDIO_USE_DEEP_AS_PRIMARY_OUTPUT := false
-AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true
+AUDIO_FEATURE_ENABLED_VBAT_MONITOR := false
AUDIO_FEATURE_ENABLED_NT_PAUSE_TIMEOUT := true
-AUDIO_FEATURE_ENABLED_ANC_HEADSET := true
-AUDIO_FEATURE_ENABLED_CUSTOMSTEREO := true
+AUDIO_FEATURE_ENABLED_ANC_HEADSET := false
+AUDIO_FEATURE_ENABLED_CUSTOMSTEREO := false
AUDIO_FEATURE_ENABLED_FLUENCE := true
-AUDIO_FEATURE_ENABLED_HDMI_EDID := true
-AUDIO_FEATURE_ENABLED_HDMI_PASSTHROUGH := true
+AUDIO_FEATURE_ENABLED_HDMI_EDID := false
+AUDIO_FEATURE_ENABLED_HDMI_PASSTHROUGH := false
#AUDIO_FEATURE_ENABLED_KEEP_ALIVE := true
-AUDIO_FEATURE_ENABLED_DISPLAY_PORT := true
+AUDIO_FEATURE_ENABLED_DISPLAY_PORT := false
AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false
AUDIO_FEATURE_ENABLED_HFP := true
AUDIO_FEATURE_ENABLED_INCALL_MUSIC := false
-AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
+AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := false
AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE := true
-AUDIO_FEATURE_ENABLED_SPKR_PROTECTION := true
+AUDIO_FEATURE_ENABLED_SPKR_PROTECTION := false
AUDIO_FEATURE_ENABLED_ACDB_LICENSE := false
AUDIO_FEATURE_ENABLED_DEV_ARBI := false
AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := true
-MM_AUDIO_ENABLED_FTM := true
+MM_AUDIO_ENABLED_FTM := false
TARGET_USES_QCOM_MM_AUDIO := true
-AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
+AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := false
AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true
BOARD_SUPPORTS_QAHW := false
-AUDIO_FEATURE_ENABLED_RAS := true
-AUDIO_FEATURE_ENABLED_SND_MONITOR := false
+AUDIO_FEATURE_ENABLED_RAS := false
AUDIO_FEATURE_ENABLED_DLKM := true
AUDIO_FEATURE_ENABLED_USB_BURST_MODE := false
AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true
AUDIO_FEATURE_ENABLED_BATTERY_LISTENER := false
+AUDIO_FEATURE_ENABLED_SOFT_VOLUME:= true
##AUDIO_FEATURE_FLAGS
+ifneq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+AUDIO_HARDWARE += audio.a2dp.default
+endif
+AUDIO_HARDWARE += audio.usb.default
+AUDIO_HARDWARE += audio.r_submix.default
+AUDIO_HARDWARE += audio.primary.msmnile
+
+#HAL Wrapper
+AUDIO_WRAPPER := libqahw
+AUDIO_WRAPPER += libqahwwrapper
+
+#HAL Test app
+AUDIO_HAL_TEST_APPS := hal_play_test
+AUDIO_HAL_TEST_APPS += hal_rec_test
+
+PRODUCT_PACKAGES += $(AUDIO_HARDWARE)
+PRODUCT_PACKAGES += $(AUDIO_WRAPPER)
+PRODUCT_PACKAGES += $(AUDIO_HAL_TEST_APPS)
+
AUDIO_FEATURE_ENABLED_AUTO_HAL := true
AUDIO_FEATURE_ENABLED_EXT_HW_PLUGIN := true
AUDIO_FEATURE_ENABLED_AUDIO_CONTROL_HAL := true
+ifneq ( ,$(filter T Tiramisu 13, $(PLATFORM_VERSION)))
+AUDIO_FEATURE_ENABLED_AUDIO_CONTROL_HAL_AIDL := true
+endif
ifneq ($(ENABLE_HYP),true)
AUDIO_FEATURE_ENABLED_AUTO_AUDIOD := true
-ifeq ($(TARGET_PRODUCT),msmnile_au)
+ifneq ( ,$(filter msmnile_au msmnile_au_km4 msmnile_au_ar msmnile_tb, $(TARGET_PRODUCT)))
AUDIO_FEATURE_ENABLED_DAEMON_SUPPORT := true
else
AUDIO_FEATURE_ENABLED_DAEMON_SUPPORT := false
endif
-
+AUDIO_FEATURE_ENABLED_SND_MONITOR := false
+else
+AUDIO_FEATURE_ENABLED_SND_MONITOR := true
+endif
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+AUDIO_FEATURE_ENABLED_SILENT_BOOT := true
endif
AUDIO_FEATURE_ENABLED_FM_TUNER_EXT := true
AUDIO_FEATURE_ENABLED_ICC := true
+ifneq ( ,$(filter S 12 T 13, $(PLATFORM_VERSION)))
+AUDIO_FEATURE_ENABLED_POWER_POLICY := true
+endif
+ifneq ( ,$(filter msmnile_gvmq msmnile_au msmnile_au_km4 msmnile_au_ar, $(TARGET_BOARD_PLATFORM)$(TARGET_BOARD_SUFFIX)$(TARGET_BOARD_DERIVATIVE_SUFFIX)))
+AUDIO_FEATURE_ENABLED_AUDIO_PARSERS := true
+endif
##AUTOMOTIVE_AUDIO_FEATURE_FLAGS
ifneq ($(strip $(TARGET_USES_RRO)), true)
@@ -107,19 +150,27 @@
DEVICE_PACKAGE_OVERLAYS += vendor/qcom/opensource/audio-hal/primary-hal/configs/common/overlay
endif
+ifneq ( ,$(filter T 13, $(PLATFORM_VERSION)))
+ifneq ( ,$(filter msmnile_au msmnile_au_km4 msmnile_au_ar, $(TARGET_BOARD_PLATFORM)$(TARGET_BOARD_SUFFIX))$(TARGET_BOARD_DERIVATIVE_SUFFIX))
+AUDIO_FEATURE_MMAP_AAUDIO = true
+endif
+endif
+
#Automotive audio specific device overlays
DEVICE_PACKAGE_OVERLAYS += vendor/qcom/opensource/audio-hal/primary-hal/configs/common_au/overlay
PRODUCT_COPY_FILES += \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/mixer_paths_adp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_adp.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/mixer_paths_adp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_adp.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/mixer_paths_sa8295_adp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_sa8295_adp.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/audio_platform_info_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_qrd.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/audio_platform_info_sa8295.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_sa8295.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/mixer_paths_custom.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_custom.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
@@ -127,6 +178,10 @@
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml
+#Automotive audio card defs dummpy files for elite and ar co-exit.
+PRODUCT_COPY_FILES += \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/card-defs-dummy.xml:$(TARGET_COPY_OUT_VENDOR)/etc/card-defs-dummy.xml
+
#XML Audio configuration files
ifneq ($(TARGET_USES_AOSP_FOR_AUDIO), true)
PRODUCT_COPY_FILES += \
@@ -261,8 +316,18 @@
ro.bluetooth.a2dp_offload.supported=true
# Disable A2DP offload
+ifeq ($(ENABLE_HYP), true)
+ifeq ($(TARGET_GVMGH_SPECIFIC), false)
+PRODUCT_PROPERTY_OVERRIDES += \
+persist.bluetooth.a2dp_offload.disabled=true
+else
PRODUCT_PROPERTY_OVERRIDES += \
persist.bluetooth.a2dp_offload.disabled=false
+endif
+else
+PRODUCT_PROPERTY_OVERRIDES += \
+persist.bluetooth.a2dp_offload.disabled=false
+endif
# A2DP offload DSP supported encoder list
PRODUCT_PROPERTY_OVERRIDES += \
@@ -276,7 +341,7 @@
#enable hw aac encoder by default
PRODUCT_PROPERTY_OVERRIDES += \
-vendor.audio.hw.aac.encoder=true
+vendor.audio.hw.aac.encoder=false
#force offload using hardware decoders for FLAC, WMA & APE
PRODUCT_PROPERTY_OVERRIDES += \
@@ -315,11 +380,14 @@
vendor.audio.hal.output.suspend.supported=false
#Enable AAudio MMAP/NOIRQ data path
+#1 is AAUDIO_POLICY_NEVER so it will not try MMAP
#2 is AAUDIO_POLICY_AUTO so it will try MMAP then fallback to Legacy path
+ifneq ($(TARGET_BOARD_PLATFORM)$(TARGET_BOARD_SUFFIX), msmnile_gvmq)
PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_policy=2
#Allow EXCLUSIVE then fall back to SHARED.
PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_exclusive_policy=2
PRODUCT_PROPERTY_OVERRIDES += aaudio.hw_burst_min_usec=2000
+endif
#enable mirror-link feature
PRODUCT_PROPERTY_OVERRIDES += \
@@ -354,7 +422,7 @@
vendor.audio.feature.compress_in.enable=false \
vendor.audio.feature.compress_meta_data.enable=false \
vendor.audio.feature.compr_voip.enable=false \
-vendor.audio.feature.concurrent_capture.enable=true \
+vendor.audio.feature.concurrent_capture.enable=true \
vendor.audio.feature.custom_stereo.enable=false \
vendor.audio.feature.display_port.enable=false \
vendor.audio.feature.dsm_feedback.enable=false \
@@ -387,9 +455,17 @@
vendor.audio.feature.vbat.enable=false \
vendor.audio.feature.wsa.enable=false \
vendor.audio.feature.audiozoom.enable=false \
-vendor.audio.feature.snd_mon.enable=false \
vendor.audio.feature.auto_hal.enable=true \
-vendor.audio.feature.synth.enable=true
+vendor.audio.feature.synth.enable=true \
+vendor.audio.feature.powerpolicy.enable=true \
+vendor.audio.feature.concurrent_pcm_record.enable=true
+ifeq ($(AUDIO_FEATURE_ENABLED_SND_MONITOR), true)
+PRODUCT_ODM_PROPERTIES += \
+vendor.audio.feature.snd_mon.enable=true
+else
+PRODUCT_ODM_PROPERTIES += \
+vendor.audio.feature.snd_mon.enable=false
+endif
else
# Non-Generic ODM varient related
PRODUCT_ODM_PROPERTIES += \
@@ -434,9 +510,17 @@
vendor.audio.feature.vbat.enable=true \
vendor.audio.feature.wsa.enable=false \
vendor.audio.feature.audiozoom.enable=false \
-vendor.audio.feature.snd_mon.enable=false \
vendor.audio.feature.auto_hal.enable=true \
-vendor.audio.feature.synth.enable=true
+vendor.audio.feature.synth.enable=true \
+vendor.audio.feature.powerpolicy.enable=true \
+vendor.audio.feature.concurrent_pcm_record.enable=true
+ifeq ($(AUDIO_FEATURE_ENABLED_SND_MONITOR), true)
+PRODUCT_ODM_PROPERTIES += \
+vendor.audio.feature.snd_mon.enable=true
+else
+PRODUCT_ODM_PROPERTIES += \
+vendor.audio.feature.snd_mon.enable=false
+endif
endif
# for HIDL related packages
@@ -444,7 +528,6 @@
android.hardware.audio@2.0-service \
android.hardware.audio@2.0-impl \
android.hardware.audio.effect@2.0-impl \
- android.hardware.soundtrigger@2.1-impl \
android.hardware.audio@4.0 \
android.hardware.audio.common@4.0 \
android.hardware.audio.common@4.0-util \
@@ -470,6 +553,10 @@
android.hardware.audio.effect@6.0 \
android.hardware.audio.effect@6.0-impl
+# enable sound trigger hidl hal 2.3
+PRODUCT_PACKAGES += \
+ android.hardware.soundtrigger@2.3-impl
+
PRODUCT_PACKAGES_ENG += \
VoicePrintTest \
VoicePrintDemo
@@ -478,18 +565,11 @@
AudioSettings
# for HIDL related audiocontrol packages
+ifeq ( ,$(filter 12 13 T U UpsideDownCake 14,$(PLATFORM_VERSION)))
PRODUCT_PACKAGES += \
android.hardware.automotive.audiocontrol@2.0-service \
android.hardware.automotive.audiocontrol@2.0
-
-# enable sound trigger hidl hal 2.2
-PRODUCT_PACKAGES += \
- android.hardware.soundtrigger@2.2-impl \
-
-# enable sound trigger hidl hal 2.3
-PRODUCT_PACKAGES += \
- android.hardware.soundtrigger@2.3-impl \
-
+endif
ifeq ($(ENABLE_HYP),true)
PRODUCT_PROPERTY_OVERRIDES += \
@@ -503,3 +583,6 @@
persist.vendor.audio.calfile7=/vendor/etc/acdbdata/ADP/Headset_cal.acdb\
persist.vendor.audio.calfile8=/vendor/etc/acdbdata/ADP/Speaker_cal.acdb
endif
+
+#Audio sample file for early services
+PRODUCT_COPY_FILES += device/qcom/msmnile_au/bike_bell.wav:$(TARGET_COPY_OUT_VENDOR)/etc/bike_bell.wav
diff --git a/configs/msmnile_au/sound_trigger_platform_info.xml b/configs/msmnile_au/sound_trigger_platform_info.xml
index 6efdcdd..a7d0459 100644
--- a/configs/msmnile_au/sound_trigger_platform_info.xml
+++ b/configs/msmnile_au/sound_trigger_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2013-2021, 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 -->
@@ -26,18 +26,20 @@
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<sound_trigger_platform_info>
- <param version="0x0103" /> <!-- this must be the first param -->
+ <param version="0x0106" /> <!-- this must be the first param -->
<!--- Version History: -->
<!--- 0x0101: Legacy version. -->
<!--- 0x0102: Includes acdb_ids param with the gcs_usecase tag. This matches -->
<!--- the gcs_usecase with the acdb device that uses it. -->
<!--- 0x0103: app_type and in_channels added to <lsm usecase> and out_channels -->
<!--- added to <adm_config> -->
+<!--- 0x0104: instance id support for both WDSP<CPE> and ADSP lsm usecases -->
+<!--- 0x0105: Select <lsm_usecase> based on capture device -->
+<!--- 0x0106: Add module_params tag to support multiple module and param ids -->
+<!--- per <lsm_usecase> -->
<common_config>
- <param implementer_version="0x0100" />
- <param max_cpe_sessions="1" />
- <param max_wdsp_sessions="2" />
+ <param implementer_version="0x0102" />
<param max_ape_sessions="8" />
<param enable_failure_detection="false" />
<param support_device_switch="false" />
@@ -51,6 +53,7 @@
<param backend_dai_name="TERT_TDM_TX_0" />
<!-- Param used to indicate if SVA has dedicated SLIM ports -->
<param dedicated_sva_path="true" />
+ <param platform_lpi_enable="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="false" />
<param concurrent_voip_call="false" />
@@ -76,27 +79,16 @@
<!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
- <param execution_type="ADSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
- <param library="libsmwrapper.so" />
- <param max_cpe_phrases="6" />
- <param max_cpe_users="3" />
+ <param execution_type="ADSP" />
+ <param merge_first_stage_sound_models="false"/>
<param max_ape_phrases="20" />
<param max_ape_users="10" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
+ <param dam_token_id="1"/>
- <!-- adm_cfg_profile should match with the one defined under adm_config -->
- <!-- Set it to NONE if LSM directly connects to AFE -->
- <param adm_cfg_profile="FFECNS" />
- <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
- <!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
- <!-- is one of FLUENCE, FLUENCE_STEREO, FFECNS values -->
- <param fluence_type="FLUENCE_QMIC" />
- <!-- wdsp_fluence_type: fluence disabled: "NONE" -->
- <!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_TMIC", "FLUENCE_QMIC" -->
- <param wdsp_fluence_type="NONE" />
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
@@ -114,66 +106,58 @@
<param bit_wdith="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
- <gcs_usecase>
- <param uid="0x1" />
- <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
- <!-- module_id, instance_id, param_id -->
- <param load_sound_model_ids="0x00012C0D, 0x2, 0x00012C14" />
- <param confidence_levels_ids="0x00012C0D, 0x2, 0x00012C28" />
- <param detection_event_ids="0x00012C0D, 0x2, 0x00012B05" />
- <param read_cmd_ids="0x00020013, 0x2, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x2, 0x00020016" />
- <param custom_config_ids="0x00012C0D, 0x2, 0x00012C20" />
- <param det_event_type_ids="0x00012C0D, 0x2, 0x00012C2A" />
- </gcs_usecase>
- <gcs_usecase>
- <param uid="0x2" />
- <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
- <param load_sound_model_ids="0x00012C0D, 0x3, 0x00012C14" />
- <param confidence_levels_ids="0x00012C0D, 0x3, 0x00012C28" />
- <param detection_event_ids="0x00012C0D, 0x3, 0x00012B05" />
- <param read_cmd_ids="0x00020013, 0x3, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x3, 0x00020016" />
- <param custom_config_ids="0x00012C0D, 0x3, 0x00012C20" />
- <param det_event_type_ids="0x00012C0D, 0x3, 0x00012C2A" />
- </gcs_usecase>
- <gcs_usecase>
- <param uid="0x7" />
- <param acdb_devices="DEVICE_HANDSET_DMIC_CPE" />
- <param load_sound_model_ids="0x00012C0D, 0x7, 0x00012C14" />
- <param confidence_levels_ids="0x00012C0D, 0x7, 0x00012C28" />
- <param detection_event_ids="0x00012C0D, 0x7, 0x00012B05" />
- <param read_cmd_ids="0x00020013, 0x7, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x7, 0x00020016" />
- <param custom_config_ids="0x00012C0D, 0x7, 0x00012C20" />
- <param det_event_type_ids="0x00012C0D, 0x7, 0x00012C2A" />
- </gcs_usecase>
- <gcs_usecase>
- <param uid="0x8" />
- <param acdb_devices="DEVICE_HANDSET_DMIC_CPE" />
- <param load_sound_model_ids="0x00012C0D, 0x8, 0x00012C14" />
- <param confidence_levels_ids="0x00012C0D, 0x8, 0x00012C28" />
- <param detection_event_ids="0x00012C0D, 0x8, 0x00012B05" />
- <param read_cmd_ids="0x00020013, 0x8, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x8, 0x00020016" />
- <param custom_config_ids="0x00012C0D, 0x8, 0x00012C20" />
- <param det_event_type_ids="0x00012C0D, 0x8, 0x00012C2A" />
- </gcs_usecase>
+ <arm_ss_usecase>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x8" />
+ <param module_lib="libcapiv2svarnn.so"/>
+ <param sample_rate="16000"/>
+ <param bit_wdith="16"/>
+ <param channel_count="1"/>
+ </arm_ss_usecase>
<!-- Module and param ids with which the algorithm is integrated
in non-graphite firmware (note these must come after gcs params)
Extends flexibility to have different ids based on execution type.
valid execution_type values: "WDSP" "ADSP" -->
<lsm_usecase>
+ <param capture_device="HANDSET" />
+ <!-- adm_cfg_profile should match with the one defined under adm_config -->
+ <!-- Set it to NONE if LSM directly connects to AFE -->
+ <param adm_cfg_profile="FFECNS" />
+ <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
+ <!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
+ <!-- is one of FLUENCE, FLUENCE_STEREO, FFECNS values -->
+ <param fluence_type="FLUENCE_QMIC" />
<param execution_mode="ADSP" />
+ <!-- lpi_mode: "NON_LPI_BARGE_IN", "NON_LPI", "LPI" -->
+ <!-- NON_LPI_BARGE_IN: Default non-LPI mode type. lsm_usecase -->
+ <!-- must be present with this mode type to handle barge-in. -->
+ <!-- NON_LPI: If another lsm_usecase is present with this mode -->
+ <!-- type, it will be used for non-LPI non-barge-in usecases. -->
+ <!-- If not present, NON_LPI_BARGE_IN mode type will be used. -->
+ <!-- LPI: This mode type will be used for LPI usecases. -->
<param app_type="2" /> <!-- app type used in ACDB -->
+ <param pdk5_app_type="1" />
<param in_channels="4"/> <!-- Module input channels -->
- <param load_sound_model_ids="0x00012C1C, 0x00012C14" />
- <param unload_sound_model_ids="0x00012C1C, 0x00012C15" />
- <param confidence_levels_ids="0x00012C1C, 0x00012C07" />
- <param operation_mode_ids="0x00012C1C, 0x00012C02" />
- <param polling_enable_ids="0x00012C1C, 0x00012C1B" />
- <param custom_config_ids="0x00012C1C, 0x00012C20" />
- <param det_event_type_ids="0x00012C1C, 0x00012C2C" />
+ <module_params>
+ <param module_type="GMM" />
+ <param load_sound_model_ids="0x00012C1C, 0x0, 0x00012C14" />
+ <param unload_sound_model_ids="0x00012C1C, 0x0, 0x00012C15" />
+ <param confidence_levels_ids="0x00012C1C, 0x0, 0x00012C07" />
+ <param operation_mode_ids="0x00012C1C, 0x0, 0x00012C02" />
+ <param polling_enable_ids="0x00012C1C, 0x0, 0x00012C1B" />
+ <param custom_config_ids="0x00012C1C, 0x0, 0x00012C20" />
+ <param det_event_type_ids="0x00012C1C, 0x0, 0x00012C2C" />
+ <param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ </module_params>
+ <module_params>
+ <param module_type="PDK5" />
+ <param load_sound_model_ids="0x00012C35, 0x0, 0x00012C36" />
+ <param unload_sound_model_ids="0x00012C35, 0x0, 0x00012C37" />
+ <param confidence_levels_ids="0x00012C35, 0x0, 0x00012C38" />
+ <param custom_config_ids="0x00012C35, 0x0, 0x00012C20" />
+ <param det_event_type_ids="0x00012C35, 0x0, 0x00012C2C" />
+ <param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ </module_params>
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
@@ -182,17 +166,12 @@
transfer mode -->
<param capture_keyword="PCM_packet, RT, 2000" />
<param client_capture_read_delay="2000" />
- <param lpi_enable="false" />
- <param concurrent_capture="true" />
- <param concurrent_voice_call="false" />
- <param concurrent_voip_call="false" />
</sound_model_config>
- <!-- QTI Music Detection !-->
+ <!-- QTI Music Detection !-->
<sound_model_config>
<param vendor_uuid="876c1b46-9d4d-40cc-a4fd-4d5ec7a80e47" />
<param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
- <param library="libsmwrapper.so" />
<param max_cpe_phrases="1" />
<param max_cpe_users="1" />
<param max_ape_phrases="1" />
@@ -211,18 +190,6 @@
<!-- wdsp_fluence_type: fluence disabled: "NONE" -->
<!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_TMIC", "FLUENCE_QMIC" -->
<param wdsp_fluence_type="NONE" />
- <gcs_usecase>
- <param uid="0x5" />
- <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
- <!-- module_id, instance_id, param_id -->
- <param load_sound_model_ids="0x00012C2E, 0x6, 0x00012C14" />
- <param confidence_levels_ids="0x00012C2E, 0x6, 0x00012C28" />
- <param detection_event_ids="0x00012C2E, 0x6, 0x00012B05" />
- <param read_cmd_ids="0x00020013, 0x6, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x6, 0x00020016" />
- <param custom_config_ids="0x00012C2E, 0x6, 0x00012C2D" />
- <param det_event_type_ids="0x00012C2E, 0x6, 0x00012C2C" />
- </gcs_usecase>
<!-- Module and param ids with which the algorithm is integrated
in non-graphite firmware (note these must come after gcs params)
Extends flexibility to have different ids based on execution type.
@@ -231,11 +198,13 @@
<param execution_mode="ADSP" />
<param app_type="4" /> <!-- app type for MD used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
- <param load_sound_model_ids="0x00012C22, 0x00012C14" />
- <param unload_sound_model_ids="0x00012C22, 0x00012C15" />
- <param confidence_levels_ids="0x00012C22, 0x00012C07" />
- <param det_event_type_ids="0x00012C22, 0x00012C2C" />
- <param custom_config_ids="0x00012C22, 0x00012C30" />
+ <module_params>
+ <param load_sound_model_ids="0x00012C22, 0x0, 0x00012C14" />
+ <param unload_sound_model_ids="0x00012C22, 0x0, 0x00012C15" />
+ <param confidence_levels_ids="0x00012C22, 0x0, 0x00012C07" />
+ <param det_event_type_ids="0x00012C22, 0x0, 0x00012C2C" />
+ <param custom_config_ids="0x00012C22, 0x0, 0x00012C30" />
+ </module_params>
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
@@ -250,7 +219,6 @@
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
<param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
- <param library="none" />
<param max_cpe_phrases="1" />
<param max_cpe_users="1" />
<param max_ape_phrases="1" />
@@ -269,39 +237,18 @@
<!-- wdsp_fluence_type: fluence disabled: "NONE" -->
<!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_QMIC" -->
<param wdsp_fluence_type="NONE" />
- <gcs_usecase>
- <param uid="0x3" />
- <param acdb_devices="DEVICE_HANDSET_MIC_CPE" />
- <param load_sound_model_ids="0x18000001, 0x4, 0x18000100" />
- <param start_engine_ids="0x18000001, 0x4, 0x18000101" />
- <param confidence_levels_ids="0x18000001, 0x4, 0x00012C28" />
- <param detection_event_ids="0x18000001, 0x4, 0x00012C29" />
- <param custom_config_ids="0x18000001, 0x4, 0x00012C20" />
- <param read_cmd_ids="0x00020013, 0x4, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x4, 0x00020016" />
- </gcs_usecase>
- <gcs_usecase>
- <param uid="0x4" />
- <param acdb_devices="DEVICE_HANDSET_DMIC_CPE" />
- <param load_sound_model_ids="0x18000001, 0x5, 0x18000100" />
- <param start_engine_ids="0x18000001, 0x5, 0x18000101" />
- <param confidence_levels_ids="0x18000001, 0x5, 0x00012C28" />
- <param detection_event_ids="0x18000001, 0x5, 0x00012C29" />
- <param custom_config_ids="0x18000001, 0x5, 0x00012C20" />
- <param read_cmd_ids="0x00020013, 0x5, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x5, 0x00020016" />
- </gcs_usecase>
-
<lsm_usecase>
<param execution_mode="ADSP" />
<param app_type="3" /> <!-- app type used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
- <param load_sound_model_ids="0x18000001, 0x00012C14" />
- <param unload_sound_model_ids="0x18000001, 0x00012C15" />
- <param confidence_levels_ids="0x18000001, 0x00012C07" />
- <param operation_mode_ids="0x18000001, 0x00012C02" />
- <param polling_enable_ids="0x18000001, 0x00012C1B" />
- <param custom_config_ids="0x18000001, 0x00012C20" />
+ <module_params>
+ <param load_sound_model_ids="0x18000001, 0x0, 0x00012C14" />
+ <param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
+ <param confidence_levels_ids="0x18000001, 0x0, 0x00012C07" />
+ <param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
+ <param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
+ <param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
+ </module_params>
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
@@ -316,20 +263,31 @@
<sound_model_config>
<param vendor_uuid="9f6ad62a-1f0b-11e7-87c5-40a8f03d3f15" />
<param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
- <param library="none" />
+ <param max_ape_phrases="1" />
+ <param max_ape_users="1" />
+ <!-- Profile specific data which the algorithm can support -->
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param out_channels="1"/> <!-- Module output channels -->
<!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_QMIC" -->
<param wdsp_fluence_type="NONE" />
- <gcs_usecase>
- <param uid="0x6" />
- <param acdb_devices="DEVICE_HANDSET_MIC_CPE" />
- <param load_sound_model_ids="0x18000001, 0x4, 0x18000102" />
- <param start_engine_ids="0x18000001, 0x4, 0x18000103" />
- <param confidence_levels_ids="0x18000001, 0x4, 0x00012C28" />
- <param detection_event_ids="0x18000001, 0x4, 0x00012C29" />
- <param custom_config_ids="0x18000001, 0x4, 0x00012C20" />
- <param read_cmd_ids="0x00020013, 0x7, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x7, 0x00020016" />
- </gcs_usecase>
+ <!-- adm_cfg_profile should match with the one defined under adm_config -->
+ <!-- Set it to NONE if LSM directly connects to AFE -->
+ <param adm_cfg_profile="NONE" />
+ <param fluence_type="FLUENCE_DMIC" />
+ <lsm_usecase>
+ <param execution_mode="ADSP" />
+ <param app_type="3" /> <!-- app type used in ACDB -->
+ <param in_channels="1"/> <!-- Module input channels -->
+ <module_params>
+ <param load_sound_model_ids="0x18000001, 0x0, 0x00012C14" />
+ <param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
+ <param confidence_levels_ids="0x18000001, 0x0, 0x00012C07" />
+ <param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
+ <param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
+ <param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
+ </module_params>
+ </lsm_usecase>
<!-- kw_duration is in milli seconds. It is valid only for FTRT
transfer mode -->
<param capture_keyword="MULAW_raw, FTRT, 5000" />
diff --git a/configs/msmsteppe/audio_policy_configuration.xml b/configs/msmsteppe/audio_policy_configuration.xml
index 4629b81..4442be8 100644
--- a/configs/msmsteppe/audio_policy_configuration.xml
+++ b/configs/msmsteppe/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -80,8 +116,6 @@
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
- <profile name="" format="dynamic"
- samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
@@ -187,7 +221,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
@@ -216,7 +250,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -252,11 +286,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -279,11 +313,11 @@
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
@@ -356,7 +390,7 @@
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
- sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="record_24"
diff --git a/configs/msmsteppe/mixer_paths_idp.xml b/configs/msmsteppe/mixer_paths_idp.xml
index 382ec63..55eed1e 100644
--- a/configs/msmsteppe/mixer_paths_idp.xml
+++ b/configs/msmsteppe/mixer_paths_idp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -732,6 +732,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/msmsteppe/mixer_paths_ipc.xml b/configs/msmsteppe/mixer_paths_ipc.xml
new file mode 100644
index 0000000..34d20b5
--- /dev/null
+++ b/configs/msmsteppe/mixer_paths_ipc.xml
@@ -0,0 +1,2999 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2015-2021, The Linux Foundation. All rights reserved. -->
+<!-- -->
+<!-- Redistribution and use in source and binary forms, with or without -->
+<!-- modification, are permitted provided that the following conditions are -->
+<!-- met: -->
+<!-- * Redistributions of source code must retain the above copyright -->
+<!-- notice, this list of conditions and the following disclaimer. -->
+<!-- * Redistributions in binary form must reproduce the above -->
+<!-- copyright notice, this list of conditions and the following -->
+<!-- disclaimer in the documentation and/or other materials provided -->
+<!-- with the distribution. -->
+<!-- * Neither the name of The Linux Foundation nor the names of its -->
+<!-- contributors may be used to endorse or promote products derived -->
+<!-- from this software without specific prior written permission. -->
+<!-- -->
+<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
+<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
+<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
+<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
+<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
+<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
+<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
+<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
+<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
+<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+
+<!-- Changes from Qualcomm Innovation Center are provided under the following license: -->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -->
+<!-- SPDX-License-Identifier: BSD-3-Clause-Clear -->
+
+<mixer>
+ <!-- These are the initial mixer settings -->
+ <ctl name="Voice Rx Device Mute" id="0" value="0" />
+ <ctl name="Voice Rx Device Mute" id="1" value="-1" />
+ <ctl name="Voice Rx Device Mute" id="2" value="20" />
+ <ctl name="Voice Tx Mute" id="0" value="0" />
+ <ctl name="Voice Tx Mute" id="1" value="-1" />
+ <ctl name="Voice Tx Mute" id="2" value="500" />
+ <ctl name="Voice Rx Gain" id="0" value="0" />
+ <ctl name="Voice Rx Gain" id="1" value="-1" />
+ <ctl name="Voice Rx Gain" id="2" value="20" />
+ <ctl name="Voice Sidetone Enable" value="0" />
+ <ctl name="Voip Tx Mute" id="0" value="0" />
+ <ctl name="Voip Tx Mute" id="1" value="500" />
+ <ctl name="Voip Rx Gain" id="0" value="0" />
+ <ctl name="Voip Rx Gain" id="1" value="20" />
+ <ctl name="Voip Mode Config" value="12" />
+ <ctl name="Voip Rate Config" value="0" />
+ <ctl name="Voip Evrc Min Max Rate Config" id="0" value="1" />
+ <ctl name="Voip Evrc Min Max Rate Config" id="1" value="4" />
+ <ctl name="Voip Dtx Mode" value="0" />
+ <ctl name="TTY Mode" value="OFF" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia1" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia3" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia6" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia2" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia3" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia2" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia3" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+ <ctl name="WSA_CDC_DMA_RX_0 Channels" value="One" />
+ <ctl name="RX_CDC_DMA_RX_0 Channels" value="One" />
+ <ctl name="VI_FEED_TX Channels" value="Two" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Format" value="UNPACKED" />
+ <ctl name="WSA_CDC_DMA_TX_0 Format" value="UNPACKED" />
+ <ctl name="RX_CDC_DMA_RX_0 Format" value="UNPACKED" />
+ <ctl name="TX_CDC_DMA_TX_3 Format" value="UNPACKED" />
+ <!-- HFP start -->
+ <ctl name="HFP_SLIM7_UL_HL Switch" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Port Mixer SLIM_7_TX" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Port Mixer SLIM_7_TX" value="0" />
+ <!-- HFP end -->
+ <!-- echo reference -->
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="None" />
+ <ctl name="EC Reference Channels" value="Zero"/>
+ <!-- usb headset -->
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="MultiMedia1 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="0" />
+ <!-- usb headset end -->
+ <!-- fm -->
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="0" />
+ <ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0_DL_HL Switch" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_8_TX" value="0" />
+ <ctl name="MultiMedia2 Mixer SLIM_8_TX" value="0" />
+ <!-- fm end -->
+
+ <!-- Multimode Voice1 -->
+ <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="0" />
+ <!-- Multimode Voice1 BTSCO -->
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="0" />
+ <!-- Multimode Voice1 USB headset -->
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="0" />
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="0" />
+ <!-- Multimode Voice1 Display-Port -->
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="0" />
+ <!-- Multimode Voice1 proxy-Port -->
+ <ctl name="PROXY_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer PROXY_TX_MMode1" value="0" />
+ <!-- Miltimode Voice1 end-->
+
+ <!-- Multimode Voice2 -->
+ <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="0" />
+ <!-- Multimode Voice2 BTSCO -->
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 USB headset -->
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="0" />
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 Display-Port -->
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="0" />
+ <!-- Multimode Voice2 proxy-Port -->
+ <ctl name="PROXY_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer PROXY_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 end-->
+
+ <!-- Voice external ec. reference -->
+ <ctl name="VOC_EXT_EC MUX" value="NONE" />
+ <!-- Voice external ec. reference end -->
+
+ <!-- RT Proxy Cal -->
+ <ctl name="RT_PROXY_1_RX SetCalMode" value="CAL_MODE_NONE" />
+ <ctl name="RT_PROXY_1_TX SetCalMode" value="CAL_MODE_NONE" />
+ <!-- RT Proxy Cal end -->
+
+ <!-- Incall Recording -->
+ <ctl name="MultiMedia9 Mixer VOC_REC_UL" value="0" />
+ <ctl name="MultiMedia9 Mixer VOC_REC_DL" value="0" />
+ <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="0" />
+ <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="0" />
+ <!-- Incall Recording End -->
+
+ <!-- Incall Music -->
+ <ctl name="Incall_Music Audio Mixer MultiMedia2" value="0" />
+ <ctl name="Incall_Music Audio Mixer MultiMedia9" value="0" />
+ <!-- Incall Music End -->
+
+ <!-- compress-voip-call start -->
+ <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer Voip" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer TX_CDC_DMA_TX_3_Voip" value="0" />
+ <ctl name="SLIM_7_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="0" />
+ <ctl name="AFE_PCM_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value="0" />
+ <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="0" />
+ <!-- compress-voip-call end-->
+
+ <!-- Audio BTSCO -->
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia6" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
+ <!-- audio record compress-->
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
+ <!-- audio record compress end-->
+
+ <!-- split a2dp -->
+ <ctl name="BT SampleRate" value="KHZ_8" />
+ <ctl name="AFE Input Channels" value="Zero" />
+ <ctl name="SLIM7_RX ADM Channels" value="Zero" />
+ <!-- split a2dp end-->
+
+ <!-- ADSP testfwk -->
+ <ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="0" />
+ <ctl name="RX_CDC_DMA_RX_0_DL_HL Switch" value="0" />
+ <!-- ADSP testfwk end-->
+
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia3" value="0" />
+
+ <!-- Codec controls -->
+ <!-- WSA controls -->
+ <ctl name="WSA RX0 MUX" value="ZERO" />
+ <ctl name="WSA RX1 MUX" value="ZERO" />
+ <ctl name="WSA_RX0 INP0" value="ZERO" />
+ <ctl name="WSA_RX1 INP0" value="ZERO" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA_RX_0_VI_FB_LCH_MUX" value="ZERO" />
+ <ctl name="WSA_RX_0_VI_FB_RCH_MUX" value="ZERO" />
+ <ctl name="SpkrLeft COMP Switch" value="0" />
+ <ctl name="SpkrRight COMP Switch" value="0" />
+ <ctl name="SpkrLeft BOOST Switch" value="0" />
+ <ctl name="SpkrRight BOOST Switch" value="0" />
+ <ctl name="SpkrLeft VISENSE Switch" value="0" />
+ <ctl name="SpkrRight VISENSE Switch" value="0" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
+
+ <!-- RX Controls -->
+ <ctl name="RX_MACRO RX0 MUX" value="ZERO" />
+ <ctl name="RX_MACRO RX1 MUX" value="ZERO" />
+ <ctl name="RX_Native" value="OFF" />
+ <ctl name="RX_CDC_DMA_RX_0 Channels" value="One" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="0" />
+ <ctl name="RX INT0 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="0" />
+ <ctl name="RX_COMP2 Switch" value="0" />
+ <ctl name="HPHL_COMP Switch" value="0" />
+ <ctl name="HPHR_COMP Switch" value="0" />
+ <ctl name="EAR_RDAC Switch" value="0" />
+ <ctl name="HPHL_RDAC Switch" value="0" />
+ <ctl name="HPHR_RDAC Switch" value="0" />
+ <ctl name="RDAC3_MUX" value="ZERO" />
+
+ <!-- TX Controls -->
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+ <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="ADC2_MIXER Switch" value="0" />
+ <ctl name="ADC2 MUX" value="ZERO" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC7" value="0" />
+ <ctl name="TX DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX0" value="ZERO" />
+ <ctl name="TX SMIC MUX0" value="ZERO" />
+ <ctl name="TX DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX1" value="ZERO" />
+ <ctl name="TX SMIC MUX1" value="ZERO" />
+ <ctl name="TX DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX2" value="ZERO" />
+ <ctl name="TX SMIC MUX2" value="ZERO" />
+ <ctl name="TX DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX3" value="ZERO" />
+ <ctl name="TX SMIC MUX3" value="ZERO" />
+ <ctl name="TX DEC4 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX4" value="ZERO" />
+ <ctl name="TX SMIC MUX4" value="ZERO" />
+ <ctl name="TX DEC5 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX5" value="ZERO" />
+ <ctl name="TX SMIC MUX5" value="ZERO" />
+ <ctl name="TX DEC6 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX6" value="ZERO" />
+ <ctl name="TX SMIC MUX6" value="ZERO" />
+ <ctl name="TX DEC7 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX7" value="ZERO" />
+ <ctl name="TX SMIC MUX7" value="ZERO" />
+
+ <!-- Volume controls -->
+ <ctl name="WSA_RX0 Digital Volume" value="84" />
+ <ctl name="WSA_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX0 Digital Volume" value="84" />
+ <ctl name="RX_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX2 Digital Volume" value="84" />
+ <ctl name="HPHL Volume" value="20" />
+ <ctl name="HPHR Volume" value="20" />
+ <ctl name="EAR SPKR PA Gain" value="G_DEFAULT" />
+
+ <ctl name="TX_DEC0 Volume" value="84" />
+ <ctl name="TX_DEC1 Volume" value="84" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="84" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ <ctl name="TX_DEC5 Volume" value="84" />
+ <ctl name="TX_DEC6 Volume" value="84" />
+ <ctl name="TX_DEC7 Volume" value="84" />
+
+ <ctl name="ADC1 Volume" value="12" />
+ <ctl name="ADC2 Volume" value="12" />
+ <ctl name="ADC3 Volume" value="12" />
+
+ <!-- Compander controls -->
+ <ctl name="WSA_COMP1 Switch" value="0" />
+ <ctl name="WSA_COMP2 Switch" value="0" />
+ <ctl name="COMP7 Switch" value="0" />
+ <ctl name="COMP8 Switch" value="0" />
+
+ <!-- Headphone Default mode - AB -->
+ <ctl name="RX HPH Mode" value="CLS_AB" />
+
+ <!-- IIR/voice anc -->
+ <ctl name="IIR0 Band1" id ="0" value="268435456" />
+ <ctl name="IIR0 Band1" id ="1" value="0" />
+ <ctl name="IIR0 Band1" id ="2" value="0" />
+ <ctl name="IIR0 Band1" id ="3" value="0" />
+ <ctl name="IIR0 Band1" id ="4" value="0" />
+ <ctl name="IIR0 Band2" id ="0" value="268435456" />
+ <ctl name="IIR0 Band2" id ="1" value="0" />
+ <ctl name="IIR0 Band2" id ="2" value="0" />
+ <ctl name="IIR0 Band2" id ="3" value="0" />
+ <ctl name="IIR0 Band2" id ="4" value="0" />
+ <ctl name="IIR0 Band3" id ="0" value="268435456" />
+ <ctl name="IIR0 Band3" id ="1" value="0" />
+ <ctl name="IIR0 Band3" id ="2" value="0" />
+ <ctl name="IIR0 Band3" id ="3" value="0" />
+ <ctl name="IIR0 Band3" id ="4" value="0" />
+ <ctl name="IIR0 Band4" id ="0" value="268435456" />
+ <ctl name="IIR0 Band4" id ="1" value="0" />
+ <ctl name="IIR0 Band4" id ="2" value="0" />
+ <ctl name="IIR0 Band4" id ="3" value="0" />
+ <ctl name="IIR0 Band4" id ="4" value="0" />
+ <ctl name="IIR0 Band5" id ="0" value="268435456" />
+ <ctl name="IIR0 Band5" id ="1" value="0" />
+ <ctl name="IIR0 Band5" id ="2" value="0" />
+ <ctl name="IIR0 Band5" id ="3" value="0" />
+ <ctl name="IIR0 Band5" id ="4" value="0" />
+ <ctl name="IIR0 Enable Band1" value="0" />
+ <ctl name="IIR0 Enable Band2" value="0" />
+ <ctl name="IIR0 Enable Band3" value="0" />
+ <ctl name="IIR0 Enable Band4" value="0" />
+ <ctl name="IIR0 Enable Band5" value="0" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="ZERO" />
+ <ctl name="IIR0 INP1 MUX" value="ZERO" />
+ <ctl name="IIR0 INP2 MUX" value="ZERO" />
+ <ctl name="IIR0 INP3 MUX" value="ZERO" />
+
+ <!-- vbat related data -->
+ <ctl name="GSM mode Enable" value="OFF" />
+ <ctl name="WSA_Softclip0 Enable" value="0" />
+ <ctl name="WSA_Softclip1 Enable" value="0" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="0" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="0" />
+
+ <!-- Codec controls end -->
+
+ <!-- defaults for mmap record -->
+ <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="0" />
+ <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="0" />
+
+ <!-- These are audio route (FE to BE) specific mixer settings -->
+ <path name="gsm-mode">
+ <ctl name="GSM mode Enable" value="ON" />
+ </path>
+
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference handset">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="One"/>
+ </path>
+
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
+ </path>
+
+ <path name="echo-reference display-port">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="DISPLAY_PORT" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference headphones-44.1">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="WSA_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip handset">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="WSA_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="One"/>
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip display-port">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="DISPLAY_PORT" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headphones-44.1">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="deep-buffer-playback">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-protected">
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe">
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="deep-buffer-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-usb-headphones">
+ <path name="deep-buffer-playback usb-headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-usb-headphones">
+ <path name="deep-buffer-playback usb-headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-headphones">
+ <path name="deep-buffer-playback headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-headphones">
+ <path name="deep-buffer-playback headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-bt-sco">
+ <path name="deep-buffer-playback bt-sco" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-bt-sco">
+ <path name="deep-buffer-playback bt-sco" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-bt-sco-wb">
+ <path name="deep-buffer-playback bt-sco-wb" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-bt-sco-wb">
+ <path name="deep-buffer-playback bt-sco-wb" />
+ <path name="deep-buffer-playback" />
+ </path>
+ <path name="low-latency-playback">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback speaker-protected">
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe">
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-usb-headphones">
+ <path name="low-latency-playback usb-headphones" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-usb-headphones">
+ <path name="low-latency-playback usb-headphones" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback headphones" />
+ <path name="low-latency-playback" />
+ </path>
+ <path name="low-latency-playback speaker-safe-and-headphones">
+ <path name="low-latency-playback headphones" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-bt-sco">
+ <path name="low-latency-playback bt-sco" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-bt-sco">
+ <path name="low-latency-playback bt-sco" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-bt-sco-wb">
+ <path name="low-latency-playback bt-sco-wb" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-bt-sco-wb">
+ <path name="low-latency-playback bt-sco-wb" />
+ <path name="low-latency-playback" />
+ </path>
+ <path name="audio-ull-playback">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-protected">
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe">
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ <path name="audio-ull-playback headphones" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-headphones">
+ <path name="audio-ull-playback" />
+ <path name="audio-ull-playback headphones" />
+ </path>
+
+ <path name="audio-ull-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-bt-sco">
+ <path name="audio-ull-playback bt-sco" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-bt-sco">
+ <path name="audio-ull-playback bt-sco" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-bt-sco-wb">
+ <path name="audio-ull-playback bt-sco-wb" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-bt-sco-wb">
+ <path name="audio-ull-playback bt-sco-wb" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="multi-channel-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="multi-channel-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="compress-offload-playback">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback speaker-protected">
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe">
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="silence-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-usb-headphones">
+ <path name="compress-offload-playback usb-headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback usb-headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-headphones">
+ <path name="compress-offload-playback headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-bt-sco">
+ <path name="compress-offload-playback bt-sco" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback bt-sco" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback bt-sco-wb" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback bt-sco-wb" />
+ <path name="compress-offload-playback" />
+ </path>
+ <path name="compress-offload-playback2">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-usb-headphones">
+ <path name="compress-offload-playback2 usb-headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback2 usb-headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-headphones">
+ <path name="compress-offload-playback2 headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-headphones">
+ <path name="compress-offload-playback2 headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-sco">
+ <path name="compress-offload-playback2 bt-sco" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback2 bt-sco" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback2 bt-sco-wb" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback2 bt-sco-wb" />
+ <path name="compress-offload-playback2" />
+ </path>
+ <path name="compress-offload-playback3">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <path name="compress-offload-playback3" />
+ </path>
+ <path name="compress-offload-playback4">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <path name="compress-offload-playback4" />
+ </path>
+ <path name="compress-offload-playback5">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <path name="compress-offload-playback5" />
+ </path>
+ <path name="compress-offload-playback6">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <path name="compress-offload-playback6" />
+ </path>
+ <path name="compress-offload-playback7">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <path name="compress-offload-playback7" />
+ </path>
+ <path name="compress-offload-playback8">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <path name="compress-offload-playback8" />
+ </path>
+ <path name="compress-offload-playback9">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 headphones-44.1">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="audio-record">
+ <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="audio-record usb-headset-mic">
+ <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record bt-sco">
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record bt-sco" />
+ </path>
+
+ <path name="audio-record capture-fm">
+ <ctl name="MultiMedia1 Mixer SLIM_8_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="low-latency-record">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="low-latency-record bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="low-latency-record bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="low-latency-record capture-fm">
+ <ctl name="MultiMedia8 Mixer SLIM_8_TX" value="1" />
+ </path>
+
+ <path name="fm-virtual-record capture-fm">
+ <ctl name="MultiMedia2 Mixer SLIM_8_TX" value="1" />
+ </path>
+
+ <path name="play-fm">
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
+ <ctl name="WSA_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="1" />
+ <ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="play-fm headphones">
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
+ <ctl name="RX_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="1" />
+ <ctl name="RX_CDC_DMA_RX_0_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="incall-rec-uplink">
+ <ctl name="MultiMedia9 Mixer VOC_REC_UL" value="1" />
+ </path>
+
+ <path name="incall-rec-uplink bt-sco">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink bt-sco-wb">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink usb-headset-mic">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink afe-proxy">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink-compress">
+ <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="1" />
+ </path>
+
+ <path name="incall-rec-uplink-compress bt-sco">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress bt-sco-wb">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress usb-headset-mic">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress afe-proxy">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink call-proxy-in">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-downlink">
+ <ctl name="MultiMedia9 Mixer VOC_REC_DL" value="1" />
+ </path>
+
+ <path name="incall-rec-downlink bt-sco">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink bt-sco-wb">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink usb-headset-mic">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink afe-proxy">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink-compress">
+ <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="1" />
+ </path>
+
+ <path name="incall-rec-downlink-compress bt-sco">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress bt-sco-wb">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress usb-headset-mic">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress afe-proxy">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink call-proxy-in">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink">
+ <path name="incall-rec-uplink" />
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink bt-sco">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink bt-sco-wb">
+ <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>
+
+ <path name="incall-rec-uplink-and-downlink afe-proxy">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress">
+ <path name="incall-rec-uplink-compress" />
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress bt-sco">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress bt-sco-wb">
+ <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>
+
+ <path name="incall-rec-uplink-and-downlink-compress afe-proxy">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink call-proxy-in">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="hfp-sco">
+ </path>
+
+ <path name="hfp-sco headphones">
+ </path>
+
+ <path name="hfp-sco-wb">
+ <path name="hfp-sco" />
+ </path>
+
+ <path name="hfp-sco-wb headphones">
+ <path name="hfp-sco headphones" />
+ </path>
+
+ <path name="compress-voip-call">
+ <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer TX_CDC_DMA_TX_3_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call bt-a2dp">
+ <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer TX_CDC_DMA_TX_3_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call headphones">
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer TX_CDC_DMA_TX_3_Voip" value="1" />
+ </path>
+
+
+ <path name="compress-voip-call bt-sco">
+ <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="compress-voip-call usb-headphones">
+ <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer TX_CDC_DMA_TX_3_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call usb-headset">
+ <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
+ </path>
+
+ <path name="voicemmode1-call">
+ <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call headphones">
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call bt-sco">
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="voicemmode1-call usb-headphones">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call usb-headset">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call display-port-and-usb-headset-mic">
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call display-port">
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call call-proxy">
+ <ctl name="PROXY_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer PROXY_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode2-call">
+ <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call headphones">
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call bt-sco">
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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" />
+ </path>
+
+ <path name="voicemmode2-call usb-headphones">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call usb-headset">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call display-port-and-usb-headset-mic">
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call display-port">
+ <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call call-proxy">
+ <ctl name="PROXY_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer PROXY_TX_MMode2" value="1" />
+ </path>
+
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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>
+
+ <path name="audio-playback-voip usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-safe-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="bt-a2dp">
+ <ctl name="SLIM7_RX ADM Channels" value="Two" />
+ </path>
+
+ <path name="speaker-and-bt-a2dp">
+ <path name="speaker" />
+ <path name="bt-a2dp" />
+ </path>
+
+ <path name="speaker-safe-and-bt-a2dp">
+ <path name="speaker-safe" />
+ <path name="bt-a2dp" />
+ </path>
+
+ <path name="deep-buffer-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-bt-a2dp">
+ <path name="deep-buffer-playback bt-a2dp" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-safe-and-bt-a2dp">
+ <path name="deep-buffer-playback bt-a2dp" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-bt-a2dp">
+ <path name="compress-offload-playback bt-a2dp" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback bt-a2dp" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-bt-a2dp">
+ <path name="low-latency-playback bt-a2dp" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-safe-and-bt-a2dp">
+ <path name="low-latency-playback bt-a2dp" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback2 bt-a2dp" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback2 bt-a2dp" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-safe-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-bt-a2dp">
+ <path name="audio-ull-playback bt-a2dp" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-bt-a2dp">
+ <path name="audio-ull-playback bt-a2dp" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="mmap-playback">
+ <ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback headphones">
+ <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback speaker-and-headphones">
+ <path name="mmap-playback" />
+ <path name="mmap-playback headphones" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-headphones">
+ <path name="mmap-playback" />
+ <path name="mmap-playback headphones" />
+ </path>
+
+ <path name="mmap-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="16000" />
+ <path name="mmap-playback bt-sco" />
+ </path>
+
+ <path name="mmap-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-buffer-playback hdmi">
+ <ctl name="HDMI Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback speaker-and-hdmi">
+ <path name="mmap-playback hdmi" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-hdmi">
+ <path name="mmap-playback hdmi" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-and-usb-headphones">
+ <path name="mmap-playback usb-headphones" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-safe-and-usb-headphones">
+ <path name="mmap-playback usb-headphones" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-record">
+ <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="mmap-record bt-sco">
+ <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="mmap-record bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="mmap-record bt-sco" />
+ </path>
+
+ <path name="mmap-record capture-fm">
+ <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="1" />
+ </path>
+
+ <path name="mmap-record usb-headset-mic">
+ <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="hifi-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-record usb-headset-mic">
+ <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="incall_music_uplink">
+ <ctl name="Incall_Music Audio Mixer MultiMedia9" value="1" />
+ </path>
+
+ <path name="incall_music_uplink speaker">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink handset">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink handset-hac">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink bt-sco">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink bt-sco-wb">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-display-port">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink usb-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink usb-headset">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-usb-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-usb-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-bt-sco">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-bt-sco">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink voice-tty-hco-handset">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-and-bt-a2dp">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink speaker-safe-and-bt-a2dp">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink bt-a2dp">
+ <path name="incall_music_uplink" />
+ </path>
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink call-proxy">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="spkr-rx-calib">
+ <ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="spkr-vi-record">
+ </path>
+
+ <!-- These are actual sound device specific mixer settings -->
+ <path name="amic2">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="ADC2" />
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="ADC2 ChMap" value="ADC3" />
+ <ctl name="MBHC ChMap" value="DMIC2" />
+ </path>
+
+ <path name="amic1">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="ADC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC1 ChMap" value="ADC1" />
+ </path>
+
+ <path name="amic3">
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="ADC2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="ADC2 ChMap" value="ADC3" />
+ </path>
+
+ <path name="dmic1">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC0" />
+ </path>
+
+ <path name="dmic2">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC1" />
+ </path>
+
+ <path name="dmic3">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC0" />
+ </path>
+
+ <path name="dmic4">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC3" />
+ </path>
+
+ <path name="speaker">
+ <ctl name="WSA_CDC_DMA_RX_0 Channels" value="Two" />
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft BOOST Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight BOOST Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-mono">
+ <ctl name="WSA_CDC_DMA_RX_0 Channels" value="One" />
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft BOOST Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-mono-2">
+ <ctl name="WSA_CDC_DMA_RX_0 Channels" value="One" />
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight BOOST Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-vbat-mono">
+ <path name="speaker-mono" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-vbat-mono-2">
+ <path name="speaker-mono-2" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-vbat">
+ <path name="speaker" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-safe">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="sidetone-iir">
+ <ctl name="IIR0 Enable Band1" value="1" />
+ <ctl name="IIR0 Enable Band2" value="1" />
+ <ctl name="IIR0 Enable Band3" value="1" />
+ <ctl name="IIR0 Enable Band4" value="1" />
+ <ctl name="IIR0 Enable Band5" value="1" />
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="DEC0" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="DEC0" />
+ <ctl name="RX INT2 MIX2 INP" value="SRC0" />
+ <ctl name="WSA_RX0 INT0 SIDETONE MIX" value="SRC0" />
+ </path>
+
+ <path name="afe-sidetone">
+ <ctl name="Voice Sidetone Enable" value="1" />
+ </path>
+
+ <path name="speaker-mic">
+ <path name="dmic1" />
+ </path>
+
+ <path name="speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <ctl name="WSA_CDC_DMA_0 TX Format" value="PACKED_16B" />
+ <path name="speaker" />
+ <ctl name="VI_FEED_TX Channels" value="Two" />
+ <ctl name="WSA_RX_0_VI_FB_LCH_MUX" value="WSA_CDC_DMA_TX_0" />
+ <ctl name="WSA_RX_0_VI_FB_RCH_MUX" value="WSA_CDC_DMA_TX_0" />
+ </path>
+
+ <path name="voice-speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_CDC_DMA_0 TX Format" value="PACKED_16B" />
+ <path name="speaker-mono" />
+ <ctl name="VI_FEED_TX Channels" value="One" />
+ <ctl name="WSA_RX_0_VI_FB_LCH_MUX" value="WSA_CDC_DMA_TX_0" />
+ </path>
+
+ <path name="voice-speaker-2-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <ctl name="WSA_CDC_DMA_0 TX Format" value="PACKED_16B" />
+ <path name="speaker-mono-2" />
+ <ctl name="VI_FEED_TX Channels" value="One" />
+ <ctl name="WSA_RX_0_VI_FB_RCH_MUX" value="WSA_CDC_DMA_TX_0" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected">
+ <path name="speaker-protected" />
+ </path>
+
+ <path name="speaker-protected-vbat">
+ <path name="speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-protected-vbat">
+ <path name="voice-speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-2-protected-vbat">
+ <path name="voice-speaker-2-protected" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="vi-feedback">
+ </path>
+
+ <path name="vi-feedback-mono-1">
+ </path>
+
+ <path name="vi-feedback-mono-2">
+ </path>
+
+ <path name="handset">
+ <ctl name="WSA_CDC_DMA_RX_0 Channels" value="One" />
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft BOOST Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="EAR SPKR PA Gain" value="G_6_DB" />
+ </path>
+
+ <path name="handset-mic">
+ <path name="dmic3" />
+ </path>
+
+ <path name="headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX_CDC_DMA_RX_0 Channels" value="Two" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHR_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
+ <path name="headphones-44.1">
+ <ctl name="RX_Native" value="ON" />
+ <path name="headphones" />
+ </path>
+
+ <path name="headphones-hifi-filter">
+ <path name="headphones" />
+ </path>
+
+ <path name="hph-highquality-mode">
+ </path>
+
+ <path name="hph-lowpower-mode">
+ </path>
+
+ <path name="true-native-mode">
+ </path>
+
+ <path name="line">
+ <path name="headphones" />
+ </path>
+
+ <path name="headset-mic">
+ <path name="amic2" />
+ </path>
+
+ <path name="voice-handset">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-speaker">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-stereo">
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-2">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-vbat">
+ <path name="speaker-vbat-mono" />
+ </path>
+
+ <path name="voice-speaker-2-vbat">
+ <path name="speaker-vbat-mono-2" />
+ </path>
+
+ <path name="voice-speaker-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX_CDC_DMA_RX_0 Channels" value="Two" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
+ <path name="voice-line">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="voice-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-headphones-hifi-filter">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe-and-headphones">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
+ <path name="speaker-and-line">
+ <path name="speaker-and-headphones" />
+ </path>
+
+ <path name="speaker-safe-and-line">
+ <path name="speaker-safe-and-headphones" />
+ </path>
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="usb-headset">
+ </path>
+
+ <path name="afe-proxy">
+ </path>
+
+ <path name="display-port">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-safe-and-usb-headphones">
+ <path name="speaker-safe" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-and-display-port">
+ <path name="speaker" />
+ <path name="display-port" />
+ </path>
+
+ <path name="voice-rec-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="camcorder-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="bt-sco-headset">
+ </path>
+
+ <path name="bt-sco-mic">
+ </path>
+
+ <path name="bt-sco-headset-wb">
+ </path>
+
+ <path name="bt-sco-mic-wb">
+ </path>
+
+ <path name="usb-headset-mic">
+ </path>
+
+ <path name="capture-fm">
+ </path>
+
+ <!-- Dual MIC devices -->
+ <path name="handset-dmic-endfire">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC2" />
+ </path>
+
+ <path name="speaker-dmic-endfire">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC3" />
+ </path>
+
+ <path name="dmic-endfire">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC0" />
+ </path>
+
+ <path name="handset-stereo-dmic-ef">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-tmus">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC2" />
+ </path>
+
+ <path name="dmic-broadside">
+ <path name="speaker-dmic-broadside" />
+ <ctl name="IIR0 INP0 MUX" value="DEC0" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside">
+ <path name="dmic-broadside" />
+ </path>
+
+ <!-- Tri MIC devices -->
+ <path name="three-mic">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="Three" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="speaker-tmic">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="Three" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="voice-speaker-tmic">
+ <path name="speaker-tmic" />
+ </path>
+
+ <!-- Quad MIC devices -->
+ <path name="speaker-qmic">
+ <ctl name="TX_CDC_DMA_TX_3 Channels" value="Four" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DMIC MUX0" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC1" />
+ </path>
+
+ <path name="voice-speaker-qmic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-full-headphones">
+ <ctl name="TTY Mode" value="FULL" />
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headphones">
+ <ctl name="TTY Mode" value="VCO" />
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-full-headset-mic">
+ <path name="amic2" />
+ <ctl name="ADC2 Volume" value="0" />
+ </path>
+
+ <path name="voice-tty-hco-headset-mic">
+ <path name="voice-tty-full-headset-mic" />
+ </path>
+
+ <path name="voice-tty-vco-handset-mic">
+ <path name="dmic3" />
+ </path>
+
+ <path name="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="unprocessed-stereo-mic">
+ <path name="voice-rec-dmic-ef" />
+ </path>
+
+ <path name="unprocessed-three-mic">
+ <path name="three-mic" />
+ </path>
+
+ <path name="unprocessed-quad-mic">
+ <path name="quad-mic" />
+ </path>
+
+ <path name="unprocessed-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <!-- USB TTY start -->
+
+ <!-- full: both end tty -->
+ <path name="voice-tty-full-usb">
+ <ctl name="TTY Mode" value="FULL" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="voice-tty-full-usb-mic">
+ <path name="usb-headset-mic" />
+ </path>
+
+ <!-- vco, in: handset mic use existing, out: tty -->
+ <path name="voice-tty-vco-usb">
+ <ctl name="TTY Mode" value="VCO" />
+ <path name="usb-headphones" />
+ </path>
+
+ <!-- hco, in: tty, out: speaker, use existing handset -->
+ <path name="voice-tty-hco-usb-mic">
+ <path name="voice-tty-full-usb-mic" />
+ </path>
+
+ <!-- USB TTY end -->
+
+ <!-- Added for ADSP testfwk -->
+ <path name="ADSP testfwk">
+ <ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="call-proxy">
+ </path>
+
+ <path name="call-proxy-in">
+ </path>
+</mixer>
diff --git a/configs/msmsteppe/mixer_paths_qrd.xml b/configs/msmsteppe/mixer_paths_qrd.xml
index 3715cc5..3fb91aa 100644
--- a/configs/msmsteppe/mixer_paths_qrd.xml
+++ b/configs/msmsteppe/mixer_paths_qrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -732,6 +732,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/msmsteppe/mixer_paths_tavil.xml b/configs/msmsteppe/mixer_paths_tavil.xml
index f2dcddc..b7c06fa 100644
--- a/configs/msmsteppe/mixer_paths_tavil.xml
+++ b/configs/msmsteppe/mixer_paths_tavil.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-2021, 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 -->
@@ -840,6 +840,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/msmsteppe/mixer_paths_wcd9375.xml b/configs/msmsteppe/mixer_paths_wcd9375.xml
index 60d75b5..ad52ede 100644
--- a/configs/msmsteppe/mixer_paths_wcd9375.xml
+++ b/configs/msmsteppe/mixer_paths_wcd9375.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -736,6 +736,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/msmsteppe/mixer_paths_wcd9375qrd.xml b/configs/msmsteppe/mixer_paths_wcd9375qrd.xml
index b77cb77..e54be2d 100644
--- a/configs/msmsteppe/mixer_paths_wcd9375qrd.xml
+++ b/configs/msmsteppe/mixer_paths_wcd9375qrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -749,6 +749,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/msmsteppe/msmsteppe.mk b/configs/msmsteppe/msmsteppe.mk
old mode 100644
new mode 100755
index 29bad8d..99f114c
--- a/configs/msmsteppe/msmsteppe.mk
+++ b/configs/msmsteppe/msmsteppe.mk
@@ -41,6 +41,9 @@
AUDIO_FEATURE_ENABLED_DLKM := true
BOARD_SUPPORTS_SOUND_TRIGGER := true
AUDIO_FEATURE_ENABLED_INSTANCE_ID := true
+ifeq ($(TARGET_HAS_GENERIC_KERNEL_HEADERS), true)
+AUDIO_FEATURE_ENABLED_GKI := true
+endif
AUDIO_USE_DEEP_AS_PRIMARY_OUTPUT := false
AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true
AUDIO_FEATURE_ENABLED_NT_PAUSE_TIMEOUT := true
@@ -88,76 +91,6 @@
PRODUCT_PACKAGES += $(AUDIO_WRAPPER)
PRODUCT_PACKAGES += $(AUDIO_HAL_TEST_APPS)
-ifeq ($(AUDIO_FEATURE_ENABLED_DLKM),true)
-BOARD_VENDOR_KERNEL_MODULES := \
- $(KERNEL_MODULES_OUT)/audio_apr.ko \
- $(KERNEL_MODULES_OUT)/audio_snd_event.ko \
- $(KERNEL_MODULES_OUT)/audio_wglink.ko \
- $(KERNEL_MODULES_OUT)/audio_q6_pdr.ko \
- $(KERNEL_MODULES_OUT)/audio_q6_notifier.ko \
- $(KERNEL_MODULES_OUT)/audio_adsp_loader.ko \
- $(KERNEL_MODULES_OUT)/audio_q6.ko \
- $(KERNEL_MODULES_OUT)/audio_usf.ko \
- $(KERNEL_MODULES_OUT)/audio_pinctrl_wcd.ko \
- $(KERNEL_MODULES_OUT)/audio_pinctrl_lpi.ko \
- $(KERNEL_MODULES_OUT)/audio_swr.ko \
- $(KERNEL_MODULES_OUT)/audio_wcd_core.ko \
- $(KERNEL_MODULES_OUT)/audio_swr_ctrl.ko \
- $(KERNEL_MODULES_OUT)/audio_wsa881x.ko \
- $(KERNEL_MODULES_OUT)/audio_platform.ko \
- $(KERNEL_MODULES_OUT)/audio_hdmi.ko \
- $(KERNEL_MODULES_OUT)/audio_stub.ko \
- $(KERNEL_MODULES_OUT)/audio_wcd9xxx.ko \
- $(KERNEL_MODULES_OUT)/audio_mbhc.ko \
- $(KERNEL_MODULES_OUT)/audio_wcd934x.ko \
- $(KERNEL_MODULES_OUT)/audio_wcd937x.ko \
- $(KERNEL_MODULES_OUT)/audio_wcd937x_slave.ko \
- $(KERNEL_MODULES_OUT)/audio_bolero_cdc.ko \
- $(KERNEL_MODULES_OUT)/audio_wsa_macro.ko \
- $(KERNEL_MODULES_OUT)/audio_va_macro.ko \
- $(KERNEL_MODULES_OUT)/audio_rx_macro.ko \
- $(KERNEL_MODULES_OUT)/audio_tx_macro.ko \
- $(KERNEL_MODULES_OUT)/audio_wcd_spi.ko \
- $(KERNEL_MODULES_OUT)/audio_native.ko \
- $(KERNEL_MODULES_OUT)/audio_machine_talos.ko
-endif
-
-BOARD_VENDOR_KERNEL_MODULES += $(shell ls $(KERNEL_MODULES_OUT)/*.ko)
-
-#Audio DLKM
-AUDIO_DLKM := audio_apr.ko
-AUDIO_DLKM += audio_snd_event.ko
-AUDIO_DLKM += audio_wglink.ko
-AUDIO_DLKM += audio_q6_pdr.ko
-AUDIO_DLKM += audio_q6_notifier.ko
-AUDIO_DLKM += audio_adsp_loader.ko
-AUDIO_DLKM += audio_q6.ko
-AUDIO_DLKM += audio_usf.ko
-AUDIO_DLKM += audio_pinctrl_wcd.ko
-AUDIO_DLKM += audio_swr.ko
-AUDIO_DLKM += audio_wcd_core.ko
-AUDIO_DLKM += audio_swr_ctrl.ko
-AUDIO_DLKM += audio_wsa881x.ko
-AUDIO_DLKM += audio_platform.ko
-AUDIO_DLKM += audio_hdmi.ko
-AUDIO_DLKM += audio_stub.ko
-AUDIO_DLKM += audio_wcd9xxx.ko
-AUDIO_DLKM += audio_mbhc.ko
-AUDIO_DLKM += audio_wcd_spi.ko
-AUDIO_DLKM += audio_native.ko
-AUDIO_DLKM += audio_machine_talos.ko
-AUDIO_DLKM += audio_wcd934x.ko
-AUDIO_DLKM += audio_pinctrl_lpi.ko
-AUDIO_DLKM += audio_wcd937x.ko
-AUDIO_DLKM += audio_wcd937x_slave.ko
-AUDIO_DLKM += audio_bolero_cdc.ko
-AUDIO_DLKM += audio_wsa_macro.ko
-AUDIO_DLKM += audio_va_macro.ko
-AUDIO_DLKM += audio_rx_macro.ko
-AUDIO_DLKM += audio_tx_macro.ko
-
-PRODUCT_PACKAGES += $(AUDIO_DLKM)
-
#Audio Specific device overlays
DEVICE_PACKAGE_OVERLAYS += vendor/qcom/opensource/audio-hal/primary-hal/configs/common/overlay
@@ -175,6 +108,7 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe/sound_trigger_mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe/mixer_paths_idp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_idp.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe/mixer_paths_ipc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_ipc.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe/mixer_paths_wcd9375.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wcd9375.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe/mixer_paths_wcd9375qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wcd9375qrd.xml \
@@ -421,6 +355,10 @@
android.hardware.audio.effect@6.0 \
android.hardware.audio.effect@6.0-impl
+# enable sound trigger hidl hal 2.3
+PRODUCT_PACKAGES += \
+ android.hardware.soundtrigger@2.3-impl \
+
PRODUCT_PACKAGES_ENG += \
VoicePrintTest \
VoicePrintDemo
diff --git a/configs/msmsteppe_au/audio_effects.xml b/configs/msmsteppe_au/audio_effects.xml
index deb15ff..8477250 100644
--- a/configs/msmsteppe_au/audio_effects.xml
+++ b/configs/msmsteppe_au/audio_effects.xml
@@ -38,7 +38,6 @@
<library name="proxy" path="libeffectproxy.so"/>
<library name="offload_bundle" path="libqcompostprocbundle.so"/>
<library name="audio_pre_processing" path="libqcomvoiceprocessing.so"/>
- <library name="volume_listener" path="libvolumelistener.so"/>
<library name="audiosphere" path="libasphere.so"/>
<library name="shoebox" path="libshoebox.so"/>
<library name="audio_bmt" path="libqtiautobundle.so"/>
@@ -89,11 +88,6 @@
<effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
<effect name="aec" library="audio_pre_processing" uuid="0f8d0d2a-59e5-45fe-b6e4-248c8a799109"/>
<effect name="ns" library="audio_pre_processing" uuid="1d97bb0b-9e2f-4403-9ae3-58c2554306f8"/>
- <effect name="music_helper" library="volume_listener" uuid="08b8b058-0590-11e5-ac71-0025b32654a0"/>
- <effect name="ring_helper" library="volume_listener" uuid="0956df94-0590-11e5-bdbe-0025b32654a0"/>
- <effect name="alarm_helper" library="volume_listener" uuid="09f303e2-0590-11e5-8fdb-0025b32654a0"/>
- <effect name="voice_helper" library="volume_listener" uuid="0ace5c08-0590-11e5-ae9e-0025b32654a0"/>
- <effect name="notification_helper" library="volume_listener" uuid="0b776dde-0590-11e5-81ba-0025b32654a0"/>
<effect name="audiosphere" library="audiosphere" uuid="184e62ab-2d19-4364-9d1b-c0a40733866c"/>
<effect name="shoebox" library="shoebox" uuid="1eab784c-1a36-4b2a-b7fc-e34c44cab89e"/>
<effect name="audio_bmt" library="audio_bmt" uuid="e039757b-a367-44e9-9bbb-634af0c51cb7"/>
@@ -105,21 +99,6 @@
<effect name="audio_synth" library="audio_synth" uuid="a124b54f-4026-4ed2-9316-4ba2d5effdb8"/>
</effects>
<postprocess>
- <stream type="music">
- <apply effect="music_helper"/>
- </stream>
- <stream type="ring">
- <apply effect="ring_helper"/>
- </stream>
- <stream type="alarm">
- <apply effect="alarm_helper"/>
- </stream>
- <stream type="voice_call">
- <apply effect="voice_helper"/>
- </stream>
- <stream type="notification">
- <apply effect="notification_helper"/>
- </stream>
</postprocess>
<preprocess>
<stream type="voice_communication">
diff --git a/configs/msmsteppe_au/audio_io_policy.conf b/configs/msmsteppe_au/audio_io_policy.conf
index e45b296..f7aa755 100644
--- a/configs/msmsteppe_au/audio_io_policy.conf
+++ b/configs/msmsteppe_au/audio_io_policy.conf
@@ -84,7 +84,7 @@
sys_notification {
flags AUDIO_OUTPUT_FLAG_SYS_NOTIFICATION
formats AUDIO_FORMAT_PCM_16_BIT
- sampling_rates 48000
+ sampling_rates 8000|16000|24000|32000|48000
bit_width 16
app_type 69937
}
@@ -98,10 +98,17 @@
phone {
flags AUDIO_OUTPUT_FLAG_PHONE
formats AUDIO_FORMAT_PCM_16_BIT
- sampling_rates 48000
+ sampling_rates 8000|16000|24000|32000|48000
bit_width 16
app_type 69936
}
+ alerts {
+ flags AUDIO_OUTPUT_FLAG_ALERTS
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 48000
+ bit_width 16
+ app_type 69937
+ }
front_passenger {
flags AUDIO_OUTPUT_FLAG_FRONT_PASSENGER
formats AUDIO_FORMAT_PCM_16_BIT
diff --git a/configs/msmsteppe_au/audio_platform_info.xml b/configs/msmsteppe_au/audio_platform_info.xml
index 8cc7b04..ce989d9 100644
--- a/configs/msmsteppe_au/audio_platform_info.xml
+++ b/configs/msmsteppe_au/audio_platform_info.xml
@@ -34,6 +34,7 @@
<device name="SND_DEVICE_OUT_BUS_SYS" acdb_id="60"/>
<device name="SND_DEVICE_OUT_BUS_NAV" acdb_id="14"/>
<device name="SND_DEVICE_OUT_BUS_PHN" acdb_id="94"/>
+ <device name="SND_DEVICE_OUT_BUS_ALR" acdb_id="60"/>
<device name="SND_DEVICE_OUT_BUS_PAX" acdb_id="60"/>
<device name="SND_DEVICE_OUT_BUS_RSE" acdb_id="60"/>
<device name="SND_DEVICE_OUT_BT_SCO" acdb_id="21"/>
@@ -93,52 +94,56 @@
</bit_width_configs>
<pcm_ids>
- <usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_DEEP_BUFFER" type="out" id="0"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="21"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="22"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="23"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="24"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="25"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_MEDIA" type="out" id="0"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE" type="out" id="1"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_PHONE" type="out" id="12"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER" type="out" id="55"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" type="out" id="54"/>
- <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
- <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
- <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15"/>
- <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15"/>
- <usecase name="USECASE_VOWLAN_CALL" type="in" id="-1"/>
- <usecase name="USECASE_VOWLAN_CALL" type="out" id="-1"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5"/>
- <usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
- <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
- <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
- <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
- <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" />
- <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="28" />
- <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="28" />
- <usecase name="USECASE_AUDIO_RECORD" type="in" id="0" />
- <usecase name="USECASE_AUDIO_RECORD_BUS" type="in" id="0" />
- <usecase name="USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER" type="in" id="55" />
- <usecase name="USECASE_AUDIO_RECORD_BUS_REAR_SEAT" type="in" id="54" />
- <usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO" type="out" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="29" />
- <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="in" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="out" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="in" id="36" />
- <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="out" id="36" />
- <usecase name="USECASE_ICC_CALL" type="in" id="33" />
- <usecase name="USECASE_ICC_CALL" type="out" id="33" />
- <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="in" id="33" />
- <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="out" id="33" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9" fe="4"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_DEEP_BUFFER" type="out" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7" fe="3"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11" fe="6"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="21" fe="10"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD5" type="out" id="22" fe="11"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD6" type="out" id="23" fe="12"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD7" type="out" id="24" fe="13"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD8" type="out" id="25" fe="14"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_MEDIA" type="out" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION" type="out" id="9" fe="4"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE" type="out" id="1" fe="1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_PHONE" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_ALERTS" type="out" id="59" fe="30"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER" type="out" id="55" fe="22"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_REAR_SEAT" type="out" id="54" fe="21"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2" fe="50"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2" fe="50"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="15" fe="51"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="15" fe="51"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="in" id="-1" fe="-1"/>
+ <usecase name="USECASE_VOWLAN_CALL" type="out" id="-1" fe="-1"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5" fe="-1"/>
+ <usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6" fe="-1"/>
+ <usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" fe="7"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" fe="7"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="12" fe="9"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="28" fe="15"/>
+ <usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="28" fe="15"/>
+ <usecase name="USECASE_AUDIO_RECORD" type="in" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS" type="in" id="0" fe="0"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER" type="in" id="55" fe="22"/>
+ <usecase name="USECASE_AUDIO_RECORD_BUS_REAR_SEAT" type="in" id="54" fe="21"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="in" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO" type="out" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="out" id="29" fe="5"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="in" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_DOWNLINK" type="out" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="in" id="36" fe="20"/>
+ <usecase name="USECASE_AUDIO_HFP_SCO_WB_DOWNLINK" type="out" id="36" fe="20"/>
+ <usecase name="USECASE_ICC_CALL" type="in" id="33" fe="8"/>
+ <usecase name="USECASE_ICC_CALL" type="out" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="in" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SYNTHESIZER" type="out" id="33" fe="8"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="31" fe="16"/>
+ <usecase name="USECASE_AUDIO_RECORD2" type="in" id="61" fe="32"/>
+ <usecase name="USECASE_AUDIO_RECORD3" type="in" id="62" fe="33"/>
</pcm_ids>
<config_params>
@@ -181,6 +186,7 @@
<device name="SND_DEVICE_OUT_BUS_SYS" interface="TERT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_NAV" interface="TERT_TDM_RX_1"/>
<device name="SND_DEVICE_OUT_BUS_PHN" interface="TERT_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_BUS_ALR" interface="TERT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_PAX" interface="QUAT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_RSE" interface="QUAT_TDM_RX_1"/>
<device name="SND_DEVICE_OUT_ICC" interface="TERT_TDM_RX_0"/>
@@ -206,6 +212,7 @@
<device name="SND_DEVICE_OUT_BUS_SYS" backend="sys-bus-out" interface="TERT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_NAV" backend="nav-bus-out" interface="TERT_TDM_RX_1"/>
<device name="SND_DEVICE_OUT_BUS_PHN" backend="phone-bus-out" interface="TERT_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_BUS_ALR" backend="alerts-bus-out" interface="TERT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_PAX" backend="pax-bus-out" interface="QUAT_TDM_RX_0"/>
<device name="SND_DEVICE_OUT_BUS_RSE" backend="rse-bus-out" interface="QUIN_TDM_RX_0"/>
</backend_names>
diff --git a/configs/msmsteppe_au/audio_policy_configuration.xml b/configs/msmsteppe_au/audio_policy_configuration.xml
index 24d1447..c7bf080 100644
--- a/configs/msmsteppe_au/audio_policy_configuration.xml
+++ b/configs/msmsteppe_au/audio_policy_configuration.xml
@@ -57,11 +57,16 @@
<item>Sys Notification Bus</item>
<item>Nav Guidance Bus</item>
<item>Phone Bus</item>
+ <item>Alerts Bus</item>
<item>Front Passenger Bus</item>
<item>Rear Seat Bus</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
+ <item>Primary In Bus</item>
+ <item>Front Passenger In Bus</item>
+ <item>Rear Seat In Bus</item>
<item>FM Tuner</item>
+ <item>Echo Reference</item>
</attachedDevices>
<defaultOutputDevice>Media Bus</defaultOutputDevice>
<mixPorts>
@@ -74,6 +79,26 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
+ <mixPort name="carplay_8k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_16k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="16000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_24k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="24000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_32k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="32000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="carplay_48k_sys" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="nav_guidance" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -82,6 +107,10 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
+ <mixPort name="alerts" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="front_passenger" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -106,7 +135,7 @@
</mixPort>
<mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ samplingRates="8000,16000,24000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
@@ -144,13 +173,13 @@
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_DTS"
samplingRates="32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1"/>
@@ -168,19 +197,13 @@
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
- channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
- <profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
- samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
- channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_5POINT1"/>
</mixPort>
<mixPort name="dsd_compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
@@ -197,8 +220,14 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
+ <mixPort name="incall_music_uplink" role="source"
+ flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000,48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
- <mixPort name="primary input" role="sink" maxOpenCount="2" maxActiveCount="2">
+ <mixPort name="primary input" role="sink" maxOpenCount="3" maxActiveCount="3">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
@@ -208,13 +237,7 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
- <mixPort name="incall_music_uplink" role="source"
- flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,16000,48000"
- channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
- </mixPort>
- <mixPort name="record_24" role="sink">
+ <mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
@@ -222,6 +245,11 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
+ <mixPort name="fast input" role="sink" flags="AUDIO_INPUT_FLAG_FAST">
+ <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
+ </mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
@@ -231,6 +259,15 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
</mixPort>
+ <mixPort name="voip_tx" role="sink"
+ flags="AUDIO_INPUT_FLAG_VOIP_TX">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ </mixPort>
+ <mixPort name="echo_ref" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </mixPort>
</mixPorts>
<devicePorts>
@@ -271,6 +308,15 @@
minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
</gains>
</devicePort>
+ <devicePort tagName="Alerts Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
+ address="BUS05_ALERTS">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
<devicePort tagName="Front Passenger Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
address="BUS08_FRONT_PASSENGER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -297,6 +343,8 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
+ <devicePort tagName="Speaker Safe" type="AUDIO_DEVICE_OUT_SPEAKER_SAFE" role="sink">
+ </devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -321,10 +369,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
- <devicePort tagName="BT SCO All" type="AUDIO_DEVICE_OUT_ALL_SCO" role="sink">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
- </devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
@@ -342,17 +386,17 @@
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
- encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX_TWSP">
+ encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE AUDIO_FORMAT_APTX_TWSP">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
- encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX_TWSP">
+ encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE AUDIO_FORMAT_APTX_TWSP">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
- encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX_TWSP">
+ encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE AUDIO_FORMAT_APTX_TWSP">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
@@ -386,18 +430,48 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
-
+ <devicePort tagName="Primary In Bus" type="AUDIO_DEVICE_IN_BUS" role="source" address="BUS04_INPUT">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
+ <devicePort tagName="Front Passenger In Bus" type="AUDIO_DEVICE_IN_BUS" role="source" address="BUS09_INPUT_FRONT_PASSENGER">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
+ <devicePort tagName="Rear Seat In Bus" type="AUDIO_DEVICE_IN_BUS" role="source" address="BUS17_INPUT_REAR_SEAT">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
+ <devicePort tagName="Echo Reference" type="AUDIO_DEVICE_IN_ECHO_REFERENCE" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="16000,48000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
+ </devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Media Bus"
sources="media,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Sys Notification Bus"
- sources="sys_notification,mmap_no_irq_out"/>
+ sources="sys_notification,mmap_no_irq_out,carplay_8k_sys,carplay_16k_sys,carplay_24k_sys,carplay_32k_sys,carplay_48k_sys"/>
<route type="mix" sink="Nav Guidance Bus"
sources="nav_guidance,mmap_no_irq_out"/>
<route type="mix" sink="Phone Bus"
sources="phone,mmap_no_irq_out"/>
+ <route type="mix" sink="Alerts Bus"
+ sources="alerts"/>
<route type="mix" sink="Front Passenger Bus"
sources="front_passenger,mmap_no_irq_out"/>
<route type="mix" sink="Rear Seat Bus"
@@ -406,6 +480,8 @@
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Speaker"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
+ <route type="mix" sink="Speaker Safe"
+ sources="primary output,raw,deep_buffer,compressed_offload,mmap_no_irq_out,voip_rx"/>
<route type="mix" sink="Wired Headset"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Wired Headphones"
@@ -418,7 +494,7 @@
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="FM"
sources="primary output"/>
- <route type="mix" sink="BT SCO All"
+ <route type="mix" sink="BT SCO"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
@@ -426,16 +502,24 @@
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx,incall_music_uplink"/>
+ <route type="mix" sink="primary input"
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,Primary In Bus,Front Passenger In Bus,Rear Seat In Bus"/>
+ <route type="mix" sink="echo_ref"
+ sources="Echo Reference"/>
+ <route type="mix" sink="fast input"
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
+ <route type="mix" sink="mmap_no_irq_in"
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,Telephony Rx"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="record_24"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
- <route type="mix" sink="mmap_no_irq_in"
- sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
+ <route type="mix" sink="voip_tx"
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Headphones"
diff --git a/configs/msmsteppe_au/mixer_paths_adp.xml b/configs/msmsteppe_au/mixer_paths_adp.xml
index 2dfca35..760437b 100644
--- a/configs/msmsteppe_au/mixer_paths_adp.xml
+++ b/configs/msmsteppe_au/mixer_paths_adp.xml
@@ -27,146 +27,23 @@
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<mixer>
<!-- These are the initial mixer settings -->
- <ctl name="Voice Rx Device Mute" id="0" value="0" />
- <ctl name="Voice Rx Device Mute" id="1" value="-1" />
- <ctl name="Voice Rx Device Mute" id="2" value="20" />
- <ctl name="Voice Tx Mute" id="0" value="0" />
- <ctl name="Voice Tx Mute" id="1" value="-1" />
- <ctl name="Voice Tx Mute" id="2" value="500" />
- <ctl name="Voice Rx Gain" id="0" value="0" />
- <ctl name="Voice Rx Gain" id="1" value="-1" />
- <ctl name="Voice Rx Gain" id="2" value="20" />
- <ctl name="Voice Sidetone Enable" value="0" />
- <ctl name="Voip Tx Mute" id="0" value="0" />
- <ctl name="Voip Tx Mute" id="1" value="500" />
- <ctl name="Voip Rx Gain" id="0" value="0" />
- <ctl name="Voip Rx Gain" id="1" value="20" />
- <ctl name="Voip Mode Config" value="12" />
- <ctl name="Voip Rate Config" value="0" />
- <ctl name="Voip Evrc Min Max Rate Config" id="0" value="1" />
- <ctl name="Voip Evrc Min Max Rate Config" id="1" value="4" />
- <ctl name="Voip Dtx Mode" value="0" />
- <ctl name="TTY Mode" value="OFF" />
- <ctl name="SLIMBUS_0_RX Port Mixer SLIM_0_TX" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="SLIMBUS_6_RX Port Mixer SLIM_0_TX" value="0" />
- <ctl name="SLIMBUS_4_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_4_RX Audio Mixer MultiMedia2" value="0" />
- <ctl name="MultiMedia5 Mixer SLIM_0_TX" value="0" />
<ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
- <ctl name="MultiMedia5 Mixer SLIM_8_TX" value="0" />
- <ctl name="MultiMedia5 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia1 Mixer SLIM_4_TX" value="0" />
- <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
- <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
- <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia1" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia3" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia6" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="0" />
- <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia2" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia2" value="0" />
- <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia3" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia3" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia4" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia5" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia5" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia5" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia7" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia7" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia7" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia7" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia8" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia8" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia8" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia10" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia10" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia10" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia11" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia11" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia11" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia11" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia12" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia12" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia12" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia12" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia13" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia13" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia13" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia13" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia14" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia14" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia14" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia14" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia15" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia15" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia15" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia15" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="0" />
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia3" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="0" />
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="0" />
- <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia5 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
- <ctl name="MultiMedia6 Mixer SLIM_0_TX" value="0" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="ZERO" />
- <ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="ZERO" />
- <ctl name="AANC_SLIM_0_RX MUX" value="ZERO" />
- <!-- HFP start -->
- <ctl name="HFP_PRI_AUX_UL_HL Switch" value="0" />
- <ctl name="SLIMBUS_0_RX Port Mixer SLIM_7_TX" value="0" />
- <!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
<!-- usb headset -->
@@ -184,97 +61,12 @@
<ctl name="MultiMedia1 Mixer AFE_PCM_TX" value="0" />
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="0" />
<!-- usb headset end -->
- <!-- fm -->
- <ctl name="SLIMBUS_8 LOOPBACK Volume" value="0" />
- <ctl name="SLIMBUS_0_RX Port Mixer SLIM_8_TX" value="0" />
- <ctl name="SLIMBUS_DL_HL Switch" value="0" />
- <ctl name="SLIMBUS_6_RX Port Mixer SLIM_8_TX" value="0" />
- <ctl name="SLIMBUS6_DL_HL Switch" value="0" />
- <ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia2 Mixer TERT_TDM_TX_0" value="0" />
- <!-- fm end -->
-
- <!-- Multimode Voice1 -->
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="SLIM_6_RX_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="0" />
- <!-- Multimode Voice1 BTSCO -->
- <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="0" />
- <!-- Multimode Voice1 USB headset -->
- <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="0" />
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="0" />
- <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="0" />
- <!-- Multimode Voice1 Display-Port -->
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="0" />
- <!-- Miltimode Voice1 end-->
-
- <!-- Multimode Voice2 -->
- <ctl name="SLIM_0_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="SLIM_6_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="VoiceMMode2_Tx Mixer SLIM_0_TX_MMode2" value="0" />
- <!-- Multimode Voice2 BTSCO -->
- <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="0" />
- <!-- Multimode Voice2 USB headset -->
- <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="0" />
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="0" />
- <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="0" />
- <!-- Multimode Voice2 Display-Port -->
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="0" />
- <!-- Multimode Voice2 end-->
-
- <!-- Voice external ec. reference -->
- <ctl name="VOC_EXT_EC MUX" value="NONE" />
- <!-- Voice external ec. reference end -->
<!-- RT Proxy Cal -->
<ctl name="RT_PROXY_1_RX SetCalMode" value="CAL_MODE_NONE" />
<ctl name="RT_PROXY_1_TX SetCalMode" value="CAL_MODE_NONE" />
<!-- RT Proxy Cal end -->
- <!-- Incall Recording -->
- <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="0" />
- <ctl name="MultiMedia1 Mixer VOC_REC_DL" value="0" />
- <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="0" />
- <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="0" />
- <!-- Incall Recording End -->
-
- <!-- Incall Music -->
- <ctl name="Incall_Music Audio Mixer MultiMedia2" value="0" />
- <!-- Incall Music End -->
-
- <!-- compress-voip-call start -->
- <ctl name="SLIM_0_RX_Voice Mixer Voip" value="0" />
- <ctl name="SLIM_6_RX_Voice Mixer Voip" value="0" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="0" />
- <ctl name="SLIM_7_RX_Voice Mixer Voip" value="0" />
- <ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="0" />
- <ctl name="AFE_PCM_RX_Voice Mixer Voip" value="0" />
- <ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value="0" />
- <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="0" />
- <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="0" />
- <!-- compress-voip-call end-->
-
- <!-- Audio BTSCO -->
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia6" value="0" />
- <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
- <!-- audio record compress-->
- <ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
- <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
- <!-- audio record compress end-->
-
- <!-- ADSP testfwk -->
- <ctl name="SLIMBUS_DL_HL Switch" value="0" />
- <ctl name="SLIMBUS6_DL_HL Switch" value="0" />
- <!-- ADSP testfwk end-->
-
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia3" value="0" />
<!-- hfp-sco -->
@@ -340,60 +132,10 @@
<path name="deep-buffer-playback" />
</path>
- <path name="deep-buffer-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-display-port">
- <path name="deep-buffer-playback display-port" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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>
- <path name="deep-buffer-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-usb-headphones">
- <path name="deep-buffer-playback usb-headphones" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-headphones">
- <path name="deep-buffer-playback headphones" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-bt-sco">
- <path name="deep-buffer-playback bt-sco" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-bt-sco-wb">
- <path name="deep-buffer-playback bt-sco-wb" />
- <path name="deep-buffer-playback" />
- </path>
-
<path name="low-latency-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia5" value="1" />
@@ -403,64 +145,14 @@
<path name="low-latency-playback" />
</path>
- <path name="low-latency-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="low-latency-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
- <path name="low-latency-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback speaker-and-usb-headphones">
- <path name="low-latency-playback usb-headphones" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="low-latency-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="low-latency-playback speaker-and-headphones">
- <path name="low-latency-playback headphones" />
- <path name="low-latency-playback" />
- </path>
-
<path name="low-latency-playback resume">
<ctl name="MultiMedia5_RX QOS Vote" value="Enable" />
</path>
- <path name="low-latency-playback speaker-and-bt-sco">
- <path name="low-latency-playback bt-sco" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="low-latency-playback speaker-and-bt-sco-wb">
- <path name="low-latency-playback bt-sco-wb" />
- <path name="low-latency-playback" />
- </path>
-
<path name="audio-ull-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia8" value="1" />
@@ -470,59 +162,10 @@
<path name="audio-ull-playback" />
</path>
- <path name="audio-ull-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback speaker-and-headphones">
- <path name="audio-ull-playback" />
- <path name="audio-ull-playback headphones" />
- </path>
-
- <path name="audio-ull-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="audio-ull-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
</path>
- <path name="audio-ull-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="audio-ull-playback speaker-and-bt-sco">
- <path name="audio-ull-playback bt-sco" />
- <path name="audio-ull-playback" />
- </path>
-
- <path name="audio-ull-playback speaker-and-bt-sco-wb">
- <path name="audio-ull-playback bt-sco-wb" />
- <path name="audio-ull-playback" />
- </path>
-
- <path name="multi-channel-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
- </path>
-
<path name="multi-channel-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
</path>
@@ -536,229 +179,33 @@
<path name="compress-offload-playback" />
</path>
- <path name="compress-offload-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="silence-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="1" />
- </path>
-
- <path name="compress-offload-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
- <path name="compress-offload-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback speaker-and-usb-headphones">
- <path name="compress-offload-playback usb-headphones" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback speaker-and-headphones">
- <path name="compress-offload-playback headphones" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-and-bt-sco">
- <path name="compress-offload-playback bt-sco" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-and-bt-sco-wb">
- <path name="compress-offload-playback bt-sco-wb" />
- <path name="compress-offload-playback" />
- </path>
-
<path name="compress-offload-playback2">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia7" value="1" />
</path>
- <path name="compress-offload-playback2 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback2 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
</path>
- <path name="compress-offload-playback2 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-usb-headphones">
- <path name="compress-offload-playback2 usb-headphones" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-headphones">
- <path name="compress-offload-playback2 headphones" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-bt-sco">
- <path name="compress-offload-playback2 bt-sco" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback2 bt-sco-wb" />
- <path name="compress-offload-playback2" />
- </path>
-
<path name="compress-offload-playback3">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
- <path name="compress-offload-playback3 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback3 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
</path>
- <path name="compress-offload-playback3 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-usb-headphones">
- <path name="compress-offload-playback3 usb-headphones" />
- <path name="compress-offload-playback3" />
- </path>
-
- <path name="compress-offload-playback3 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-headphones">
- <path name="compress-offload-playback3 headphones" />
- <path name="compress-offload-playback3" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-bt-sco">
- <path name="compress-offload-playback3 bt-sco" />
- <path name="compress-offload-playback3" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback3 bt-sco-wb" />
- <path name="compress-offload-playback3" />
- </path>
-
<path name="compress-offload-playback4">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
- <path name="compress-offload-playback4 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="voice-call">
<!-- Added AFE loopback ctrl path for CS-Voice call-->
<ctl name="TERT_TDM_RX_0 Port Mixer AUX_PCM_UL_TX" value="1" />
@@ -769,381 +216,51 @@
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
</path>
- <path name="compress-offload-playback4 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-usb-headphones">
- <path name="compress-offload-playback4 usb-headphones" />
- <path name="compress-offload-playback4" />
- </path>
-
- <path name="compress-offload-playback4 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-headphones">
- <path name="compress-offload-playback4 headphones" />
- <path name="compress-offload-playback4" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-bt-sco">
- <path name="compress-offload-playback4 bt-sco" />
- <path name="compress-offload-playback4" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback4 bt-sco-wb" />
- <path name="compress-offload-playback4" />
- </path>
-
<path name="compress-offload-playback5">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
- <path name="compress-offload-playback5 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback5 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
</path>
- <path name="compress-offload-playback5 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-usb-headphones">
- <path name="compress-offload-playback5 usb-headphones" />
- <path name="compress-offload-playback5" />
- </path>
-
- <path name="compress-offload-playback5 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-headphones">
- <path name="compress-offload-playback5 headphones" />
- <path name="compress-offload-playback5" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-bt-sco">
- <path name="compress-offload-playback5 bt-sco" />
- <path name="compress-offload-playback5" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback5 bt-sco-wb" />
- <path name="compress-offload-playback5" />
- </path>
-
<path name="compress-offload-playback6">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
- <path name="compress-offload-playback6 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback6 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
</path>
- <path name="compress-offload-playback6 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-usb-headphones">
- <path name="compress-offload-playback6 usb-headphones" />
- <path name="compress-offload-playback6" />
- </path>
-
- <path name="compress-offload-playback6 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-headphones">
- <path name="compress-offload-playback6 headphones" />
- <path name="compress-offload-playback6" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-bt-sco">
- <path name="compress-offload-playback6 bt-sco" />
- <path name="compress-offload-playback6" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback6 bt-sco-wb" />
- <path name="compress-offload-playback6" />
- </path>
-
<path name="compress-offload-playback7">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
- <path name="compress-offload-playback7 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback7 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
</path>
- <path name="compress-offload-playback7 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-usb-headphones">
- <path name="compress-offload-playback7 usb-headphones" />
- <path name="compress-offload-playback7" />
- </path>
-
- <path name="compress-offload-playback7 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-headphones">
- <path name="compress-offload-playback7 headphones" />
- <path name="compress-offload-playback7" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-bt-sco">
- <path name="compress-offload-playback7 bt-sco" />
- <path name="compress-offload-playback7" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback7 bt-sco-wb" />
- <path name="compress-offload-playback7" />
- </path>
-
<path name="compress-offload-playback8">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
- <path name="compress-offload-playback8 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback8 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
</path>
- <path name="compress-offload-playback8 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-usb-headphones">
- <path name="compress-offload-playback8 usb-headphones" />
- <path name="compress-offload-playback8" />
- </path>
-
- <path name="compress-offload-playback8 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-headphones">
- <path name="compress-offload-playback8 headphones" />
- <path name="compress-offload-playback8" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-bt-sco">
- <path name="compress-offload-playback8 bt-sco" />
- <path name="compress-offload-playback8" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback8 bt-sco-wb" />
- <path name="compress-offload-playback8" />
- </path>
-
<path name="compress-offload-playback9">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
- <path name="compress-offload-playback9 display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
<path name="compress-offload-playback9 afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
- <path name="compress-offload-playback9 usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-usb-headphones">
- <path name="compress-offload-playback9 usb-headphones" />
- <path name="compress-offload-playback9" />
- </path>
-
- <path name="compress-offload-playback9 headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 headphones-44.1">
- <ctl name="SLIMBUS_5_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 headphones-dsd">
- <ctl name="SLIMBUS_2_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-headphones">
- <path name="compress-offload-playback9 headphones" />
- <path name="compress-offload-playback9" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-bt-sco">
- <path name="compress-offload-playback9 bt-sco" />
- <path name="compress-offload-playback9" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-bt-sco-wb">
- <path name="compress-offload-playback9 bt-sco-wb" />
- <path name="compress-offload-playback9" />
- </path>
-
<!-- The following use cases are used for car streams -->
<path name="media-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
@@ -1165,6 +282,11 @@
<ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia10" value="1" />
</path>
+ <path name="alerts-playback alerts-bus-out">
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia31" value="1" />
+ </path>
+
<path name="front-passenger-playback pax-bus-out">
<ctl name="QUAT_TDM_RX_0 Channels" value="Eight" />
<ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia23" value="1" />
@@ -1178,6 +300,19 @@
<path name="audio-record">
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
+ </path>
+
+ <path name="audio-record2">
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="MultiMedia33 Mixer TERT_TDM_TX_0" value="1" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
+ </path>
+
+ <path name="audio-record3">
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="MultiMedia34 Mixer TERT_TDM_TX_0" value="1" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
</path>
<path name="front-passenger-record">
@@ -1190,60 +325,25 @@
<ctl name="MultiMedia22 Mixer QUAT_TDM_TX_0" value="1" />
</path>
- <path name="audio-record usb-headset-mic">
- <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="1" />
- </path>
-
- <path name="audio-record bt-sco">
- <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="audio-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <path name="audio-record bt-sco" />
- </path>
-
<path name="audio-record capture-fm">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
</path>
+ <path name="echo-reference-external">
+ <ctl name="MultiMedia2 Mixer SEC_TDM_TX_0" value="1" />
+ </path>
+
<path name="audio-record-compress">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
</path>
- <path name="audio-record-compress bt-sco">
- <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="audio-record-compress bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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>
-
<path name="low-latency-record">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
</path>
- <path name="low-latency-record bt-sco">
- <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="low-latency-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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>
-
<path name="low-latency-record capture-fm">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="1" />
@@ -1254,140 +354,6 @@
<ctl name="MultiMedia2 Mixer TERT_TDM_TX_0" value="1" />
</path>
- <path name="play-fm">
- <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
- <ctl name="SLIMBUS_0_RX Port Mixer SLIM_8_TX" value="1" />
- <ctl name="SLIMBUS_DL_HL Switch" value="1" />
- </path>
-
- <path name="play-fm headphones">
- <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
- <ctl name="SLIMBUS_6_RX Port Mixer SLIM_8_TX" value="1" />
- <ctl name="SLIMBUS6_DL_HL Switch" value="1" />
- </path>
-
- <path name="incall-rec-uplink">
- <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
- </path>
-
- <path name="incall-rec-uplink bt-sco">
- <path name="incall-rec-uplink" />
- </path>
-
- <path name="incall-rec-uplink bt-sco-wb">
- <path name="incall-rec-uplink" />
- </path>
-
- <path name="incall-rec-uplink usb-headset-mic">
- <path name="incall-rec-uplink" />
- </path>
-
- <path name="incall-rec-uplink afe-proxy">
- <path name="incall-rec-uplink" />
- </path>
-
- <path name="incall-rec-uplink-compress">
- <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="1" />
- </path>
-
- <path name="incall-rec-uplink-compress bt-sco">
- <path name="incall-rec-uplink-compress" />
- </path>
-
- <path name="incall-rec-uplink-compress bt-sco-wb">
- <path name="incall-rec-uplink-compress" />
- </path>
-
- <path name="incall-rec-uplink-compress usb-headset-mic">
- <path name="incall-rec-uplink-compress" />
- </path>
-
- <path name="incall-rec-uplink-compress afe-proxy">
- <path name="incall-rec-uplink-compress" />
- </path>
-
- <path name="incall-rec-downlink">
- <ctl name="MultiMedia1 Mixer VOC_REC_DL" value="1" />
- </path>
-
- <path name="incall-rec-downlink bt-sco">
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-downlink bt-sco-wb">
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-downlink usb-headset-mic">
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-downlink afe-proxy">
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-downlink-compress">
- <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="1" />
- </path>
-
- <path name="incall-rec-downlink-compress bt-sco">
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-downlink-compress bt-sco-wb">
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-downlink-compress usb-headset-mic">
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-downlink-compress afe-proxy">
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink">
- <path name="incall-rec-uplink" />
- <path name="incall-rec-downlink" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink bt-sco">
- <path name="incall-rec-uplink-and-downlink" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink bt-sco-wb">
- <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>
-
- <path name="incall-rec-uplink-and-downlink afe-proxy">
- <path name="incall-rec-uplink-and-downlink" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink-compress">
- <path name="incall-rec-uplink-compress" />
- <path name="incall-rec-downlink-compress" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink-compress bt-sco">
- <path name="incall-rec-uplink-and-downlink-compress" />
- </path>
-
- <path name="incall-rec-uplink-and-downlink-compress bt-sco-wb">
- <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>
-
- <path name="incall-rec-uplink-and-downlink-compress afe-proxy">
- <path name="incall-rec-uplink-and-downlink-compress" />
- </path>
-
<path name="icc-call">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia9" value="1" />
@@ -1415,12 +381,14 @@
</path>
<path name="hfp-sco bt-sco">
- <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="One" />
<path name="hfp-sco" />
</path>
<path name="hfp-sco bt-sco-mmsecns">
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
<path name="hfp-sco" />
</path>
@@ -1430,12 +398,14 @@
</path>
<path name="hfp-sco-wb bt-sco-wb">
- <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="One" />
<path name="hfp-sco-wb" />
</path>
<path name="hfp-sco-wb bt-sco-mmsecns">
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
+ <ctl name="TERT_TDM_TX_0 ADM Channels" value="Four" />
<path name="hfp-sco-wb" />
</path>
@@ -1449,197 +419,17 @@
<path name="hfp-sco-downlink" />
</path>
- <path name="compress-voip-call">
- <ctl name="SLIM_0_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call bt-a2dp">
- <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call headphones">
- <ctl name="SLIM_6_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
- </path>
-
-
- <path name="compress-voip-call bt-sco">
- <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
- <path name="compress-voip-call usb-headphones">
- <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
- </path>
-
- <path name="compress-voip-call usb-headset">
- <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
- <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
- </path>
-
- <path name="voicemmode1-call">
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call headphones">
- <ctl name="SLIM_6_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call bt-sco">
- <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
- <path name="voicemmode1-call usb-headphones">
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call usb-headset">
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call display-port-and-usb-headset-mic">
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="1" />
- </path>
-
- <path name="voicemmode1-call display-port">
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode1" value="1" />
- <ctl name="VoiceMMode1_Tx Mixer TERT_TDM_TX_0_MMode1" value="1" />
- </path>
-
- <path name="voicemmode2-call">
- <ctl name="TERT_TDM_RX_2_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call headphones">
- <ctl name="SLIM_6_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call bt-sco">
- <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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" />
- </path>
-
- <path name="voicemmode2-call usb-headphones">
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call usb-headset">
- <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call display-port-and-usb-headset-mic">
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="1" />
- </path>
-
- <path name="voicemmode2-call display-port">
- <ctl name="DISPLAY_PORT_RX_Voice Mixer VoiceMMode2" value="1" />
- <ctl name="VoiceMMode2_Tx Mixer TERT_TDM_TX_0_MMode2" value="1" />
- </path>
-
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
- <path name="audio-playback-voip headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <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>
- <path name="audio-playback-voip usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="audio-playback-voip speaker-and-display-port">
- <path name="audio-playback-voip display-port" />
- <path name="audio-playback-voip" />
- </path>
-
<!-- VoIP Tx settings -->
- <path name="audio-record-voip">
- <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
- </path>
-
- <path name="audio-record-voip usb-headset-mic">
- <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="1" />
- </path>
-
- <path name="audio-record-voip bt-sco">
- <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="audio-record-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <path name="audio-record-voip bt-sco" />
- </path>
- <path name="spkr-rx-calib">
- <ctl name="SLIMBUS_DL_HL Switch" value="1" />
- </path>
<path name="spkr-vi-record">
</path>
@@ -1723,10 +513,6 @@
<path name="sidetone-iir" />
</path>
- <path name="afe-sidetone">
- <ctl name="Voice Sidetone Enable" value="1" />
- </path>
-
<path name="speaker-mic">
<path name="dmic3" />
</path>
@@ -2181,31 +967,6 @@
<path name="tty-headphones">
</path>
- <path name="voice-tty-full-headphones">
- <ctl name="TTY Mode" value="FULL" />
- <path name="tty-headphones" />
- </path>
-
- <path name="voice-tty-vco-headphones">
- <ctl name="TTY Mode" value="VCO" />
- <path name="tty-headphones" />
- </path>
-
- <path name="voice-tty-hco-handset">
- <ctl name="TTY Mode" value="HCO" />
- <path name="handset" />
- </path>
-
- <path name="voice-tty-hco-handset-qrd">
- <ctl name="TTY Mode" value="HCO" />
- <path name="handset-qrd" />
- </path>
-
- <path name="voice-tty-hco-handset-hdk">
- <ctl name="TTY Mode" value="HCO" />
- <path name="handset-qrd" />
- </path>
-
<path name="voice-tty-full-headset-mic">
<path name="amic2" />
</path>
@@ -2245,21 +1006,11 @@
<!-- USB TTY start -->
<!-- full: both end tty -->
- <path name="voice-tty-full-usb">
- <ctl name="TTY Mode" value="FULL" />
- <path name="usb-headphones" />
- </path>
<path name="voice-tty-full-usb-mic">
<path name="usb-headset-mic" />
</path>
- <!-- vco, in: handset mic use existing, out: tty -->
- <path name="voice-tty-vco-usb">
- <ctl name="TTY Mode" value="VCO" />
- <path name="usb-headphones" />
- </path>
-
<!-- hco, in: tty, out: speaker, use existing handset -->
<path name="voice-tty-hco-usb-mic">
<path name="voice-tty-full-usb-mic" />
@@ -2268,126 +1019,6 @@
<!-- USB TTY end -->
<!-- Added for ADSP testfwk -->
- <path name="ADSP testfwk">
- <ctl name="SLIMBUS_DL_HL Switch" value="1" />
- </path>
-
- <path name="bt-a2dp">
- <ctl name="SLIM7_RX ADM Channels" value="Two" />
- </path>
-
- <path name="speaker-and-bt-a2dp">
- <path name="speaker" />
- <path name="bt-a2dp" />
- </path>
-
- <path name="deep-buffer-playback bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
- </path>
-
- <path name="low-latency-playback bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
- </path>
-
- <path name="compress-offload-playback bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
- </path>
-
- <path name="compress-offload-playback2 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
- </path>
-
- <path name="compress-offload-playback3 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
- </path>
-
- <path name="compress-offload-playback4 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
- </path>
-
- <path name="compress-offload-playback5 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
- </path>
-
- <path name="compress-offload-playback6 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
- </path>
-
- <path name="compress-offload-playback7 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
- </path>
-
- <path name="compress-offload-playback8 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
- </path>
-
- <path name="compress-offload-playback9 bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="audio-ull-playback bt-a2dp">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
- </path>
-
- <path name="deep-buffer-playback speaker-and-bt-a2dp">
- <path name="deep-buffer-playback bt-a2dp" />
- <path name="deep-buffer-playback" />
- </path>
-
- <path name="compress-offload-playback speaker-and-bt-a2dp">
- <path name="compress-offload-playback bt-a2dp" />
- <path name="compress-offload-playback" />
- </path>
-
- <path name="low-latency-playback speaker-and-bt-a2dp">
- <path name="low-latency-playback bt-a2dp" />
- <path name="low-latency-playback" />
- </path>
-
- <path name="compress-offload-playback2 speaker-and-bt-a2dp">
- <path name="compress-offload-playback2 bt-a2dp" />
- <path name="compress-offload-playback2" />
- </path>
-
- <path name="compress-offload-playback3 speaker-and-bt-a2dp">
- <path name="compress-offload-playback3 bt-a2dp" />
- <path name="compress-offload-playback3" />
- </path>
-
- <path name="compress-offload-playback4 speaker-and-bt-a2dp">
- <path name="compress-offload-playback4 bt-a2dp" />
- <path name="compress-offload-playback4" />
- </path>
-
- <path name="compress-offload-playback5 speaker-and-bt-a2dp">
- <path name="compress-offload-playback5 bt-a2dp" />
- <path name="compress-offload-playback5" />
- </path>
-
- <path name="compress-offload-playback6 speaker-and-bt-a2dp">
- <path name="compress-offload-playback6 bt-a2dp" />
- <path name="compress-offload-playback6" />
- </path>
-
- <path name="compress-offload-playback7 speaker-and-bt-a2dp">
- <path name="compress-offload-playback7 bt-a2dp" />
- <path name="compress-offload-playback7" />
- </path>
-
- <path name="compress-offload-playback8 speaker-and-bt-a2dp">
- <path name="compress-offload-playback8 bt-a2dp" />
- <path name="compress-offload-playback8" />
- </path>
-
- <path name="compress-offload-playback9 speaker-and-bt-a2dp">
- <path name="compress-offload-playback9 bt-a2dp" />
- <path name="compress-offload-playback9" />
- </path>
-
- <path name="audio-ull-playback speaker-and-bt-a2dp">
- <path name="audio-ull-playback bt-a2dp" />
- <path name="audio-ull-playback" />
- </path>
<path name="mmap-playback">
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
@@ -2413,173 +1044,12 @@
<ctl name="QUIN_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
- <path name="mmap-playback headphones">
- <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback speaker-and-headphones">
- <path name="mmap-playback" />
- <path name="mmap-playback headphones" />
- </path>
-
- <path name="mmap-playback bt-sco">
- <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="16000" />
- <path name="mmap-playback bt-sco" />
- </path>
-
<path name="mmap-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
</path>
- <path name="mmap-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-buffer-playback hdmi">
- <ctl name="HDMI Mixer MultiMedia16" value="1" />
- </path>
-
- <path name="mmap-playback speaker-and-hdmi">
- <path name="mmap-playback hdmi" />
- <path name="mmap-playback" />
- </path>
-
- <path name="mmap-playback speaker-and-display-port">
- <path name="mmap-playback display-port" />
- <path name="mmap-playback" />
- </path>
-
- <path name="mmap-playback speaker-and-usb-headphones">
- <path name="mmap-playback usb-headphones" />
- <path name="mmap-playback" />
- </path>
-
- <path name="mmap-record">
- <ctl name="MultiMedia16 Mixer SLIM_0_TX" value="1" />
- </path>
-
- <path name="mmap-record bt-sco">
- <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
- </path>
-
- <path name="mmap-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
- <path name="mmap-record bt-sco" />
- </path>
-
- <path name="mmap-record capture-fm">
- <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="1" />
- </path>
-
- <path name="mmap-record usb-headset-mic">
- <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
- </path>
-
- <path name="hifi-playback display-port">
- <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
- </path>
-
<path name="hifi-playback afe-proxy">
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
</path>
- <path name="hifi-playback usb-headset">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
- </path>
-
- <path name="hifi-playback usb-headphones">
- <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
- </path>
-
- <path name="hifi-record usb-headset-mic">
- <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
- </path>
-
- <path name="incall_music_uplink">
- <ctl name="Incall_Music Audio Mixer MultiMedia9" value="1" />
- </path>
-
- <path name="incall_music_uplink speaker">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink handset">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink handset-hac">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink display-port">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink bt-sco">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink bt-sco-wb">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-display-port">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink afe-proxy">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink usb-headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink usb-headset">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-usb-headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-headphones">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-bt-sco">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink voice-tty-hco-handset">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink speaker-and-bt-a2dp">
- <path name="incall_music_uplink" />
- </path>
-
- <path name="incall_music_uplink bt-a2dp">
- <path name="incall_music_uplink" />
- </path>
- <path name="incall_music_uplink afe-proxy">
- <path name="incall_music_uplink" />
- </path>
-
</mixer>
diff --git a/configs/msmsteppe_au/mixer_paths_custom.xml b/configs/msmsteppe_au/mixer_paths_custom.xml
index 3360fa7..1895b28 100644
--- a/configs/msmsteppe_au/mixer_paths_custom.xml
+++ b/configs/msmsteppe_au/mixer_paths_custom.xml
@@ -1152,6 +1152,11 @@
<ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia10" value="1" />
</path>
+ <path name="alerts-playback">
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia31" value="1" />
+ </path>
+
<path name="front-passenger-playback">
<ctl name="QUAT_TDM_RX_0 Channels" value="Eight" />
<ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia23" value="1" />
diff --git a/configs/msmsteppe_au/msmsteppe_au.mk b/configs/msmsteppe_au/msmsteppe_au.mk
index 769333d..d5c4986 100644
--- a/configs/msmsteppe_au/msmsteppe_au.mk
+++ b/configs/msmsteppe_au/msmsteppe_au.mk
@@ -4,7 +4,11 @@
BOARD_USES_ALSA_AUDIO := true
ifneq ($(TARGET_USES_AOSP_FOR_AUDIO), true)
-USE_CUSTOM_AUDIO_POLICY := 1
+ifeq ($(TARGET_FWK_SUPPORTS_FULL_VALUEADDS),true)
+USE_CUSTOM_AUDIO_POLICY := 0
+else
+USE_CUSTOM_AUDIO_POLICY := 0
+endif
AUDIO_FEATURE_ENABLED_COMPRESS_CAPTURE := false
AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := false
AUDIO_FEATURE_ENABLED_DYNAMIC_ECNS := true
@@ -34,11 +38,16 @@
AUDIO_FEATURE_ENABLED_3D_AUDIO := false
DOLBY_ENABLE := false
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
+SOONG_CONFIG_NAMESPACES += tinycompressnamespace
+SOONG_CONFIG_tinycompressnamespace := ext_compress_format_enabled
+SOONG_CONFIG_tinycompressnamespace_ext_compress_format_enabled := true
endif
USE_XML_AUDIO_POLICY_CONF := 1
AUDIO_FEATURE_ENABLED_DLKM := true
BOARD_SUPPORTS_SOUND_TRIGGER := true
+BOARD_SUPPORTS_OPENSOURCE_STHAL := true
+AUDIO_FEATURE_ENABLED_SVA_CHANNEL_IDX := true
AUDIO_FEATURE_ENABLED_INSTANCE_ID := true
ifeq ($(TARGET_HAS_GENERIC_KERNEL_HEADERS), true)
AUDIO_FEATURE_ENABLED_GKI := true
@@ -74,15 +83,42 @@
AUDIO_FEATURE_ENABLED_BATTERY_LISTENER := false
##AUDIO_FEATURE_FLAGS
+AUDIO_HARDWARE += audio.a2dp.default
+AUDIO_HARDWARE += audio.usb.default
+AUDIO_HARDWARE += audio.r_submix.default
+AUDIO_HARDWARE += audio.primary.$(MSMSTEPPE)
+
+#HAL Wrapper
+AUDIO_WRAPPER := libqahw
+AUDIO_WRAPPER += libqahwwrapper
+
+#HAL Test app
+AUDIO_HAL_TEST_APPS := hal_play_test
+AUDIO_HAL_TEST_APPS += hal_rec_test
+
+PRODUCT_PACKAGES += $(AUDIO_HARDWARE)
+PRODUCT_PACKAGES += $(AUDIO_WRAPPER)
+PRODUCT_PACKAGES += $(AUDIO_HAL_TEST_APPS)
+
AUDIO_FEATURE_ENABLED_AUTO_HAL := true
AUDIO_FEATURE_ENABLED_EXT_HW_PLUGIN := true
AUDIO_FEATURE_ENABLED_AUDIO_CONTROL_HAL := true
+ifneq ( ,$(filter T Tiramisu 13, $(PLATFORM_VERSION)))
+AUDIO_FEATURE_ENABLED_AUDIO_CONTROL_HAL_AIDL := true
+endif
ifneq ($(ENABLE_HYP),true)
AUDIO_FEATURE_ENABLED_AUTO_AUDIOD := true
AUDIO_FEATURE_ENABLED_DAEMON_SUPPORT := true
+AUDIO_FEATURE_ENABLED_SILENT_BOOT := true
endif
AUDIO_FEATURE_ENABLED_FM_TUNER_EXT := true
AUDIO_FEATURE_ENABLED_ICC := true
+ifneq ( ,$(filter S 12, $(PLATFORM_VERSION)))
+AUDIO_FEATURE_ENABLED_POWER_POLICY := true
+endif
+ifeq ($(TARGET_BOARD_PLATFORM)$(TARGET_BOARD_SUFFIX), sm6150_au)
+AUDIO_FEATURE_ENABLED_AUDIO_PARSERS := true
+endif
##AUTOMOTIVE_AUDIO_FEATURE_FLAGS
ifneq ($(strip $(TARGET_USES_RRO)), true)
@@ -260,7 +296,7 @@
#enable hw aac encoder by default
PRODUCT_PROPERTY_OVERRIDES += \
-vendor.audio.hw.aac.encoder=true
+vendor.audio.hw.aac.encoder=false
#force offload using hardware decoders for FLAC, WMA & APE
PRODUCT_PROPERTY_OVERRIDES += \
@@ -298,6 +334,13 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.hal.output.suspend.supported=false
+#Enable AAudio MMAP/NOIRQ data path
+#1 is AAUDIO_POLICY_NEVER so it will not try MMAP
+#2 is AAUDIO_POLICY_AUTO so it will try MMAP then fallback to Legacy path
+PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_policy=1
+#Allow EXCLUSIVE then fall back to SHARED.
+PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_exclusive_policy=1
+
#enable mirror-link feature
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.enable.mirrorlink=false
@@ -330,7 +373,7 @@
vendor.audio.feature.compress_in.enable=false \
vendor.audio.feature.compress_meta_data.enable=false \
vendor.audio.feature.compr_voip.enable=false \
-vendor.audio.feature.concurrent_capture.enable=false \
+vendor.audio.feature.concurrent_capture.enable=true \
vendor.audio.feature.custom_stereo.enable=false \
vendor.audio.feature.display_port.enable=false \
vendor.audio.feature.dsm_feedback.enable=false \
@@ -365,7 +408,9 @@
vendor.audio.feature.audiozoom.enable=false \
vendor.audio.feature.snd_mon.enable=false \
vendor.audio.feature.auto_hal.enable=true \
-vendor.audio.feature.synth.enable=true
+vendor.audio.feature.synth.enable=true \
+vendor.audio.feature.powerpolicy.enable=true \
+vendor.audio.feature.concurrent_pcm_record.enable=true
else
# Non-Generic ODM varient related
PRODUCT_ODM_PROPERTIES += \
@@ -377,7 +422,7 @@
vendor.audio.feature.compress_in.enable=true \
vendor.audio.feature.compress_meta_data.enable=true \
vendor.audio.feature.compr_voip.enable=false \
-vendor.audio.feature.concurrent_capture.enable=false \
+vendor.audio.feature.concurrent_capture.enable=true \
vendor.audio.feature.custom_stereo.enable=true \
vendor.audio.feature.display_port.enable=true \
vendor.audio.feature.dsm_feedback.enable=false \
@@ -412,7 +457,9 @@
vendor.audio.feature.audiozoom.enable=false \
vendor.audio.feature.snd_mon.enable=false \
vendor.audio.feature.auto_hal.enable=true \
-vendor.audio.feature.synth.enable=true
+vendor.audio.feature.synth.enable=true \
+vendor.audio.feature.powerpolicy.enable=true \
+vendor.audio.feature.concurrent_pcm_record.enable=true
endif
# for HIDL related packages
@@ -420,7 +467,6 @@
android.hardware.audio@2.0-service \
android.hardware.audio@2.0-impl \
android.hardware.audio.effect@2.0-impl \
- android.hardware.soundtrigger@2.1-impl \
android.hardware.audio@4.0 \
android.hardware.audio.common@4.0 \
android.hardware.audio.common@4.0-util \
@@ -446,6 +492,10 @@
android.hardware.audio.effect@6.0 \
android.hardware.audio.effect@6.0-impl
+# enable sound trigger hidl hal 2.3
+PRODUCT_PACKAGES += \
+ android.hardware.soundtrigger@2.3-impl
+
PRODUCT_PACKAGES_ENG += \
VoicePrintTest \
VoicePrintDemo
@@ -454,9 +504,11 @@
AudioSettings
# for HIDL related audiocontrol packages
+ifeq ( ,$(filter 12 13,$(PLATFORM_VERSION)))
PRODUCT_PACKAGES += \
android.hardware.automotive.audiocontrol@2.0-service \
android.hardware.automotive.audiocontrol@2.0
+endif
ifeq ($(ENABLE_HYP),true)
PRODUCT_PROPERTY_OVERRIDES += \
@@ -470,3 +522,6 @@
persist.vendor.audio.calfile7=/vendor/etc/acdbdata/ADP/Headset_cal.acdb\
persist.vendor.audio.calfile8=/vendor/etc/acdbdata/ADP/Speaker_cal.acdb
endif
+
+#Audio sample file for early services
+PRODUCT_COPY_FILES += device/qcom/$(MSMSTEPPE)_au/bike_bell.wav:$(TARGET_COPY_OUT_VENDOR)/etc/bike_bell.wav
diff --git a/configs/msmsteppe_au/sound_trigger_platform_info.xml b/configs/msmsteppe_au/sound_trigger_platform_info.xml
index 1545922..a7d0459 100644
--- a/configs/msmsteppe_au/sound_trigger_platform_info.xml
+++ b/configs/msmsteppe_au/sound_trigger_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2013-2021, 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 -->
@@ -26,17 +26,20 @@
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<sound_trigger_platform_info>
- <param version="0x0103" /> <!-- this must be the first param -->
+ <param version="0x0106" /> <!-- this must be the first param -->
<!--- Version History: -->
<!--- 0x0101: Legacy version. -->
<!--- 0x0102: Includes acdb_ids param with the gcs_usecase tag. This matches -->
<!--- the gcs_usecase with the acdb device that uses it. -->
<!--- 0x0103: app_type and in_channels added to <lsm usecase> and out_channels -->
<!--- added to <adm_config> -->
+<!--- 0x0104: instance id support for both WDSP<CPE> and ADSP lsm usecases -->
+<!--- 0x0105: Select <lsm_usecase> based on capture device -->
+<!--- 0x0106: Add module_params tag to support multiple module and param ids -->
+<!--- per <lsm_usecase> -->
+
<common_config>
- <param implementer_version="0x0100" />
- <param max_cpe_sessions="1" />
- <param max_wdsp_sessions="2" />
+ <param implementer_version="0x0102" />
<param max_ape_sessions="8" />
<param enable_failure_detection="false" />
<param support_device_switch="false" />
@@ -45,55 +48,47 @@
<param transit_to_adsp_on_battery_charging="false" />
<!-- Below backend params must match with port used in mixer path file -->
<!-- param used to configure backend sample rate, format and channels -->
- <!-- uncomment TX_CDC_DMA_TX_3 values for internal codec and comment SLIM_0_TX values -->
<param backend_port_name="TERT_TDM_TX_0" />
- <!-- param backend_port_name="TX_CDC_DMA_TX_3" /-->
<!-- Param used to match and obtain device backend index -->
<param backend_dai_name="TERT_TDM_TX_0" />
- <!-- param backend_dai_name="TX_CDC_DMA_TX_3" /-->
+ <!-- Param used to indicate if SVA has dedicated SLIM ports -->
+ <param dedicated_sva_path="true" />
+ <param platform_lpi_enable="false" />
<param concurrent_capture="true" />
<param concurrent_voice_call="false" />
<param concurrent_voip_call="false" />
</common_config>
<acdb_ids>
- <!--For internal codec please enable below device-->
- <!--param DEVICE_HANDSET_MIC_APE="130" /-->
<param DEVICE_HANDSET_MIC_APE="100" />
<param DEVICE_HANDSET_MIC_CPE="128" />
<param DEVICE_HANDSET_MIC_ECPP_CPE="128" />
<param DEVICE_HANDSET_TMIC_CPE="130" />
+ <param DEVICE_HANDSET_TMIC_APE="157" />
<param DEVICE_HANDSET_MIC_PP_APE="135" />
<param DEVICE_HANDSET_QMIC_APE="132" />
<param DEVICE_HEADSET_MIC_CPE="139" />
+ <param DEVICE_HEADSET_MIC_APE="141" />
<param DEVICE_HANDSET_DMIC_APE="149" />
- <param DEVICE_HANDSET_DMIC_CPE="153" />
- <param DEVICE_HANDSET_TMIC_APE="157" />
+ <param DEVICE_HANDSET_DMIC_CPE="148" />
</acdb_ids>
+
<!-- Multiple sound_model_config tags can be listed, each with unique -->
<!-- vendor_uuid. The below tag represents QTI SVA engine sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid. -->
+
+ <!-- QTI SVA -->
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
- <param execution_type="ADSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
- <param library="libsmwrapper.so" />
- <param max_cpe_phrases="6" />
- <param max_cpe_users="3" />
+ <param execution_type="ADSP" />
+ <param merge_first_stage_sound_models="false"/>
<param max_ape_phrases="20" />
<param max_ape_users="10" />
<!-- Profile specific data which the algorithm can support -->
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
- <!-- adm_cfg_profile should match with the one defined under adm_config -->
- <!-- Set it to NONE if LSM directly connects to AFE -->
- <param adm_cfg_profile="FFECNS" />
- <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
- <!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
- <!-- is one of FLUENCE, FLUENCE_STEREO, FFECNS values -->
- <param fluence_type="FLUENCE_QMIC" />
- <!-- wdsp_fluence_type: fluence disabled: "NONE" -->
- <!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_TMIC", "FLUENCE_QMIC" -->
- <param wdsp_fluence_type="NONE" />
+ <param dam_token_id="1"/>
+
<arm_ss_usecase>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
@@ -111,72 +106,58 @@
<param bit_wdith="16"/>
<param channel_count="1"/>
</arm_ss_usecase>
- <gcs_usecase>
- <param uid="0x1" />
- <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
- <!-- module_id, instance_id, param_id -->
- <param load_sound_model_ids="0x00012C0D, 0x2, 0x00012C14" />
- <param confidence_levels_ids="0x00012C0D, 0x2, 0x00012C28" />
- <param detection_event_ids="0x00012C0D, 0x2, 0x00012C29" />
- <param read_cmd_ids="0x00020013, 0x2, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x2, 0x00020016" />
- <param custom_config_ids="0x00012C0D, 0x2, 0x00012C20" />
- </gcs_usecase>
- <gcs_usecase>
- <param uid="0x2" />
- <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
- <param load_sound_model_ids="0x00012C0D, 0x3, 0x00012C14" />
- <param confidence_levels_ids="0x00012C0D, 0x3, 0x00012C28" />
- <param detection_event_ids="0x00012C0D, 0x3, 0x00012C29" />
- <param read_cmd_ids="0x00020013, 0x3, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x3, 0x00020016" />
- <param custom_config_ids="0x00012C0D, 0x3, 0x00012C20" />
- </gcs_usecase>
- <gcs_usecase>
- <param uid="0x7" />
- <param acdb_devices="DEVICE_HANDSET_DMIC_CPE" />
- <param load_sound_model_ids="0x00012C0D, 0x7, 0x00012C14" />
- <param confidence_levels_ids="0x00012C0D, 0x7, 0x00012C28" />
- <param detection_event_ids="0x00012C0D, 0x7, 0x00012B05" />
- <param read_cmd_ids="0x00020013, 0x7, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x7, 0x00020016" />
- <param custom_config_ids="0x00012C0D, 0x7, 0x00012C20" />
- <param det_event_type_ids="0x00012C0D, 0x7, 0x00012C2A" />
- </gcs_usecase>
- <gcs_usecase>
- <param uid="0x8" />
- <param acdb_devices="DEVICE_HANDSET_DMIC_CPE" />
- <param load_sound_model_ids="0x00012C0D, 0x8, 0x00012C14" />
- <param confidence_levels_ids="0x00012C0D, 0x8, 0x00012C28" />
- <param detection_event_ids="0x00012C0D, 0x8, 0x00012B05" />
- <param read_cmd_ids="0x00020013, 0x8, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x8, 0x00020016" />
- <param custom_config_ids="0x00012C0D, 0x8, 0x00012C20" />
- <param det_event_type_ids="0x00012C0D, 0x8, 0x00012C2A" />
- </gcs_usecase>
+ <arm_ss_usecase>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x8" />
+ <param module_lib="libcapiv2svarnn.so"/>
+ <param sample_rate="16000"/>
+ <param bit_wdith="16"/>
+ <param channel_count="1"/>
+ </arm_ss_usecase>
<!-- Module and param ids with which the algorithm is integrated
in non-graphite firmware (note these must come after gcs params)
Extends flexibility to have different ids based on execution type.
valid execution_type values: "WDSP" "ADSP" -->
<lsm_usecase>
+ <param capture_device="HANDSET" />
+ <!-- adm_cfg_profile should match with the one defined under adm_config -->
+ <!-- Set it to NONE if LSM directly connects to AFE -->
+ <param adm_cfg_profile="FFECNS" />
+ <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
+ <!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
+ <!-- is one of FLUENCE, FLUENCE_STEREO, FFECNS values -->
+ <param fluence_type="FLUENCE_QMIC" />
<param execution_mode="ADSP" />
+ <!-- lpi_mode: "NON_LPI_BARGE_IN", "NON_LPI", "LPI" -->
+ <!-- NON_LPI_BARGE_IN: Default non-LPI mode type. lsm_usecase -->
+ <!-- must be present with this mode type to handle barge-in. -->
+ <!-- NON_LPI: If another lsm_usecase is present with this mode -->
+ <!-- type, it will be used for non-LPI non-barge-in usecases. -->
+ <!-- If not present, NON_LPI_BARGE_IN mode type will be used. -->
+ <!-- LPI: This mode type will be used for LPI usecases. -->
<param app_type="2" /> <!-- app type used in ACDB -->
+ <param pdk5_app_type="1" />
<param in_channels="4"/> <!-- Module input channels -->
- <param load_sound_model_ids="0x00012C1C, 0x00012C14" />
- <param unload_sound_model_ids="0x00012C1C, 0x00012C15" />
- <param confidence_levels_ids="0x00012C1C, 0x00012C07" />
- <param operation_mode_ids="0x00012C1C, 0x00012C02" />
- <param polling_enable_ids="0x00012C1C, 0x00012C1B" />
- <param custom_config_ids="0x00012C1C, 0x00012C20" />
- <param det_event_type_ids="0x00012C1C, 0x00012C2C" />
- </lsm_usecase>
- <lsm_usecase>
- <param execution_mode="WDSP" />
- <param load_sound_model_ids="0x00012C0D, 0x00012C14" />
- <param unload_sound_model_ids="0x00012C0D, 0x00012C15" />
- <param confidence_levels_ids="0x00012C0D, 0x00012C07" />
- <param operation_mode_ids="0x00012C0D, 0x00012C02" />
- <param custom_config_ids="0x00012C0D, 0x00012C20" />
+ <module_params>
+ <param module_type="GMM" />
+ <param load_sound_model_ids="0x00012C1C, 0x0, 0x00012C14" />
+ <param unload_sound_model_ids="0x00012C1C, 0x0, 0x00012C15" />
+ <param confidence_levels_ids="0x00012C1C, 0x0, 0x00012C07" />
+ <param operation_mode_ids="0x00012C1C, 0x0, 0x00012C02" />
+ <param polling_enable_ids="0x00012C1C, 0x0, 0x00012C1B" />
+ <param custom_config_ids="0x00012C1C, 0x0, 0x00012C20" />
+ <param det_event_type_ids="0x00012C1C, 0x0, 0x00012C2C" />
+ <param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ </module_params>
+ <module_params>
+ <param module_type="PDK5" />
+ <param load_sound_model_ids="0x00012C35, 0x0, 0x00012C36" />
+ <param unload_sound_model_ids="0x00012C35, 0x0, 0x00012C37" />
+ <param confidence_levels_ids="0x00012C35, 0x0, 0x00012C38" />
+ <param custom_config_ids="0x00012C35, 0x0, 0x00012C20" />
+ <param det_event_type_ids="0x00012C35, 0x0, 0x00012C2C" />
+ <param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ </module_params>
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
@@ -185,17 +166,12 @@
transfer mode -->
<param capture_keyword="PCM_packet, RT, 2000" />
<param client_capture_read_delay="2000" />
- <param lpi_enable="false" />
- <param concurrent_capture="true" />
- <param concurrent_voice_call="false" />
- <param concurrent_voip_call="false" />
</sound_model_config>
- <!-- QTI Music Detection !-->
+ <!-- QTI Music Detection !-->
<sound_model_config>
<param vendor_uuid="876c1b46-9d4d-40cc-a4fd-4d5ec7a80e47" />
- <param execution_type="ADSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
- <param library="libsmwrapper.so" />
+ <param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
<param max_cpe_phrases="1" />
<param max_cpe_users="1" />
<param max_ape_phrases="1" />
@@ -214,18 +190,6 @@
<!-- wdsp_fluence_type: fluence disabled: "NONE" -->
<!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_TMIC", "FLUENCE_QMIC" -->
<param wdsp_fluence_type="NONE" />
- <gcs_usecase>
- <param uid="0x5" />
- <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE, DEVICE_HEADSET_MIC_CPE" />
- <!-- module_id, instance_id, param_id -->
- <param load_sound_model_ids="0x00012C2E, 0x6, 0x00012C14" />
- <param confidence_levels_ids="0x00012C2E, 0x6, 0x00012C28" />
- <param detection_event_ids="0x00012C2E, 0x6, 0x00012B05" />
- <param read_cmd_ids="0x00020013, 0x6, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x6, 0x00020016" />
- <param custom_config_ids="0x00012C2E, 0x6, 0x00012C2D" />
- <param det_event_type_ids="0x00012C2E, 0x6, 0x00012C2C" />
- </gcs_usecase>
<!-- Module and param ids with which the algorithm is integrated
in non-graphite firmware (note these must come after gcs params)
Extends flexibility to have different ids based on execution type.
@@ -234,11 +198,13 @@
<param execution_mode="ADSP" />
<param app_type="4" /> <!-- app type for MD used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
- <param load_sound_model_ids="0x00012C22, 0x00012C14" />
- <param unload_sound_model_ids="0x00012C22, 0x00012C15" />
- <param confidence_levels_ids="0x00012C22, 0x00012C07" />
- <param det_event_type_ids="0x00012C22, 0x00012C2C" />
- <param custom_config_ids="0x00012C22, 0x00012C30" />
+ <module_params>
+ <param load_sound_model_ids="0x00012C22, 0x0, 0x00012C14" />
+ <param unload_sound_model_ids="0x00012C22, 0x0, 0x00012C15" />
+ <param confidence_levels_ids="0x00012C22, 0x0, 0x00012C07" />
+ <param det_event_type_ids="0x00012C22, 0x0, 0x00012C2C" />
+ <param custom_config_ids="0x00012C22, 0x0, 0x00012C30" />
+ </module_params>
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
@@ -249,11 +215,10 @@
<param client_capture_read_delay="2000" />
</sound_model_config>
-<!-- Sound model config for Hotword !-->
+ <!-- Google Hotword -->
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
<param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
- <param library="none" />
<param max_cpe_phrases="1" />
<param max_cpe_users="1" />
<param max_ape_phrases="1" />
@@ -265,62 +230,67 @@
<!-- adm_cfg_profile should match with the one defined under adm_config -->
<!-- Set it to NONE if LSM directly connects to AFE -->
<param adm_cfg_profile="NONE" />
- <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC", -->
- <!-- "FLUENCE_QMIC". param value is valid when adm_cfg_profile="FLUENCE"-->
+ <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC" -->
+ <!-- "FLUENCE_QMIC". Param value is valid when adm_cfg_profile -->
+ <!-- is one of FLUENCE, FLUENCE_STEREO, FFECNS values -->
<param fluence_type="FLUENCE_DMIC" />
<!-- wdsp_fluence_type: fluence disabled: "NONE" -->
- <!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_TMIC", "FLUENCE_QMIC" -->
+ <!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_QMIC" -->
<param wdsp_fluence_type="NONE" />
- <gcs_usecase>
- <param uid="0x3" />
- <param acdb_devices="DEVICE_HANDSET_MIC_CPE, DEVICE_HANDSET_TMIC_CPE" />
- <param load_sound_model_ids="0x18000001, 0x4, 0x00012C14" />
- <param confidence_levels_ids="0x18000001, 0x4, 0x00012C28" />
- <param detection_event_ids="0x18000001, 0x4, 0x00012C29" />
- <param read_cmd_ids="0x00020013, 0x4, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x4, 0x00020016" />
- <param custom_config_ids="0x18000001, 0x4, 0x00012C20" />
- </gcs_usecase>
- <gcs_usecase>
- <param uid="0x4" />
- <param acdb_devices="DEVICE_HANDSET_DMIC_CPE" />
- <param load_sound_model_ids="0x18000001, 0x5, 0x00012C14" />
- <param confidence_levels_ids="0x18000001, 0x5, 0x00012C28" />
- <param detection_event_ids="0x18000001, 0x5, 0x00012C29" />
- <param read_cmd_ids="0x00020013, 0x5, 0x00020015" />
- <param read_rsp_ids="0x00020013, 0x5, 0x00020016" />
- <param custom_config_ids="0x18000001, 0x5, 0x00012C20" />
- </gcs_usecase>
- <!-- Module and param ids with which the algorithm is integrated
- in non-graphite firmware (note these must come after gcs params)
- Extends flexibility to have different ids based on execution type.
- valid execution_type values: "WDSP" "ADSP" -->
<lsm_usecase>
<param execution_mode="ADSP" />
<param app_type="3" /> <!-- app type used in ACDB -->
<param in_channels="1"/> <!-- Module input channels -->
- <param load_sound_model_ids="0x18000001, 0x00012C14" />
- <param unload_sound_model_ids="0x18000001, 0x00012C15" />
- <param confidence_levels_ids="0x18000001, 0x00012C07" />
- <param operation_mode_ids="0x18000001, 0x00012C02" />
- <param polling_enable_ids="0x18000001, 0x00012C1B" />
- <param custom_config_ids="0x18000001, 0x00012C20" />
- </lsm_usecase>
-
- <lsm_usecase>
- <param execution_mode="WDSP" />
- <param load_sound_model_ids="0x18000001, 0x00012C14" />
- <param unload_sound_model_ids="0x18000001, 0x00012C15" />
- <param confidence_levels_ids="0x18000001, 0x00012C07" />
- <param operation_mode_ids="0x18000001, 0x00012C02" />
- <param custom_config_ids="0x18000001, 0x00012C20" />
+ <module_params>
+ <param load_sound_model_ids="0x18000001, 0x0, 0x00012C14" />
+ <param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
+ <param confidence_levels_ids="0x18000001, 0x0, 0x00012C07" />
+ <param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
+ <param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
+ <param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
+ </module_params>
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
<!-- transfer_mode: "FTRT" or "RT" -->
<!-- kw_duration is in milli seconds. It is valid only for FTRT
transfer mode -->
- <param capture_keyword="PCM_packet, RT, 2000" />
+ <param capture_keyword="PCM_raw, FTRT, 2000" />
+ <param client_capture_read_delay="2000" />
+ </sound_model_config>
+
+ <!-- Google Music Detection -->
+ <sound_model_config>
+ <param vendor_uuid="9f6ad62a-1f0b-11e7-87c5-40a8f03d3f15" />
+ <param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
+ <param max_ape_phrases="1" />
+ <param max_ape_users="1" />
+ <!-- Profile specific data which the algorithm can support -->
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param out_channels="1"/> <!-- Module output channels -->
+ <!-- fluence enabled: "FLUENCE_DMIC", "FLUENCE_QMIC" -->
+ <param wdsp_fluence_type="NONE" />
+ <!-- adm_cfg_profile should match with the one defined under adm_config -->
+ <!-- Set it to NONE if LSM directly connects to AFE -->
+ <param adm_cfg_profile="NONE" />
+ <param fluence_type="FLUENCE_DMIC" />
+ <lsm_usecase>
+ <param execution_mode="ADSP" />
+ <param app_type="3" /> <!-- app type used in ACDB -->
+ <param in_channels="1"/> <!-- Module input channels -->
+ <module_params>
+ <param load_sound_model_ids="0x18000001, 0x0, 0x00012C14" />
+ <param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
+ <param confidence_levels_ids="0x18000001, 0x0, 0x00012C07" />
+ <param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
+ <param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
+ <param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
+ </module_params>
+ </lsm_usecase>
+ <!-- kw_duration is in milli seconds. It is valid only for FTRT
+ transfer mode -->
+ <param capture_keyword="MULAW_raw, FTRT, 5000" />
<param client_capture_read_delay="2000" />
</sound_model_config>
diff --git a/configs/sdm660/audio_output_policy.conf b/configs/sdm660/audio_output_policy.conf
index 921c8b8..419089c 100644
--- a/configs/sdm660/audio_output_policy.conf
+++ b/configs/sdm660/audio_output_policy.conf
@@ -19,7 +19,7 @@
app_type 69937
}
voip_rx {
- flags AUDIO_OUTPUT_FLAG_VOIP_RX|AUDIO_OUTPUT_FLAG_DIRECT
+ flags AUDIO_OUTPUT_FLAG_VOIP_RX
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|48000
bit_width 16
diff --git a/configs/sdm660/audio_platform_info_tasha_skus.xml b/configs/sdm660/audio_platform_info_tasha_skus.xml
index a4ae7c1..ed35b4b 100644
--- a/configs/sdm660/audio_platform_info_tasha_skus.xml
+++ b/configs/sdm660/audio_platform_info_tasha_skus.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2014, 2016-2018, 2020 The Linux Foundation. All rights reserved.-->
+<!-- Copyright (c) 2014, 2016-2018, 2020-2021 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 -->
@@ -95,7 +95,7 @@
<param key="spkr_2_tz_name" value="wsatz.14"/>
<!-- In the below value string, the value indicates default mono -->
<!-- speaker. It can be set to either left or right -->
- <param key="mono_speaker" value="right"/>
+ <param key="mono_speaker" value="left"/>
<!-- In the below value string, first parameter indicates size -->
<!-- followed by perf lock options -->
<param key="perf_lock_opts" value="4, 0x101, 0x704, 0x20F, 0x1E01"/>
diff --git a/configs/sdm660/audio_policy_configuration.xml b/configs/sdm660/audio_policy_configuration.xml
index 1d70af6..8440944 100644
--- a/configs/sdm660/audio_policy_configuration.xml
+++ b/configs/sdm660/audio_policy_configuration.xml
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -76,8 +112,6 @@
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
- <profile name="" format="dynamic"
- samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
@@ -153,7 +187,7 @@
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source"
- flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX">
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
@@ -172,7 +206,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
@@ -212,7 +246,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -248,11 +282,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -275,11 +309,11 @@
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
@@ -356,7 +390,7 @@
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
- sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="surround_sound"
sources="Built-In Mic,Built-In Back Mic"/>
<route type="mix" sink="record_24"
diff --git a/configs/sdm660/sdm660.mk b/configs/sdm660/sdm660.mk
index f859681..073c955 100644
--- a/configs/sdm660/sdm660.mk
+++ b/configs/sdm660/sdm660.mk
@@ -118,7 +118,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/sdm660/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/sdm660/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/sdm660/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
- frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml
diff --git a/configs/sdm660/sound_trigger_platform_info.xml b/configs/sdm660/sound_trigger_platform_info.xml
index 271f99d..13d1adc 100644
--- a/configs/sdm660/sound_trigger_platform_info.xml
+++ b/configs/sdm660/sound_trigger_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2013-2017, 2021 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 -->
@@ -51,6 +51,7 @@
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
<param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
+ <param second_stage_supported="false" />
<param app_type="2" /> <!-- app type used in ACDB -->
<param library="libsmwrapper.so" />
<param max_cpe_phrases="6" />
diff --git a/configs/sdm710/audio_policy_configuration.xml b/configs/sdm710/audio_policy_configuration.xml
index 57a3d7e..89ed904 100644
--- a/configs/sdm710/audio_policy_configuration.xml
+++ b/configs/sdm710/audio_policy_configuration.xml
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -80,8 +116,6 @@
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
- <profile name="" format="dynamic"
- samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
@@ -181,7 +215,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
@@ -220,7 +254,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -256,11 +290,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -283,11 +317,11 @@
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
@@ -364,7 +398,7 @@
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
- sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="surround_sound"
sources="Built-In Mic,Built-In Back Mic"/>
<route type="mix" sink="record_24"
diff --git a/configs/sdm710/mixer_paths.xml b/configs/sdm710/mixer_paths.xml
index daa484b..388bd81 100644
--- a/configs/sdm710/mixer_paths.xml
+++ b/configs/sdm710/mixer_paths.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2017, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2017, 2020-2021 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 -->
@@ -673,6 +673,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback hdmi">
<ctl name="HDMI Mixer MultiMedia2" value="1" />
</path>
diff --git a/configs/sdm710/mixer_paths_360cam.xml b/configs/sdm710/mixer_paths_360cam.xml
index 886976c..5121645 100755
--- a/configs/sdm710/mixer_paths_360cam.xml
+++ b/configs/sdm710/mixer_paths_360cam.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2017, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2017, 2020-2021 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 -->
@@ -685,6 +685,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback hdmi">
<ctl name="HDMI Mixer MultiMedia2" value="1" />
</path>
diff --git a/configs/sdm710/mixer_paths_mtp.xml b/configs/sdm710/mixer_paths_mtp.xml
index 8aba3cd..7fb7425 100644
--- a/configs/sdm710/mixer_paths_mtp.xml
+++ b/configs/sdm710/mixer_paths_mtp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2018, 2020-2021 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 -->
@@ -687,6 +687,31 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/sdm710/mixer_paths_skuw.xml b/configs/sdm710/mixer_paths_skuw.xml
index a802441..9c1e69e 100644
--- a/configs/sdm710/mixer_paths_skuw.xml
+++ b/configs/sdm710/mixer_paths_skuw.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2018, 2020-2021 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 -->
@@ -732,6 +732,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/sdm710/mixer_paths_tasha.xml b/configs/sdm710/mixer_paths_tasha.xml
index cd6a80b..0dd0336 100644
--- a/configs/sdm710/mixer_paths_tasha.xml
+++ b/configs/sdm710/mixer_paths_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2018, 2020-2021 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 -->
@@ -905,6 +905,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/sdm710/mixer_paths_tavil.xml b/configs/sdm710/mixer_paths_tavil.xml
index 9be605e..55aac60 100644
--- a/configs/sdm710/mixer_paths_tavil.xml
+++ b/configs/sdm710/mixer_paths_tavil.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-2018, 2020-2021 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 -->
@@ -803,6 +803,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/sdm845/audio_platform_info.xml b/configs/sdm845/audio_platform_info.xml
index 9d0c9e6..b8c2ad8 100644
--- a/configs/sdm845/audio_platform_info.xml
+++ b/configs/sdm845/audio_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2014, 2016-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2014, 2016-2021, 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 -->
@@ -99,6 +99,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="27" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="27" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="27" />
+ <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="27" />
+ <usecase name="USECASE_INCALL_MUSIC_UPLINK2" type="out" id="27" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsatz.13"/>
diff --git a/configs/sdm845/audio_policy_configuration.xml b/configs/sdm845/audio_policy_configuration.xml
index d1e77a7..af9229f 100644
--- a/configs/sdm845/audio_policy_configuration.xml
+++ b/configs/sdm845/audio_policy_configuration.xml
@@ -17,11 +17,47 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
- <globalConfiguration speaker_drc_enabled="true"/>
+ <globalConfiguration speaker_drc_enabled="true" call_screen_mode_supported="true"/>
<!-- Modules section:
@@ -80,8 +116,6 @@
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
- <profile name="" format="dynamic"
- samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
@@ -170,7 +204,13 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ </mixPort>
+ <mixPort name="incall_music_uplink" role="source"
+ flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000,48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -209,7 +249,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -245,11 +285,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -272,11 +312,11 @@
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
@@ -343,7 +383,7 @@
<route type="mix" sink="USB Headset Out"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
- sources="voice_tx"/>
+ sources="voice_tx,incall_music_uplink"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
@@ -351,7 +391,7 @@
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
- sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="record_24"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
<route type="mix" sink="mmap_no_irq_in"
diff --git a/configs/sdm845/mixer_paths_qvr.xml b/configs/sdm845/mixer_paths_qvr.xml
index 5029ee6..9e8b3d6 100644
--- a/configs/sdm845/mixer_paths_qvr.xml
+++ b/configs/sdm845/mixer_paths_qvr.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-2018, 2020-2021 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 -->
@@ -791,6 +791,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/sdm845/mixer_paths_skuk.xml b/configs/sdm845/mixer_paths_skuk.xml
index ab92bc9..507d8bf 100644
--- a/configs/sdm845/mixer_paths_skuk.xml
+++ b/configs/sdm845/mixer_paths_skuk.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2017, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2017, 2020-2021 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 -->
@@ -741,6 +741,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="multi-channel-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
diff --git a/configs/sdm845/mixer_paths_tavil.xml b/configs/sdm845/mixer_paths_tavil.xml
index f3960ff..dfe89d8 100644
--- a/configs/sdm845/mixer_paths_tavil.xml
+++ b/configs/sdm845/mixer_paths_tavil.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-2018, 2020-2021 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 -->
@@ -814,6 +814,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/sdm845/sdm845.mk b/configs/sdm845/sdm845.mk
index 4762cad..0fefe53 100644
--- a/configs/sdm845/sdm845.mk
+++ b/configs/sdm845/sdm845.mk
@@ -52,7 +52,7 @@
AUDIO_FEATURE_ENABLED_DISPLAY_PORT := true
AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false
AUDIO_FEATURE_ENABLED_HFP := true
-AUDIO_FEATURE_ENABLED_INCALL_MUSIC := false
+AUDIO_FEATURE_ENABLED_INCALL_MUSIC := true
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE := true
AUDIO_FEATURE_ENABLED_SPKR_PROTECTION := true
diff --git a/configs/trinket/audio_policy_configuration.xml b/configs/trinket/audio_policy_configuration.xml
index aec4edb..4855cd9 100755
--- a/configs/trinket/audio_policy_configuration.xml
+++ b/configs/trinket/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -17,6 +17,42 @@
limitations under the License.
-->
+<!--
+Changes from Qualcomm Innovation Center are provided under the following license:
+
+Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted (subject to the limitations in the
+disclaimer below) provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
@@ -80,8 +116,6 @@
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
- <profile name="" format="dynamic"
- samplingRates="dynamic" channelMasks="dynamic"/>
</mixPort>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
@@ -187,7 +221,7 @@
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
@@ -222,7 +256,7 @@
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -258,11 +292,11 @@
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -285,11 +319,11 @@
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
+ samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
@@ -362,7 +396,7 @@
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
- sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="record_24"
diff --git a/configs/trinket/mixer_paths_idp.xml b/configs/trinket/mixer_paths_idp.xml
index f6096fe..b592f26 100644
--- a/configs/trinket/mixer_paths_idp.xml
+++ b/configs/trinket/mixer_paths_idp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -750,6 +750,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/trinket/mixer_paths_qrd.xml b/configs/trinket/mixer_paths_qrd.xml
index ac0c73f..2e2396f 100644
--- a/configs/trinket/mixer_paths_qrd.xml
+++ b/configs/trinket/mixer_paths_qrd.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2021, 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 -->
@@ -742,6 +742,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/trinket/mixer_paths_tasha.xml b/configs/trinket/mixer_paths_tasha.xml
index a1dfbb1..5fb7984 100644
--- a/configs/trinket/mixer_paths_tasha.xml
+++ b/configs/trinket/mixer_paths_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2019-2021, 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 -->
@@ -911,6 +911,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/trinket/mixer_paths_tashalite.xml b/configs/trinket/mixer_paths_tashalite.xml
index f08b9b9..1595778 100644
--- a/configs/trinket/mixer_paths_tashalite.xml
+++ b/configs/trinket/mixer_paths_tashalite.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2019-2021, 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 -->
@@ -910,6 +910,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configs/trinket/mixer_paths_tavil.xml b/configs/trinket/mixer_paths_tavil.xml
index 643ff03..3d54593 100644
--- a/configs/trinket/mixer_paths_tavil.xml
+++ b/configs/trinket/mixer_paths_tavil.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-2021, 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 -->
@@ -804,6 +804,26 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-safe-and-usb-headset">
+ <path name="audio-ull-playback usb-headset" />
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="audio-ull-playback speaker-and-bt-sco">
<path name="audio-ull-playback bt-sco" />
<path name="audio-ull-playback" />
diff --git a/configure.ac b/configure.ac
old mode 100755
new mode 100644
index 89326c0..7fc0d3f
--- a/configure.ac
+++ b/configure.ac
@@ -42,6 +42,29 @@
AC_HELP_STRING([--with-glib],
[enable glib, Build against glib. Use this when building for HLOS systems which use glib]))
+AC_ARG_ENABLE(target,
+ [AS_HELP_STRING([--enable-target=TARGET_SUPPORT],
+ [Specify the target product to build])],
+ [AS_CASE([$enableval],
+ [qtiquingvm], [TARGET_SUPPORT=msmnile_au],
+ [sa81*], [TARGET_SUPPORT=msmnile_au],
+ [sa61*], [TARGET_SUPPORT=msmsteppe_au],
+ [qrbx210], [TARGET_SUPPORT=qrbx210],
+ [qrb5165], [TARGET_SUPPORT=qrb5165],
+ [sdmsteppe], [TARGET_SUPPORT=sdmsteppe],
+ [qcs6490], [TARGET_SUPPORT=qcs6490],
+ [TARGET_SUPPORT=none])],
+ [TARGET_SUPPORT=none]
+)
+
+AC_ARG_WITH(hal-path,
+ AS_HELP_STRING([--with-hal-path=DIR], [Specify the HAL modules location in run time]),
+ [HAL_PATH="$withval"],
+ [HAL_PATH="no"])
+
+AM_CONDITIONAL([HAL_PATH_SPECIFIED], [test "x${HAL_PATH}" != "xno"])
+AC_SUBST(HAL_PATH)
+
if (test "x${with_glib}" = "xyes"); then
PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.16, dummy=yes,
AC_MSG_ERROR(GThread >= 2.16 is required))
@@ -92,7 +115,37 @@
if (test x$TARGET_SUPPORT = xsdmsteppe); then
AC_SUBST([TARGET_PLATFORM], ["msm8974"])
TARGET_CFLAGS="-DPLATFORM_MSMSTEPPE"
+ TARGET_CFLAGS+=" -DMAX_TARGET_SPECIFIC_CHANNEL_CNT=\"16\""
+ TARGET_CFLAGS+=" -DINCALL_STEREO_CAPTURE_ENABLED"
fi
+if (test x$TARGET_SUPPORT = xqrbx210); then
+ AC_SUBST([TARGET_PLATFORM], ["msm8974"])
+ TARGET_CFLAGS=" -DPLATFORM_BENGAL"
+ TARGET_CFLAGS+=" -DMAX_TARGET_SPECIFIC_CHANNEL_CNT=\"4\""
+ TARGET_CFLAGS+=" -DINCALL_STEREO_CAPTURE_ENABLED"
+fi
+if (test x$TARGET_SUPPORT = xqrb5165); then
+ AC_SUBST([TARGET_PLATFORM], ["msm8974"])
+ TARGET_CFLAGS=" -DPLATFORM_KONA"
+ TARGET_CFLAGS+=" -DMAX_TARGET_SPECIFIC_CHANNEL_CNT=\"4\""
+ TARGET_CFLAGS+=" -DINCALL_STEREO_CAPTURE_ENABLED"
+fi
+if (test x$TARGET_SUPPORT = xqcs6490); then
+ AC_SUBST([TARGET_PLATFORM], ["msm8974"])
+ TARGET_CFLAGS=" -DPLATFORM_LAHAINA"
+ TARGET_CFLAGS+=" -DMAX_TARGET_SPECIFIC_CHANNEL_CNT=\"4\""
+ TARGET_CFLAGS+=" -DINCALL_STEREO_CAPTURE_ENABLED"
+fi
+if (test x$TARGET_SUPPORT = xmsmnile_au); then
+ AC_SUBST([TARGET_PLATFORM], ["msm8974"])
+ TARGET_CFLAGS="-DPLATFORM_MSMNILE"
+fi
+if (test x$TARGET_SUPPORT = xmsmsteppe_au); then
+ AC_SUBST([TARGET_PLATFORM], ["msm8974"])
+ TARGET_CFLAGS="-DPLATFORM_MSMSTEPPE"
+fi
+
+TARGET_CFLAGS+=' -DLE_LIBDIR=\"${libdir}\" '
AC_SUBST([TARGET_CFLAGS])
AM_CONDITIONAL([QTI_AUDIO_SERVER_ENABLED],[test x$BOARD_SUPPORTS_QTI_AUDIO_SERVER = xtrue])
@@ -142,10 +195,12 @@
AM_CONDITIONAL([INSTANCE_ID], [test x$AUDIO_FEATURE_ENABLED_INSTANCE_ID = xtrue])
AM_CONDITIONAL([LL_AS_PRIMARY_OUTPUT], [test x$AUDIO_USE_LL_AS_PRIMARY_OUTPUT = xtrue])
AM_CONDITIONAL([QAHW_V1], [test x$AUDIO_FEATURE_ENABLED_QAHW_1_0 = xtrue])
+AM_CONDITIONAL([DISABLE_COMPRESS_FORMAT], [test x$AUDIO_FEATURE_DISABLE_COMPRESS_FORMAT = xtrue])
AC_CONFIG_FILES([ \
Makefile \
hal/Makefile \
+ hal/audio_extn/Makefile \
post_proc/Makefile \
qahw_api/Makefile \
qahw_api/test/Makefile \
diff --git a/hal/Android.mk b/hal/Android.mk
index e57b859..b28e42c 100644
--- a/hal/Android.mk
+++ b/hal/Android.mk
@@ -8,6 +8,14 @@
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
+ifneq ($(TARGET_BOARD_AUTO),true)
+LIBRARY_TINYCOMPRESS := libtinycompress
+LIBRARY_TINYCOMPRESS_INC := external/tinycompress/include
+else
+LIBRARY_TINYCOMPRESS := libqti-tinycompress
+LIBRARY_TINYCOMPRESS_INC := $(TOP)/vendor/qcom/opensource/tinycompress/include
+endif
+
ifneq ($(filter msm8974 msm8226 msm8084 msm8610 apq8084 msm8994 msm8992 msm8996 msm8998 apq8098_latv sdm845 sdm710 qcs605 sdmshrike msmnile kona lahaina holi sdm660 msm8937 msm8953 $(MSMSTEPPE) $(TRINKET) lito atoll bengal,$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM = msm8974
@@ -126,6 +134,17 @@
LOCAL_CFLAGS += -DPLATFORM_AUTO
endif
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+ifeq ($(TARGET_BOARD_AUTO),true)
+ LIBRARY_TINYCOMPRESS := libqti-tinycompress
+ LIBRARY_TINYCOMPRESS_INC := $(TOP)/vendor/qcom/opensource/tinycompress/include
+else
+ LIBRARY_TINYCOMPRESS := libtinycompress
+ LIBRARY_TINYCOMPRESS_INC := external/tinycompress/include
+endif
+ LOCAL_CFLAGS += -DENABLE_AUDIO_LEGACY_PURE
+endif
+
ifeq ($(TARGET_SUPPORTS_WEARABLES),true)
LOCAL_CFLAGS += -DENABLE_HFP_CALIBRATION
endif
@@ -138,6 +157,10 @@
LOCAL_HEADER_LIBRARIES := libhardware_headers
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+ LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_SRC_FILES := \
audio_hw.c \
acdb.c \
@@ -162,7 +185,7 @@
liblog \
libcutils \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libaudioroute \
libdl \
libaudioutils \
@@ -173,15 +196,19 @@
LOCAL_C_INCLUDES += \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
system/media/audio_utils/include \
external/expat/lib \
- vendor/qcom/opensource/core-utils/fwk-detect \
$(call include-path-for, audio-route) \
$(call include-path-for, audio-effects) \
$(LOCAL_PATH)/$(AUDIO_PLATFORM) \
$(LOCAL_PATH)/audio_extn \
$(LOCAL_PATH)/voice_extn
+ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(BOARD_OPENSOURCE_DIR)/core-utils/fwk-detect
+else
+ LOCAL_C_INCLUDES += vendor/qcom/opensource/core-utils/fwk-detect
+endif # BOARD_OPENSOURCE_DIR
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
@@ -192,7 +219,11 @@
# Hardware specific feature
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/$(BOARD_OPENSOURCE_DIR)/audio-kernel/include
+ else
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ endif # BOARD_OPENSOURCE_DIR
endif
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT)),true)
@@ -245,6 +276,16 @@
LOCAL_SRC_FILES += audio_extn/qaf.c
endif
+# Concurrent capture
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_CONCURRENT_CAPTURE)),true)
+ LOCAL_CFLAGS += -DCONCURRENT_CAPTURE_ENABLED
+endif
+
+# soft step volume params control
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_SOFT_VOLUME)),true)
+ LOCAL_CFLAGS += -DSOFT_VOLUME
+endif
+
# Hardware specific feature
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_QAP)),true)
LOCAL_CFLAGS += -DQAP_EXTN_ENABLED -Wno-tautological-pointer-compare
diff --git a/hal/Makefile.am b/hal/Makefile.am
old mode 100644
new mode 100755
index bdf1b9a..79b5dea
--- a/hal/Makefile.am
+++ b/hal/Makefile.am
@@ -1,24 +1,20 @@
-AM_CFLAGS = -I ${WORKSPACE}/external/tinyalsa/include \
- -I ${WORKSPACE}/system/media/audio_effects/include \
- -I ${WORKSPACE}/system/media/audio_utils/include \
- -I $(top_srcdir)/hal \
+AM_CFLAGS = -I $(top_srcdir)/hal \
-I $(top_srcdir)/hal/audio_extn \
-I $(top_srcdir)/hal/voice_extn \
-I $(PKG_CONFIG_SYSROOT_DIR)/usr/include/audio-kernel \
+ -I $(PKG_CONFIG_SYSROOT_DIR)/usr/include \
-I $(top_srcdir)/hal/${TARGET_PLATFORM}
c_sources = audio_hw.c \
- voice.c \
platform_info.c \
+ voice.c \
+ acdb.c \
${TARGET_PLATFORM}/platform.c \
- audio_extn/audio_extn.c \
audio_extn/utils.c \
- acdb.c
+ audio_extn/audio_extn.c \
+ audio_extn/device_utils.c \
+ audio_extn/audio_stub.c
-if HDMI_EDID
-AM_CFLAGS += -DHDMI_EDID
-c_sources += edid.c
-endif
if FM_POWER_OPT
AM_CFLAGS += -DFM_POWER_OPT
@@ -30,17 +26,6 @@
c_sources += audio_extn/usb.c
endif
-if HFP
-AM_CFLAGS += -DHFP_ENABLED
-c_sources += audio_extn/hfp.c
-endif
-
-if SSR
-AM_CFLAGS += -DSSR_ENABLED
-c_sources += audio_extn/ssr.c
-AM_CFLAGS += -I ${WORKSPACE}/audio/mm-audio-external-noship/surround_sound_3mic/libsurround_3mic_proc/surround_rec_interface/inc/
-endif
-
if MULTI_VOICE_SESSIONS
AM_CFLAGS += -DMULTI_VOICE_SESSION_ENABLED
c_sources += voice_extn/voice_extn.c
@@ -51,21 +36,15 @@
c_sources += voice_extn/compress_voip.c
endif
-if SPKR_PROTECTION
-AM_CFLAGS += -DSPKR_PROT_ENABLED
-c_sources += audio_extn/spkr_protection.c
-endif
+
+AM_CFLAGS += -DAUDIO_GKI_ENABLED
+
if HW_VARIANTS
AM_CFLAGS += -DHW_VARIANTS_ENABLED
c_sources += ${TARGET_PLATFORM}/hw_info.c
endif
-if COMPRESS_CAPTURE
-AM_CFLAGS += -DCOMPRESS_CAPTURE_ENABLED
-c_sources += audio_extn/compress_capture.c
-endif
-
if DTS_EAGLE
AM_CFLAGS += -DDTS_EAGLE
c_sources += audio_extn/dts_eagle.c
@@ -93,36 +72,34 @@
c_sources += audio_extn/source_track.c
endif
-#if LISTEN
-#AM_CFLAGS += -DAUDIO_LISTEN_ENABLED
-#AM_CFLAGS += -I ${WORKSPACE}/audio/mm-audio-external-noship/audio-listen
-#c_sources += audio_extn/listen.c
-#endif
+if LISTEN
+AM_CFLAGS += -DAUDIO_LISTEN_ENABLED
+c_sources += audio_extn/listen.c
+endif
if SOUND_TRIGGER
AM_CFLAGS += -DSOUND_TRIGGER_ENABLED
-AM_CFLAGS += -I ${WORKSPACE}/audio/mm-audio/sound_trigger/
c_sources += audio_extn/soundtrigger.c
endif
if FLAC_SUPPORT
AM_CFLAGS += -DFLAC_OFFLOAD_ENABLED
-AM_CFLAGS += -DCOMPRESS_METADATA_NEEDED
+AM_CFLAGS += -DCOMPRESS_METADATA_ENABLED
endif
if ALAC_SUPPORT
AM_CFLAGS += -DALAC_OFFLOAD_ENABLED
-AM_CFLAGS += -DCOMPRESS_METADATA_NEEDED
+AM_CFLAGS += -DCOMPRESS_METADATA_ENABLED
endif
if VORBIS_SUPPORT
AM_CFLAGS += -DVORBIS_OFFLOAD_ENABLED
-AM_CFLAGS += -DCOMPRESS_METADATA_NEEDED
+AM_CFLAGS += -DCOMPRESS_METADATA_ENABLED
endif
if WMA_SUPPORT
AM_CFLAGS += -DWMA_OFFLOAD_ENABLED
-AM_CFLAGS += -DCOMPRESS_METADATA_NEEDED
+AM_CFLAGS += -DCOMPRESS_METADATA_ENABLED
endif
if COMPRESS_INPUT
@@ -136,7 +113,6 @@
endif
if AUDIO_PARSER
-AM_CFLAGS += -I ${WORKSPACE}/audio/mm-audio/audio-parsers/inc/
if DTSHD_PARSER
AM_CFLAGS += -DDTSHD_PARSER_ENABLED
endif
@@ -170,11 +146,6 @@
c_sources += audio_extn/adsp_hdlr.c
endif
-if A2DP_OFFLOAD
-AM_CFLAGS += -DA2DP_OFFLOAD_ENABLED
-c_sources += audio_extn/a2dp.c
-endif
-
if AUDIO_IP_HDLR
AM_CFLAGS += -DAUDIO_EXTN_IP_HDLR_ENABLED
c_sources += audio_extn/ip_hdlr_intf.c
@@ -209,10 +180,21 @@
AM_CFLAGS += -DINSTANCE_ID_ENABLED
endif
+if HFP
+AM_CFLAGS += -DHFP_ENABLED
+endif
+
if LL_AS_PRIMARY_OUTPUT
AM_CFLAGS += -DUSE_LL_AS_PRIMARY_OUTPUT
endif
+if DISABLE_COMPRESS_FORMAT
+AM_CFLAGS += -DAUDIO_DISABLE_COMPRESS_FORMAT
+endif
+
+if HAL_PATH_SPECIFIED
+AM_CFLAGS += -DHAL_LIBRARY_PATH=\"@HAL_PATH@\"
+endif
h_sources = audio_extn/audio_defs.h \
audio_extn/audio_extn.h \
audio_hw.h \
@@ -224,14 +206,20 @@
lib_LTLIBRARIES = audio.primary.default.la
audio_primary_default_la_SOURCES = $(c_sources)
audio_primary_default_la_LIBADD = $(GLIB_LIBS) -llog -lcutils -ltinyalsa
-audio_primary_default_la_LIBADD += -ltinycompress -laudioroute -ldl -lexpat -laudioutils
+audio_primary_default_la_LIBADD += -ltinycompress -laudioroute -ldl -lexpat -laudioutils -lutils
+audio_primary_default_la_LIBADD += -lm -lc -lresolv
if AUDIO_PARSER
audio_primary_default_la_LIBADD += -laudioparsers
endif
audio_primary_default_la_CFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS)
+if HAL_PATH_SPECIFIED
+audio_primary_default_la_CFLAGS += -DHAL_LIBRARY_PATH=\"@HAL_PATH@\"
+endif
audio_primary_default_la_CFLAGS += -Dstrlcat=g_strlcat
-audio_primary_default_la_CFLAGS += -DINT_MAX=0x7fffffff
+audio_primary_default_la_CFLAGS += -DINT_MAX=0x7fffffff -Wno-error=deprecated-declarations -DPATH_MAX=1024 -DULONG_MAX=0xFFFFFFFFFFFFFFFFUL
audio_primary_default_la_CFLAGS += -D__unused=__attribute__\(\(__unused__\)\)
audio_primary_default_la_CFLAGS += -DLINUX_ENABLED $(TARGET_CFLAGS) -DAUDIO_EXTN_FORMATS_ENABLED
audio_primary_default_la_CFLAGS += -DNDEBUG
audio_primary_default_la_LDFLAGS = -module -shared -avoid-version
+audio_primary_default_la_CPPFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS)
+audio_primary_default_la_CPPFLAGS += -DLINUX_ENABLED
diff --git a/hal/acdb.c b/hal/acdb.c
index f4cebec..4b1ef31 100644
--- a/hal/acdb.c
+++ b/hal/acdb.c
@@ -4,6 +4,10 @@
*
* Copyright (C) 2013 The Android Open Source Project
*
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -170,7 +174,13 @@
ctl = mixer_get_ctl_by_name(mixer, CVD_VERSION_MIXER_CTL);
if (!ctl) {
ALOGE("%s: Could not get ctl for mixer cmd - %s", __func__, CVD_VERSION_MIXER_CTL);
+#ifdef PLATFORM_AUTO
+ ALOGE("%s: Ctl check bypassed in automotive platform for mixer cmd - %s",
+ __func__, CVD_VERSION_MIXER_CTL);
+ goto get_sound_card_name;
+#else
goto cleanup;
+#endif
}
mixer_ctl_update(ctl);
@@ -185,6 +195,9 @@
}
}
+#ifdef PLATFORM_AUTO
+get_sound_card_name:
+#endif
/* Get Sound card name */
snd_card_name = mixer_get_name(mixer);
snd_card_name = platform_get_snd_card_name_for_acdb_loader(snd_card_name);
@@ -234,6 +247,19 @@
list_remove(node);
free(key_info);
}
+
+ if (result < 0) {
+
+ if (snd_card_name)
+ free((void *)snd_card_name);
+
+ if (my_data->acdb_init_data.snd_card_name)
+ free(my_data->acdb_init_data.snd_card_name);
+
+ if (my_data)
+ platform_info_deinit();
+ }
+
free(my_data);
}
diff --git a/hal/acdb.h b/hal/acdb.h
index e1ab942..943a303 100644
--- a/hal/acdb.h
+++ b/hal/acdb.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -47,7 +47,7 @@
struct mixer;
/* Audio calibration related functions */
-typedef void (*acdb_deallocate_t)();
+typedef void (*acdb_deallocate_t)(void);
typedef int (*acdb_init_t)();
typedef int (*acdb_init_v2_t)(const char *, char *, int);
typedef int (*acdb_init_v3_t)(const char *, char *, struct listnode *);
@@ -55,6 +55,7 @@
typedef void (*acdb_send_audio_cal_t)(int, int, int , int);
typedef void (*acdb_send_audio_cal_v3_t)(int, int, int, int, int);
typedef void (*acdb_send_audio_cal_v4_t)(int, int, int, int, int, int);
+typedef void (*acdb_send_audio_cal_v6_t)(int, int, int, int, int, int, int, int);
typedef void (*acdb_send_voice_cal_t)(int, int);
typedef int (*acdb_reload_vocvoltable_t)(int);
typedef int (*acdb_get_default_app_type_t)(void);
@@ -66,6 +67,8 @@
typedef int (*acdb_reload_t) (char *, char *, char *, int);
typedef int (*acdb_reload_v2_t) (char *, char *, char *, struct listnode *);
typedef int (*acdb_send_gain_dep_cal_t)(int, int, int, int, int);
+typedef void (*acdb_set_fluence_nn_state_t)(bool);
+typedef bool (*acdb_get_fluence_nn_state_t)();
struct meta_key_list {
struct listnode list;
diff --git a/hal/audio_extn/Android.mk b/hal/audio_extn/Android.mk
old mode 100755
new mode 100644
index aba6592..209b2fd
--- a/hal/audio_extn/Android.mk
+++ b/hal/audio_extn/Android.mk
@@ -1,3 +1,30 @@
+#AudioHal-primaryHal-Hal path
+ifneq ($(BOARD_OPENSOURCE_DIR), )
+ PRIMARY_HAL_PATH := $(BOARD_OPENSOURCE_DIR)/audio-hal/primary-hal/hal
+ AUDIO_KERNEL_INC := $(TARGET_OUT_INTERMEDIATES)/$(BOARD_OPENSOURCE_DIR)/audio-kernel/include
+else
+ PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
+ AUDIO_KERNEL_INC := $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+endif # BOARD_OPENSOURCE_DIR
+
+ifneq ($(TARGET_BOARD_AUTO),true)
+ LIBRARY_TINYCOMPRESS := libtinycompress
+ LIBRARY_TINYCOMPRESS_INC := external/tinycompress/include
+else
+ LIBRARY_TINYCOMPRESS := libqti-tinycompress
+ LIBRARY_TINYCOMPRESS_INC := $(TOP)/vendor/qcom/opensource/tinycompress/include
+endif
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+ifeq ($(TARGET_BOARD_AUTO),true)
+ LIBRARY_TINYCOMPRESS := libqti-tinycompress
+ LIBRARY_TINYCOMPRESS_INC := $(TOP)/vendor/qcom/opensource/tinycompress/include
+else
+ LIBRARY_TINYCOMPRESS := libtinycompress
+ LIBRARY_TINYCOMPRESS_INC := external/tinycompress/include
+endif
+ LOCAL_CFLAGS += -DENABLE_AUDIO_LEGACY_PURE
+endif
#--------------------------------------------
# Build SND_MONITOR LIB
#--------------------------------------------
@@ -25,28 +52,33 @@
libcutils \
liblog \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libaudioroute \
libdl \
libexpat
LOCAL_C_INCLUDES := \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
system/media/audio_utils/include \
external/expat/lib \
$(call include-path-for, audio-route) \
- vendor/qcom/opensource/audio-hal/primary-hal/hal \
+ $(PRIMARY_HAL_PATH) \
$(call include-path-for, audio-effects)
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DYNAMIC_LOG)), true)
@@ -93,19 +125,19 @@
libcutils \
liblog \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libaudioroute \
libdl \
libexpat
LOCAL_C_INCLUDES := \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
system/media/audio_utils/include \
external/expat/lib \
$(call include-path-for, audio-route) \
- vendor/qcom/opensource/audio-hal/primary-hal/hal \
- vendor/qcom/opensource/audio-hal/primary-hal/hal/$(AUDIO_PLATFORM) \
+ $(PRIMARY_HAL_PATH) \
+ $(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
$(call include-path-for, audio-effects)
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
@@ -115,7 +147,7 @@
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DYNAMIC_LOG)), true)
@@ -162,17 +194,17 @@
libcutils \
liblog \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libaudioroute \
libdl \
libexpat \
libprocessgroup
LOCAL_C_INCLUDES := \
- vendor/qcom/opensource/audio-hal/primary-hal/hal \
- vendor/qcom/opensource/audio-hal/primary-hal/hal/$(AUDIO_PLATFORM) \
+ $(PRIMARY_HAL_PATH) \
+ $(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -180,6 +212,10 @@
$(TARGET_OUT_HEADERS)/mm-audio/surround_sound_3mic/ \
$(TARGET_OUT_HEADERS)/common/inc/
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
@@ -187,7 +223,7 @@
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(PRIMARY_HAL_PATH)
endif
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DYNAMIC_LOG)), true)
@@ -212,7 +248,6 @@
LOCAL_MODULE_OWNER := third_party
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito bengal atoll sdm660 msm8937 msm8953 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -234,14 +269,14 @@
libcutils \
liblog \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libaudioroute \
libdl \
libexpat
LOCAL_C_INCLUDES := \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
system/media/audio_utils/include \
external/expat/lib \
$(call include-path-for, audio-route) \
@@ -252,11 +287,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DYNAMIC_LOG)), true)
@@ -302,26 +342,35 @@
libcutils \
liblog \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libaudioroute \
libdl \
libexpat
LOCAL_C_INCLUDES := \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
system/media/audio_utils/include \
external/expat/lib \
$(call include-path-for, audio-route) \
- vendor/qcom/opensource/audio-hal/primary-hal/hal \
- vendor/qcom/opensource/audio-hal/primary-hal/hal/audio_extn \
- vendor/qcom/opensource/audio-hal/primary-hal/hal/$(AUDIO_PLATFORM) \
- vendor/qcom/opensource/audio-kernel/include/uapi/ \
+ $(PRIMARY_HAL_PATH) \
+ $(PRIMARY_HAL_PATH)/audio_extn \
+ $(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
$(call include-path-for, audio-effects)
+ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(BOARD_OPENSOURCE_DIR)/audio-kernel/include/uapi/
+else
+ LOCAL_C_INCLUDES += vendor/qcom/opensource/audio-kernel/include/uapi/
+endif # BOARD_OPENSOURCE_DIR
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DYNAMIC_LOG)), true)
@@ -374,19 +423,29 @@
LOCAL_C_INCLUDES := \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
system/media/audio_utils/include \
external/expat/lib \
$(call include-path-for, audio-route) \
- vendor/qcom/opensource/audio-hal/primary-hal/hal \
- vendor/qcom/opensource/audio-hal/primary-hal/hal/audio_extn \
- vendor/qcom/opensource/audio-hal/primary-hal/hal/$(AUDIO_PLATFORM) \
- vendor/qcom/opensource/audio-kernel/include/uapi/ \
+ $(PRIMARY_HAL_PATH) \
+ $(PRIMARY_HAL_PATH)/audio_extn \
+ $(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
$(call include-path-for, audio-effects)
+ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(BOARD_OPENSOURCE_DIR)/audio-kernel/include/uapi/
+else
+ LOCAL_C_INCLUDES += vendor/qcom/opensource/audio-kernel/include/uapi/
+endif # BOARD_OPENSOURCE_DIR
+
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
LOCAL_HEADER_LIBRARIES += libhardware_headers
@@ -404,7 +463,6 @@
LOCAL_MODULE := liba2dpoffload
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito bengal atoll sdm660 msm8937 msm8953 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -428,7 +486,7 @@
libcutils \
liblog \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libaudioroute \
libdl \
libexpat
@@ -437,7 +495,7 @@
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -445,11 +503,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DYNAMIC_LOG)), true)
@@ -475,7 +538,6 @@
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito bengal atoll sdm660 msm8937 msm8953 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -505,13 +567,13 @@
libexpat \
liblog \
libtinyalsa \
- libtinycompress
+ $(LIBRARY_TINYCOMPRESS)
LOCAL_C_INCLUDES := \
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -519,11 +581,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
LOCAL_HEADER_LIBRARIES += libhardware_headers
@@ -541,7 +608,6 @@
LOCAL_MODULE := libhfp
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito bengal atoll sdm660 msm8937 msm8953 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -572,13 +638,13 @@
libexpat \
liblog \
libtinyalsa \
- libtinycompress
+ $(LIBRARY_TINYCOMPRESS)
LOCAL_C_INCLUDES := \
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -586,11 +652,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DYNAMIC_LOG)), true)
@@ -614,7 +685,6 @@
LOCAL_MODULE := libicc
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito bengal atoll sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -645,13 +715,13 @@
libexpat \
liblog \
libtinyalsa \
- libtinycompress
+ $(LIBRARY_TINYCOMPRESS)
LOCAL_C_INCLUDES := \
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -659,11 +729,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
LOCAL_HEADER_LIBRARIES += libhardware_headers
@@ -681,7 +756,6 @@
LOCAL_MODULE := libsynth
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito bengal atoll sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -712,13 +786,13 @@
libexpat \
liblog \
libtinyalsa \
- libtinycompress
+ $(LIBRARY_TINYCOMPRESS)
LOCAL_C_INCLUDES := \
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -726,11 +800,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
LOCAL_HEADER_LIBRARIES += libhardware_headers
@@ -748,7 +827,6 @@
LOCAL_MODULE := libhdmipassthru
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito bengal atoll sdm660 msm8937 msm8953 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -777,13 +855,13 @@
libexpat \
liblog \
libtinyalsa \
- libtinycompress
+ $(LIBRARY_TINYCOMPRESS)
LOCAL_C_INCLUDES := \
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(TARGET_OUT_HEADERS)/mm-audio/audio-parsers \
@@ -792,11 +870,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DYNAMIC_LOG)), true)
@@ -825,7 +908,6 @@
LOCAL_MODULE := libbatterylistener
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito bengal atoll sdm660 msm8937 msm8953 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -857,7 +939,7 @@
libhidlbase \
liblog \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libutils \
LOCAL_STATIC_LIBRARIES := \
@@ -867,7 +949,7 @@
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -879,7 +961,7 @@
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
LOCAL_HEADER_LIBRARIES += libhardware_headers
@@ -897,7 +979,6 @@
LOCAL_MODULE := libhwdepcal
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito bengal atoll sdm660 msm8937 msm8953 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -923,13 +1004,13 @@
libexpat \
liblog \
libtinyalsa \
- libtinycompress
+ $(LIBRARY_TINYCOMPRESS)
LOCAL_C_INCLUDES := \
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -941,7 +1022,7 @@
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
LOCAL_HEADER_LIBRARIES += libhardware_headers
@@ -959,7 +1040,6 @@
LOCAL_MODULE:= libmaxxaudio
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi sdm660 msm8937 msm8953 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -983,7 +1063,7 @@
libcutils \
liblog \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libaudioroute \
libdl \
libexpat
@@ -992,7 +1072,7 @@
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -1000,11 +1080,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
LOCAL_HEADER_LIBRARIES += libhardware_headers
@@ -1021,7 +1106,6 @@
LOCAL_MODULE:= libaudiozoom
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi sdm660 msm8937 msm8953 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -1045,7 +1129,7 @@
libcutils \
liblog \
libtinyalsa \
- libtinycompress \
+ $(LIBRARY_TINYCOMPRESS) \
libaudioroute \
libdl \
libexpat
@@ -1054,7 +1138,7 @@
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -1062,11 +1146,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
LOCAL_HEADER_LIBRARIES += libhardware_headers
@@ -1087,7 +1176,6 @@
LOCAL_VENDOR_MODULE := true
-PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
ifneq ($(filter sdm845 sdm710 sdmshrike msmnile kona lahaina holi lito atoll bengal sdm660 msm8937 msm8953 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
@@ -1111,13 +1199,14 @@
libcutils \
libdl \
libexpat \
- liblog
+ liblog \
+ libtinyalsa
LOCAL_C_INCLUDES := \
$(PRIMARY_HAL_PATH) \
$(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
external/tinyalsa/include \
- external/tinycompress/include \
+ $(LIBRARY_TINYCOMPRESS_INC) \
external/expat/lib \
system/media/audio_utils/include \
$(call include-path-for, audio-route) \
@@ -1125,11 +1214,16 @@
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include
+
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ LOCAL_C_INCLUDES += $(AUDIO_KERNEL_INC)
endif
LOCAL_HEADER_LIBRARIES += libhardware_headers
@@ -1139,3 +1233,47 @@
endif
include $(BUILD_SHARED_LIBRARY)
endif
+#-------------------------------------------
+
+# Build Power_Policy_Client LIB
+#-------------------------------------------
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_POWER_POLICY)),true)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libaudiopowerpolicy
+
+LOCAL_VENDOR_MODULE := true
+
+LOCAL_SRC_FILES:= \
+ PowerPolicyClient.cpp \
+ power_policy_launcher.cpp
+
+LOCAL_C_INCLUDES:= \
+ $(PRIMARY_HAL_PATH) \
+ system/media/audio/include
+
+LOCAL_SHARED_LIBRARIES:= \
+ libbase \
+ libbinder_ndk \
+ libcutils \
+ liblog \
+ libpowerpolicyclient
+
+# *-ndk_platform migrated to *-ndk from Android T onwards
+ifeq ($(call math_gt_or_eq, $(PLATFORM_SDK_VERSION), 33), true)
+ LOCAL_SHARED_LIBRARIES += android.frameworks.automotive.powerpolicy-V1-ndk
+else
+ LOCAL_SHARED_LIBRARIES += android.frameworks.automotive.powerpolicy-V1-ndk_platform
+endif
+
+ifneq ($(filter kona lahaina holi,$(TARGET_BOARD_PLATFORM)),)
+LOCAL_SANITIZE := integer_overflow
+endif
+
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DAEMON_SUPPORT)),true)
+ LOCAL_CFLAGS += -DDAEMON_SUPPORT_AUTO
+endif
+
+include $(BUILD_SHARED_LIBRARY)
+endif
diff --git a/hal/audio_extn/Makefile.am b/hal/audio_extn/Makefile.am
new file mode 100755
index 0000000..5f55dc6
--- /dev/null
+++ b/hal/audio_extn/Makefile.am
@@ -0,0 +1,263 @@
+AM_CFLAGS = -I $(top_srcdir)/hal \
+ -I $(top_srcdir)/hal/audio_extn \
+ -I $(top_srcdir)/hal/voice_extn \
+ -I $(PKG_CONFIG_SYSROOT_DIR)/usr/include/audio-kernel \
+ -I $(PKG_CONFIG_SYSROOT_DIR)/usr/include \
+ -I $(top_srcdir)/hal/${TARGET_PLATFORM}
+
+AM_CFLAGS += -DAUDIO_GKI_ENABLED
+c_sources = $(top_srcdir)/hal/audio_hw.c \
+ $(top_srcdir)/hal/platform_info.c \
+ $(top_srcdir)/hal/voice.c \
+ $(top_srcdir)/hal/acdb.c \
+ $(top_srcdir)/hal/${TARGET_PLATFORM}/platform.c \
+ utils.c \
+ audio_extn.c \
+ device_utils.c \
+ audio_stub.c
+
+
+if FM_POWER_OPT
+AM_CFLAGS += -DFM_POWER_OPT
+c_sources += fm.c
+endif
+
+if USBAUDIO
+AM_CFLAGS += -DUSB_TUNNEL_ENABLED
+c_sources += usb.c
+endif
+
+if SSR
+AM_CFLAGS += -DSSR_ENABLED
+c_sources += ssr.c
+endif
+
+if MULTI_VOICE_SESSIONS
+AM_CFLAGS += -DMULTI_VOICE_SESSION_ENABLED
+c_sources += $(top_srcdir)/hal/voice_extn/voice_extn.c
+endif
+
+if COMPRESS_VOIP
+AM_CFLAGS += -DCOMPRESS_VOIP_ENABLED
+c_sources += $(top_srcdir)/hal/voice_extn/compress_voip.c
+endif
+
+if SPKR_PROTECTION
+AM_CFLAGS += -DSPKR_PROT_ENABLED
+c_sources += spkr_protection.c
+endif
+
+if HW_VARIANTS
+AM_CFLAGS += -DHW_VARIANTS_ENABLED
+c_sources += $(top_srcdir)/hal/${TARGET_PLATFORM}/hw_info.c
+endif
+
+if COMPRESS_CAPTURE
+AM_CFLAGS += -DCOMPRESS_CAPTURE_ENABLED
+c_sources += compress_capture.c
+endif
+
+if DTS_EAGLE
+AM_CFLAGS += -DDTS_EAGLE
+c_sources += dts_eagle.c
+endif
+
+if DOLBY_DDP
+AM_CFLAGS += -DDS1_DOLBY_DDP_ENABLED
+c_sources += dolby.c
+endif
+
+if DS1_DOLBY_DAP
+AM_CFLAGS += -DDS1_DOLBY_DAP_ENABLED
+if DOLBY_DDP
+c_sources += dolby.c
+endif
+endif
+
+if DEV_ARBI
+AM_CFLAGS += -DDEV_ARBI_ENABLED
+c_sources += dev_arbi.c
+endif
+
+if SOURCE_TRACKING
+AM_CFLAGS += -DSOURCE_TRACKING_ENABLED
+c_sources += source_track.c
+endif
+
+if LISTEN
+AM_CFLAGS += -DAUDIO_LISTEN_ENABLED
+c_sources += listen.c
+endif
+
+if SOUND_TRIGGER
+AM_CFLAGS += -DSOUND_TRIGGER_ENABLED
+c_sources += soundtrigger.c
+endif
+
+if FLAC_SUPPORT
+AM_CFLAGS += -DFLAC_OFFLOAD_ENABLED
+AM_CFLAGS += -DCOMPRESS_METADATA_ENABLED
+endif
+
+if ALAC_SUPPORT
+AM_CFLAGS += -DALAC_OFFLOAD_ENABLED
+AM_CFLAGS += -DCOMPRESS_METADATA_ENABLED
+endif
+
+if VORBIS_SUPPORT
+AM_CFLAGS += -DVORBIS_OFFLOAD_ENABLED
+AM_CFLAGS += -DCOMPRESS_METADATA_ENABLED
+endif
+
+if WMA_SUPPORT
+AM_CFLAGS += -DWMA_OFFLOAD_ENABLED
+AM_CFLAGS += -DCOMPRESS_METADATA_ENABLED
+endif
+
+if COMPRESS_INPUT
+AM_CFLAGS += -DCOMPRESS_INPUT_ENABLED
+c_sources += compress_in.c
+endif
+
+if COMPRESS_PASSTHROUGH
+AM_CFLAGS += -DHDMI_PASSTHROUGH_ENABLED
+c_sources += passthru.c
+endif
+
+if AUDIO_PARSER
+if DTSHD_PARSER
+AM_CFLAGS += -DDTSHD_PARSER_ENABLED
+endif
+endif
+
+if KEEP_ALIVE
+AM_CFLAGS += -DKEEP_ALIVE_ENABLED
+c_sources += keep_alive.c
+endif
+
+if AUDIO_HW_EXTN_API
+AM_CFLAGS += -DAUDIO_HW_EXTN_API_ENABLED
+c_sources += $(top_srcdir)/hal/audio_hw_extn_api.c
+endif
+
+if GEF
+AM_CFLAGS += -DAUDIO_GENERIC_EFFECT_FRAMEWORK_ENABLED
+c_sources += gef.c
+endif
+
+if APTX_DECODER
+AM_CFLAGS += -DAPTX_DECODER_ENABLED
+endif
+
+if AFE_PROXY
+AM_CFLAGS += -DAFE_PROXY_ENABLED
+endif
+
+if ADSP_HDLR
+AM_CFLAGS += -DAUDIO_EXTN_ADSP_HDLR_ENABLED
+c_sources += adsp_hdlr.c
+endif
+
+if AUDIO_IP_HDLR
+AM_CFLAGS += -DAUDIO_EXTN_IP_HDLR_ENABLED
+c_sources += ip_hdlr_intf.c
+endif
+
+if QAF_SUPPORT
+AM_CFLAGS += -DQAF_EXTN_ENABLED
+c_sources += qaf.c
+endif
+
+if AUDIO_HW_LOOPBACK
+AM_CFLAGS += -DAUDIO_HW_LOOPBACK_ENABLED
+AM_CFLAGS += -DCOMPRESS_METADATA_NEEDED
+c_sources += hw_loopback.c
+endif
+
+if RUN_KEEP_ALIVE_IN_ARM_FFV
+AM_CFLAGS += -DRUN_KEEP_ALIVE_IN_ARM_FFV
+endif
+
+if AUDIO_HW_FFV
+AM_CFLAGS += -DFFV_ENABLED \
+ -I $(PKG_CONFIG_SYSROOT_DIR)/usr/include/ffv/
+c_sources += ffv.c
+endif
+
+if CUSTOM_STEREO
+AM_CFLAGS += -DCUSTOM_STEREO_ENABLED
+endif
+
+if INSTANCE_ID
+AM_CFLAGS += -DINSTANCE_ID_ENABLED
+endif
+
+if LL_AS_PRIMARY_OUTPUT
+AM_CFLAGS += -DUSE_LL_AS_PRIMARY_OUTPUT
+endif
+
+lib_LTLIBRARIES = libautohal.la
+c_sources += auto_hal.c
+libautohal_la_SOURCES = $(c_sources)
+libautohal_la_LIBADD = $(GLIB_LIBS) -llog -lcutils -ltinyalsa
+libautohal_la_LIBADD += -ltinycompress -laudioroute -ldl -lexpat -laudioutils
+libautohal_la_LIBADD += -lm -lc -lresolv
+libautohal_la_CFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS)
+libautohal_la_CFLAGS += -Dstrlcat=g_strlcat
+libautohal_la_CFLAGS += -DINT_MAX=0x7fffffff -Wno-error=deprecated-declarations -DPATH_MAX=1024 -DULONG_MAX=0xFFFFFFFFFFFFFFFFUL
+libautohal_la_CFLAGS += -D__unused=__attribute__\(\(__unused__\)\)
+libautohal_la_CFLAGS += -DLINUX_ENABLED $(TARGET_CFLAGS) -DAUDIO_EXTN_FORMATS_ENABLED
+libautohal_la_CFLAGS += -DNDEBUG
+libautohal_la_LDFLAGS = -module -shared -avoid-version
+libautohal_la_CPPFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS)
+libautohal_la_CPPFLAGS += -DLINUX_ENABLED
+
+if HFP
+AM_CFLAGS += -DHFP_ENABLED
+c_sources += hfp.c
+lib_LTLIBRARIES += libhfp.la
+libhfp_la_SOURCES = $(c_sources)
+libhfp_la_LIBADD = $(GLIB_LIBS) -llog -lcutils -ltinyalsa
+libhfp_la_LIBADD += -ltinycompress -laudioroute -ldl -lexpat -laudioutils
+libhfp_la_LIBADD += -lm -lc -lresolv
+
+if AUDIO_PARSER
+libhfp_la_LIBADD += -laudioparsers
+endif
+
+libhfp_la_CFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS)
+libhfp_la_CFLAGS += -Dstrlcat=g_strlcat
+libhfp_la_CFLAGS += -DINT_MAX=0x7fffffff
+libhfp_la_CFLAGS += -DULONG_MAX=\(__LONG_MAX__*2UL+1UL\)
+libhfp_la_CFLAGS += -DPATH_MAX=4096
+libhfp_la_CFLAGS += -D__unused=__attribute__\(\(__unused__\)\)
+libhfp_la_CFLAGS += -DLINUX_ENABLED $(TARGET_CFLAGS) -DAUDIO_EXTN_FORMATS_ENABLED
+libhfp_la_CFLAGS += -DNDEBUG
+libhfp_la_CFLAGS += -D_GNU_SOURCE
+if HAL_PATH_SPECIFIED
+libhfp_la_CFLAGS += -DHAL_LIBRARY_PATH=\"@HAL_PATH@\"
+endif
+libhfp_la_LDFLAGS = -module -shared -avoid-version
+endif
+
+if SPKR_PROTECTION
+h_sources = audio_defs.h \
+ audio_extn.h \
+ ../audio_hw.h \
+ ../voice.h
+
+AM_CFLAGS += -DSPKR_PROT_ENABLED
+library_include_HEADERS = $(h_sources)
+library_includedir = $(includedir)
+lib_LTLIBRARIES += audio.spkr.prot.la
+audio_spkr_prot_la_SOURCES = spkr_protection.c
+audio_spkr_prot_la_LIBADD = $(GLIB_LIBS) -llog -lcutils -ltinyalsa
+audio_spkr_prot_la_LIBADD += -ltinycompress -laudioroute -ldl -lexpat -laudioutils
+audio_spkr_prot_la_CFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS)
+audio_spkr_prot_la_CFLAGS += -Dstrlcat=g_strlcat
+audio_spkr_prot_la_CFLAGS += -DINT_MAX=0x7fffffff
+audio_spkr_prot_la_CFLAGS += -D__unused=__attribute__\(\(__unused__\)\)
+audio_spkr_prot_la_CFLAGS += -DLINUX_ENABLED $(TARGET_CFLAGS) -DAUDIO_EXTN_FORMATS_ENABLED
+audio_spkr_prot_la_CFLAGS += -DNDEBUG
+audio_spkr_prot_la_LDFLAGS = -module -shared -avoid-version
+endif
diff --git a/hal/audio_extn/PowerPolicyClient.cpp b/hal/audio_extn/PowerPolicyClient.cpp
new file mode 100644
index 0000000..62dcf39
--- /dev/null
+++ b/hal/audio_extn/PowerPolicyClient.cpp
@@ -0,0 +1,129 @@
+/* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of The Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/
+
+#include "PowerPolicyClient.h"
+
+#include <android-base/logging.h>
+#include <dlfcn.h>
+
+#ifdef DAEMON_SUPPORT_AUTO
+#define LIB_AUDIO_HAL_PLUGIN "libaudiohalpluginclient.so"
+#else
+#define LIB_AUDIO_HAL_PLUGIN "libaudiohalplugin.so"
+#endif
+
+namespace aafap = aidl::android::frameworks::automotive::powerpolicy;
+
+using aafap::CarPowerPolicy;
+using aafap::CarPowerPolicyFilter;
+using aafap::PowerComponent;
+using ::android::frameworks::automotive::powerpolicy::hasComponent;
+using ::ndk::ScopedAStatus;
+
+namespace {
+
+constexpr PowerComponent kAudioComponent = PowerComponent::AUDIO;
+constexpr PowerComponent kMicComponent = PowerComponent::MICROPHONE;
+
+} // namespace
+
+PowerPolicyClient::PowerPolicyClient(power_policy_init_config_t init_config) {
+
+ fp_in_set_power_policy = init_config.fp_in_set_power_policy;
+ fp_out_set_power_policy = init_config.fp_out_set_power_policy;
+
+ plugin_handle = dlopen(LIB_AUDIO_HAL_PLUGIN, RTLD_NOW);
+ if (plugin_handle == NULL) {
+ LOG(ERROR) << "Failed to open plugin library";
+ return;
+ }
+
+ hal_plugin_send_msg = (hal_plugin_send_msg_t) dlsym(plugin_handle,
+ "audio_hal_plugin_send_msg");
+ if (hal_plugin_send_msg == NULL) {
+ LOG(ERROR) << "dlsym failed for audio_hal_plugin_send_msg";
+ dlclose(plugin_handle);
+ plugin_handle = NULL;
+ }
+
+ LOG(ERROR) << "PowerPolicyClient Initialzed";
+}
+
+PowerPolicyClient::~PowerPolicyClient() {
+ if (plugin_handle != NULL)
+ dlclose(plugin_handle);
+}
+
+void PowerPolicyClient::onInitFailed() {
+ LOG(ERROR) << "Initializing power policy client failed";
+}
+
+std::vector<PowerComponent> PowerPolicyClient::getComponentsOfInterest() {
+ std::vector<PowerComponent> components{kAudioComponent, kMicComponent};
+ return components;
+}
+
+ScopedAStatus PowerPolicyClient::onPolicyChanged(const CarPowerPolicy& powerPolicy) {
+ uint8_t disable = 0;
+
+ if (hasComponent(powerPolicy.enabledComponents, kAudioComponent)) {
+ LOG(ERROR) << "Power policy: Audio component is enabled";
+ disable = 0;
+
+ fp_out_set_power_policy(!disable);
+ if (hal_plugin_send_msg != NULL)
+ hal_plugin_send_msg(AUDIO_HAL_PLUGIN_MSG_SILENT_MODE,
+ &disable, sizeof(disable));
+ } else if (hasComponent(powerPolicy.disabledComponents, kAudioComponent)) {
+ LOG(ERROR) << "Power policy: Audio component is disabled";
+ disable = 1;
+
+ fp_out_set_power_policy(!disable);
+ if (hal_plugin_send_msg != NULL)
+ hal_plugin_send_msg(AUDIO_HAL_PLUGIN_MSG_SILENT_MODE,
+ &disable, sizeof(disable));
+ }
+
+ if (hasComponent(powerPolicy.enabledComponents, kMicComponent)) {
+ LOG(ERROR) << "Power policy: Microphone component is enabled";
+ disable = 0;
+
+ fp_in_set_power_policy(!disable);
+ if (hal_plugin_send_msg != NULL)
+ hal_plugin_send_msg(AUDIO_HAL_PLUGIN_MSG_MIC_STATE,
+ &disable, sizeof(disable));
+ } else if (hasComponent(powerPolicy.disabledComponents, kMicComponent)) {
+ disable = 1;
+
+ fp_in_set_power_policy(!disable);
+ if (hal_plugin_send_msg != NULL)
+ hal_plugin_send_msg(AUDIO_HAL_PLUGIN_MSG_MIC_STATE,
+ &disable, sizeof(disable));
+ LOG(ERROR) << "Power policy: Microphone component is disabled";
+ }
+ return ScopedAStatus::ok();
+}
diff --git a/hal/audio_extn/PowerPolicyClient.h b/hal/audio_extn/PowerPolicyClient.h
new file mode 100644
index 0000000..c5308e3
--- /dev/null
+++ b/hal/audio_extn/PowerPolicyClient.h
@@ -0,0 +1,63 @@
+/* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of The Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/
+
+#ifndef QTI_AUDIO_POWERPOLICYCLIENT_H_
+#define QTI_AUDIO_POWERPOLICYCLIENT_H_
+
+#include "PowerPolicyClientBase.h"
+#include "audio_hal_plugin.h"
+
+typedef int32_t (*hal_plugin_send_msg_t) (audio_hal_plugin_msg_type_t, void*, uint32_t);
+typedef void (*fp_in_set_power_policy_t) (uint8_t);
+typedef void (*fp_out_set_power_policy_t) (uint8_t);
+
+typedef struct power_policy_init_config {
+ fp_in_set_power_policy_t fp_in_set_power_policy;
+ fp_out_set_power_policy_t fp_out_set_power_policy;
+} power_policy_init_config_t;
+
+
+class PowerPolicyClient
+ : public ::android::frameworks::automotive::powerpolicy::PowerPolicyClientBase {
+ public:
+ explicit PowerPolicyClient(power_policy_init_config init_config);
+ ~PowerPolicyClient();
+
+ void onInitFailed();
+ std::vector<::aidl::android::frameworks::automotive::powerpolicy::PowerComponent>
+ getComponentsOfInterest() override;
+ ::ndk::ScopedAStatus onPolicyChanged(
+ const ::aidl::android::frameworks::automotive::powerpolicy::CarPowerPolicy&) override;
+
+ private:
+ void* plugin_handle;
+ hal_plugin_send_msg_t hal_plugin_send_msg;
+ fp_out_set_power_policy_t fp_out_set_power_policy;
+ fp_in_set_power_policy_t fp_in_set_power_policy;
+};
+
+#endif // QTI_AUDIO_POWERPOLICYCLIENT_H_
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index 148f53d..8665d88 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -91,8 +91,10 @@
#define MIXER_SET_FEEDBACK_CHANNEL "BT set feedback channel"
#define MIXER_SINK_SAMPLE_RATE "BT_TX SampleRate"
#define MIXER_AFE_SINK_CHANNELS "AFE Output Channels"
+#define MIXER_AFE_SINK_CHANNELS_SLIM7 "AFE Output Channels SLIM7"
#define MIXER_FMT_TWS_CHANNEL_MODE "TWS Channel Mode"
#define MIXER_FMT_LC3_CHANNEL_MODE "LC3 Channel Mode"
+#define MIXER_SLIM7_TX_ADM_CHANNEL "SLIM7_TX ADM Channels"
#define ENCODER_LATENCY_SBC 10
#define ENCODER_LATENCY_APTX 40
#define ENCODER_LATENCY_APTX_HD 20
@@ -185,7 +187,7 @@
static void *vndk_fwk_lib_handle = NULL;
static int is_running_with_enhanced_fwk = UNINITIALIZED;
-typedef int (*vndk_fwk_isVendorEnhancedFwk_t)();
+typedef int (*vndk_fwk_isVendorEnhancedFwk_t)(void);
static vndk_fwk_isVendorEnhancedFwk_t vndk_fwk_isVendorEnhancedFwk;
/*
@@ -673,7 +675,7 @@
struct lc3_stream_map_info_t
{
uint32_t stream_map_size;
- struct lc3_stream_info_t streamMap[16];
+ struct lc3_stream_info_t streamMap[2];
} __attribute__ ((packed));
struct lc3_stream_map_ext_t
@@ -701,7 +703,7 @@
struct lc3_config_ext_t fromAirConfig;
uint32_t decoder_output_channel;
uint32_t stream_map_size;
- struct lc3_stream_map_ext_t streamMapIn[16];
+ struct lc3_stream_map_ext_t streamMapIn[2];
} __attribute__ ((packed));
struct lc3_enc_cfg_ext_t
@@ -713,7 +715,9 @@
struct lc3_dec_codec_cfg_t
{
+ struct lc3_dec_cfg_ext_t from_Air_cfg;
struct lc3_stream_map_info_t streamMapToAir;
+ struct lc3_stream_map_info_t streamMapFromAir;
} __attribute__ ((packed));
struct lc3_dec_cfg_t
@@ -1062,7 +1066,8 @@
}
// Enable Slimbus 7 Rx feedback path for HD Voice use case
- if (a2dp.bt_encoder_format == CODEC_TYPE_APTX_AD_SPEECH) {
+ if ((a2dp.bt_encoder_format == CODEC_TYPE_APTX_AD_SPEECH)
+ || ((a2dp.a2dp_sink_started == true) && (a2dp.bt_decoder_format == CODEC_TYPE_LC3))) {
ALOGV("%s: Enable ABR Rx feedback path", __func__);
ctl_abr_rx_path = mixer_get_ctl_by_name(a2dp.adev->mixer,
MIXER_ABR_RX_FEEDBACK_PATH);
@@ -1141,6 +1146,8 @@
ALOGE("Failed to open source stream for a2dp: status %d", ret);
}
a2dp.bt_state_source = A2DP_STATE_CONNECTED;
+ if (!a2dp.adev->bt_sco_on)
+ a2dp.a2dp_source_suspended = false;
} else {
ALOGD("Called a2dp open with improper state %d", a2dp.bt_state_source);
}
@@ -1253,7 +1260,8 @@
}
a2dp.a2dp_source_started = false;
a2dp.a2dp_source_total_active_session_requests = 0;
- a2dp.a2dp_source_suspended = false;
+ if (!a2dp.adev->bt_sco_on)
+ a2dp.a2dp_source_suspended = false;
a2dp.bt_encoder_format = CODEC_TYPE_INVALID;
a2dp.enc_sampling_rate = 48000;
a2dp.enc_channels = 2;
@@ -1322,6 +1330,7 @@
char *rate_str = NULL, *channels = NULL;
uint32_t sampling_rate;
struct mixer_ctl *ctl_sample_rate = NULL, *ctrl_channels = NULL;
+ struct mixer_ctl *adm_ctrl_channels = NULL;
bool is_configured = false;
if (direction == SINK) {
@@ -1342,7 +1351,8 @@
sampling_rate = sampling_rate *2;
}
- if (a2dp.bt_encoder_format == CODEC_TYPE_LC3)
+ if (a2dp.bt_encoder_format == CODEC_TYPE_LC3 ||
+ a2dp.bt_decoder_format == CODEC_TYPE_LC3)
sampling_rate = SAMPLING_RATE_96K;
// No need to configure backend for PCM format.
@@ -1369,8 +1379,12 @@
if (direction == SINK) {
ALOGD("%s: set sink backend sample rate =%s", __func__, rate_str);
- ctl_sample_rate = mixer_get_ctl_by_name(a2dp.adev->mixer,
- MIXER_SINK_SAMPLE_RATE);
+ if (a2dp.bt_decoder_format == CODEC_TYPE_LC3)
+ ctl_sample_rate = mixer_get_ctl_by_name(a2dp.adev->mixer,
+ MIXER_SOURCE_SAMPLE_RATE_TX);
+ else
+ ctl_sample_rate = mixer_get_ctl_by_name(a2dp.adev->mixer,
+ MIXER_SINK_SAMPLE_RATE);
} else {
ALOGD("%s: set source backend sample rate =%s", __func__, rate_str);
ctl_sample_rate = mixer_get_ctl_by_name(a2dp.adev->mixer,
@@ -1408,6 +1422,24 @@
goto fail;
}
}
+ } else {
+ /* LC3 needs to set RX sample rate as well */
+ if (a2dp.bt_decoder_format == CODEC_TYPE_LC3) {
+ ALOGD("%s: set rx backend sample rate =%s", __func__, rate_str);
+ ctl_sample_rate = mixer_get_ctl_by_name(a2dp.adev->mixer,
+ MIXER_SAMPLE_RATE_RX);
+ if (!ctl_sample_rate) {
+ ALOGE("%s: ERROR backend sample rate mixer control not identifed", __func__);
+ is_configured = false;
+ goto fail;
+ }
+
+ if (mixer_ctl_set_enum_by_string(ctl_sample_rate, rate_str) != 0) {
+ ALOGE("%s: Failed to set backend sample rate = %s", __func__, rate_str);
+ is_configured = false;
+ goto fail;
+ }
+ }
}
} else {
/* Fallback to legacy approch if MIXER_SAMPLE_RATE_RX and
@@ -1439,8 +1471,15 @@
}
ALOGD("%s: set afe dec channels =%s", __func__, channels);
- ctrl_channels = mixer_get_ctl_by_name(a2dp.adev->mixer,
- MIXER_AFE_SINK_CHANNELS);
+ if (a2dp.bt_decoder_format == CODEC_TYPE_LC3) {
+ ctrl_channels = mixer_get_ctl_by_name(a2dp.adev->mixer,
+ MIXER_AFE_SINK_CHANNELS_SLIM7);
+ adm_ctrl_channels = mixer_get_ctl_by_name(a2dp.adev->mixer,
+ MIXER_SLIM7_TX_ADM_CHANNEL);
+ } else {
+ ctrl_channels = mixer_get_ctl_by_name(a2dp.adev->mixer,
+ MIXER_AFE_SINK_CHANNELS);
+ }
} else {
//Configure AFE enc channels
switch (a2dp.enc_channels) {
@@ -1467,6 +1506,20 @@
goto fail;
}
}
+ // need to set adm channel for LC3 decoder
+ if (a2dp.bt_decoder_format == CODEC_TYPE_LC3 &&
+ direction == SINK) {
+ if (!adm_ctrl_channels) {
+ ALOGE(" ERROR ADM channels mixer control not identified");
+ } else {
+ if (mixer_ctl_set_enum_by_string(adm_ctrl_channels, channels) != 0) {
+ ALOGE("%s: Failed to set ADM channels =%s", __func__, channels);
+ is_configured = false;
+ goto fail;
+ }
+ }
+ }
+
is_configured = true;
fail:
return is_configured;
@@ -1584,7 +1637,7 @@
{
const char *rate_str = "KHZ_8", *channels = "Zero";
struct mixer_ctl *ctl_sample_rate = NULL, *ctl_sample_rate_tx = NULL;
- struct mixer_ctl *ctrl_channels = NULL;
+ struct mixer_ctl *ctrl_channels = NULL, *adm_ctrl_channels = NULL;
// Reset backend sampling rate
if (direction == SINK) {
@@ -1616,7 +1669,6 @@
}
}
} else {
-
ctl_sample_rate = mixer_get_ctl_by_name(a2dp.adev->mixer,
MIXER_SAMPLE_RATE_DEFAULT);
if (!ctl_sample_rate) {
@@ -1648,6 +1700,13 @@
ALOGE("%s: Failed to reset AFE in channels = %d", __func__, a2dp.enc_channels);
return -ENOSYS;
}
+ // Reset adm channels for slim7 tx if available
+ adm_ctrl_channels = mixer_get_ctl_by_name(a2dp.adev->mixer,
+ MIXER_SLIM7_TX_ADM_CHANNEL);
+ if (adm_ctrl_channels) {
+ if (mixer_ctl_set_enum_by_string(adm_ctrl_channels, channels) != 0)
+ ALOGE("%s: Failed to reset ADM in channels = %d", __func__, a2dp.dec_channels);
+ }
return 0;
}
@@ -1739,26 +1798,220 @@
return is_configured;
}
+uint64_t convert_channel_map(uint32_t audio_location)
+{
+ int i;
+ uint64_t channel_mask = (uint64_t) 0x00000000;
+
+ if (!audio_location) {
+ channel_mask |= 1ULL << PCM_CHANNEL_C;
+ return channel_mask;
+ }
+
+ for (i = 0; i < AUDIO_LOCATION_MAX; i++) {
+ if (audio_location & audio_location_map_array[i])
+ channel_mask |= 1ULL << channel_map_array[i];
+ }
+
+ return channel_mask;
+}
+
+bool configure_lc3_enc_format(audio_lc3_codec_config_t *lc3_bt_cfg) {
+ struct mixer_ctl *ctl_enc_data = NULL;
+ int mixer_size = 0;
+ int ret = 0;
+ int i;
+ bool is_configured = false;
+ struct lc3_enc_cfg_t lc3_dsp_cfg;
+ uint64_t channel_mask;
+
+ if (lc3_bt_cfg == NULL)
+ return false;
+
+ ctl_enc_data = mixer_get_ctl_by_name(a2dp.adev->mixer, MIXER_ENC_CONFIG_BLOCK);
+ if (!ctl_enc_data) {
+ ALOGE(" ERROR a2dp encoder CONFIG data mixer control not identified");
+ return false;
+ }
+
+ /* Initialize dsp configuration params */
+ memset(&lc3_dsp_cfg, 0x0, sizeof(struct lc3_enc_cfg_t));
+
+ lc3_dsp_cfg.enc_format = MEDIA_FMT_LC3;
+ //encoder structure
+
+ if (lc3_bt_cfg->enc_config.stream_map_size != 0) {
+ if (!lc3_bt_cfg->enc_config.streamMapOut[0].audio_location)
+ a2dp.enc_channels = CH_MONO;
+ else
+ a2dp.enc_channels = CH_STEREO;
+ }
+
+ lc3_dsp_cfg.imc_info.direction = IMC_RECEIVE;
+ lc3_dsp_cfg.imc_info.enable = IMC_ENABLE;
+ lc3_dsp_cfg.imc_info.purpose = IMC_PURPOSE_ID_BT_INFO;
+ lc3_dsp_cfg.imc_info.comm_instance = a2dp.abr_config.imc_instance;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.api_version = lc3_bt_cfg->enc_config.toAirConfig.api_version;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.sampling_freq = lc3_bt_cfg->enc_config.toAirConfig.sampling_freq;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.max_octets_per_frame = lc3_bt_cfg->enc_config.toAirConfig.max_octets_per_frame;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.frame_duration = lc3_bt_cfg->enc_config.toAirConfig.frame_duration;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.bit_depth = lc3_bt_cfg->enc_config.toAirConfig.bit_depth;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.num_blocks = lc3_bt_cfg->enc_config.toAirConfig.num_blocks;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.default_q_level = lc3_bt_cfg->enc_config.toAirConfig.default_q_level;
+ for (i = 0; i < 16; i++)
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.vendor_specific[i] = lc3_bt_cfg->enc_config.toAirConfig.vendor_specific[i];
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.mode = lc3_bt_cfg->enc_config.toAirConfig.mode;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.stream_map_size = lc3_bt_cfg->enc_config.stream_map_size;
+ lc3_dsp_cfg.enc_codec.streamMapToAir.stream_map_size = lc3_bt_cfg->enc_config.stream_map_size;
+
+ for (i = 0; i < lc3_dsp_cfg.enc_codec.to_Air_cfg.stream_map_size; i++) {
+ // for encoder stream map info
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.streamMapOut[i].audio_location = lc3_bt_cfg->enc_config.streamMapOut[i].audio_location;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.streamMapOut[i].stream_id = lc3_bt_cfg->enc_config.streamMapOut[i].stream_id;
+ lc3_dsp_cfg.enc_codec.to_Air_cfg.streamMapOut[i].direction = lc3_bt_cfg->enc_config.streamMapOut[i].direction;
+ // for packetizer stream map info
+ channel_mask = convert_channel_map(lc3_bt_cfg->enc_config.streamMapOut[i].audio_location);
+ lc3_dsp_cfg.enc_codec.streamMapToAir.streamMap[i].stream_id = lc3_bt_cfg->enc_config.streamMapOut[i].stream_id;
+ lc3_dsp_cfg.enc_codec.streamMapToAir.streamMap[i].direction = lc3_bt_cfg->enc_config.streamMapOut[i].direction;
+ lc3_dsp_cfg.enc_codec.streamMapToAir.streamMap[i].channel_mask_lsw = channel_mask & 0x00000000FFFFFFFF;
+ lc3_dsp_cfg.enc_codec.streamMapToAir.streamMap[i].channel_mask_msw = (channel_mask & 0xFFFFFFFF00000000) >> 32;
+ }
+
+ /* Configure AFE DSP configuration */
+ mixer_size = sizeof(struct lc3_enc_cfg_t);
+ ret = mixer_ctl_set_array(ctl_enc_data, (void *)&lc3_dsp_cfg,
+ mixer_size);
+ if (ret != 0) {
+ ALOGE("%s: Failed to set lc3 encoder config", __func__);
+ is_configured = false;
+ goto fail;
+ }
+
+ ret = a2dp_set_bit_format(ENCODER_BIT_FORMAT_PCM_24);
+ if (ret != 0) {
+ ALOGE("%s: Failed to set lc3 bit format", __func__);
+ is_configured = false;
+ goto fail;
+ }
+
+ is_configured = true;
+ a2dp.bt_encoder_format = CODEC_TYPE_LC3;
+
+fail:
+ return is_configured;
+}
+
+bool configure_lc3_dec_format(audio_lc3_codec_config_t *lc3_bt_cfg)
+{
+ struct mixer_ctl *ctl_dec_data = NULL;
+ struct lc3_dec_cfg_t lc3_dsp_cfg;
+ uint64_t channel_mask;
+ bool is_configured = false;
+ int ret = 0;
+ int i;
+
+ if (lc3_bt_cfg == NULL)
+ return false;
+
+ ctl_dec_data = mixer_get_ctl_by_name(a2dp.adev->mixer, MIXER_SOURCE_DEC_CONFIG_BLOCK);
+ if (!ctl_dec_data) {
+ ALOGE(" ERROR a2dp decoder CONFIG data mixer control not identified");
+ return false;
+ }
+
+ memset(&lc3_dsp_cfg, 0x0, sizeof(struct lc3_dec_cfg_t));
+
+ lc3_dsp_cfg.abr_cfg.dec_format = MEDIA_FMT_LC3;
+ lc3_dsp_cfg.abr_cfg.imc_info.direction = IMC_TRANSMIT;
+ lc3_dsp_cfg.abr_cfg.imc_info.enable = IMC_ENABLE;
+ lc3_dsp_cfg.abr_cfg.imc_info.purpose = IMC_PURPOSE_ID_BT_INFO;
+
+ lc3_dsp_cfg.abr_cfg.imc_info.comm_instance = a2dp.abr_config.imc_instance;
+
+ /* To check whether decoder configuration is present or not*/
+ if (lc3_bt_cfg->dec_config.stream_map_size != 0) {
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.api_version = lc3_bt_cfg->dec_config.fromAirConfig.api_version;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.sampling_freq = lc3_bt_cfg->dec_config.fromAirConfig.sampling_freq;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.max_octets_per_frame = lc3_bt_cfg->dec_config.fromAirConfig.max_octets_per_frame;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.frame_duration = lc3_bt_cfg->dec_config.fromAirConfig.frame_duration;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.bit_depth = lc3_bt_cfg->dec_config.fromAirConfig.bit_depth;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.num_blocks = lc3_bt_cfg->dec_config.fromAirConfig.num_blocks;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.default_q_level = lc3_bt_cfg->dec_config.fromAirConfig.default_q_level;
+ for (i = 0; i < 16; i++)
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.vendor_specific[i] = lc3_bt_cfg->dec_config.fromAirConfig.vendor_specific[i];
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.mode = lc3_bt_cfg->dec_config.fromAirConfig.mode;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.decoder_output_channel = lc3_bt_cfg->dec_config.decoder_output_channel;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.stream_map_size = lc3_bt_cfg->dec_config.stream_map_size;
+ lc3_dsp_cfg.dec_codec.streamMapFromAir.stream_map_size = lc3_bt_cfg->dec_config.stream_map_size;
+
+ //for depacketizer both fromAir and toAir streamMap needs to be sent.
+ for (i = 0; i < lc3_dsp_cfg.dec_codec.from_Air_cfg.stream_map_size; i++) {
+ // for decoder stream map info
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.streamMapIn[i].audio_location = lc3_bt_cfg->dec_config.streamMapIn[i].audio_location;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.streamMapIn[i].stream_id = lc3_bt_cfg->dec_config.streamMapIn[i].stream_id;
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.streamMapIn[i].direction = lc3_bt_cfg->dec_config.streamMapIn[i].direction;
+ // for depacketizer stream map fromAir info
+ channel_mask = convert_channel_map(lc3_bt_cfg->dec_config.streamMapIn[i].audio_location);
+ lc3_dsp_cfg.dec_codec.streamMapFromAir.streamMap[i].stream_id = lc3_bt_cfg->dec_config.streamMapIn[i].stream_id;
+ lc3_dsp_cfg.dec_codec.streamMapFromAir.streamMap[i].direction = lc3_bt_cfg->dec_config.streamMapIn[i].direction;
+ lc3_dsp_cfg.dec_codec.streamMapFromAir.streamMap[i].channel_mask_lsw = channel_mask & 0x00000000FFFFFFFF;
+ lc3_dsp_cfg.dec_codec.streamMapFromAir.streamMap[i].channel_mask_msw = (channel_mask & 0xFFFFFFFF00000000) >> 32;
+ }
+ }
+
+ lc3_dsp_cfg.dec_codec.streamMapToAir.stream_map_size = lc3_bt_cfg->enc_config.stream_map_size;
+
+ for (i = 0; i < lc3_bt_cfg->enc_config.stream_map_size; i++) {
+ // for depacketizer stream map toAir info
+ channel_mask = convert_channel_map(lc3_bt_cfg->enc_config.streamMapOut[i].audio_location);
+ lc3_dsp_cfg.dec_codec.streamMapToAir.streamMap[i].stream_id = lc3_bt_cfg->enc_config.streamMapOut[i].stream_id;
+ lc3_dsp_cfg.dec_codec.streamMapToAir.streamMap[i].direction = lc3_bt_cfg->enc_config.streamMapOut[i].direction;
+ lc3_dsp_cfg.dec_codec.streamMapToAir.streamMap[i].channel_mask_lsw = channel_mask & 0x00000000FFFFFFFF;
+ lc3_dsp_cfg.dec_codec.streamMapToAir.streamMap[i].channel_mask_msw = (channel_mask & 0xFFFFFFFF00000000) >> 32;
+ }
+
+ ret = mixer_ctl_set_array(ctl_dec_data, (void *)&lc3_dsp_cfg,
+ sizeof(struct lc3_dec_cfg_t));
+ if (ret != 0) {
+ ALOGE("%s: failed to set LC3 decoder config", __func__);
+ is_configured = false;
+ goto fail;
+ }
+
+ is_configured = true;
+ a2dp.bt_decoder_format = CODEC_TYPE_LC3;
+ a2dp.dec_channels = CH_STEREO;
+ a2dp.dec_sampling_rate =
+ lc3_dsp_cfg.dec_codec.from_Air_cfg.fromAirConfig.sampling_freq;
+
+fail:
+ return is_configured;
+}
+
/* API to configure AFE decoder in DSP */
static bool configure_a2dp_sink_decoder_format()
{
void *codec_info = NULL;
+ uint8_t multi_cast = 0, num_dev = 1;
codec_t codec_type = CODEC_TYPE_INVALID;
bool is_configured = false;
struct mixer_ctl *ctl_dec_data = NULL;
- if (!a2dp.audio_get_dec_config) {
+ if (a2dp.audio_get_dec_config) {
+ ctl_dec_data = mixer_get_ctl_by_name(a2dp.adev->mixer, MIXER_SINK_DEC_CONFIG_BLOCK);
+ if (!ctl_dec_data) {
+ ALOGE(" ERROR a2dp decoder CONFIG data mixer control not identified");
+ is_configured = false;
+ return false;
+ }
+ codec_info = a2dp.audio_get_dec_config(&codec_type);
+ } else if (a2dp.audio_get_enc_config) {
+ codec_info = a2dp.audio_get_enc_config(&multi_cast, &num_dev, &codec_type);
+ } else {
ALOGE(" a2dp handle is not identified, ignoring a2dp decoder config");
return false;
}
- ctl_dec_data = mixer_get_ctl_by_name(a2dp.adev->mixer, MIXER_SINK_DEC_CONFIG_BLOCK);
- if (!ctl_dec_data) {
- ALOGE(" ERROR a2dp decoder CONFIG data mixer control not identified");
- is_configured = false;
- return false;
- }
- codec_info = a2dp.audio_get_dec_config(&codec_type);
switch(codec_type) {
case CODEC_TYPE_SBC:
ALOGD(" SBC decoder supported BT device");
@@ -1769,6 +2022,12 @@
is_configured =
configure_aac_dec_format((audio_aac_dec_config_t *)codec_info);
break;
+ case CODEC_TYPE_LC3:
+ ALOGD(" LC3 decoder supported BT device");
+ is_configured =
+ (configure_lc3_enc_format((audio_lc3_codec_config_t *)codec_info) &&
+ configure_lc3_dec_format((audio_lc3_codec_config_t *)codec_info));
+ break;
default:
ALOGD(" Received Unsupported decoder format");
is_configured = false;
@@ -2588,163 +2847,6 @@
return is_configured;
}
-uint64_t convert_channel_map(uint32_t audio_location)
-{
- int i;
- uint64_t channel_mask = (uint64_t) 0x00000000;
-
- if (!audio_location) {
- channel_mask |= 1ULL << PCM_CHANNEL_C;
- return channel_mask;
- }
-
- for (i = 0; i < AUDIO_LOCATION_MAX; i++) {
- if (audio_location & audio_location_map_array[i])
- channel_mask |= 1ULL << channel_map_array[i];
- }
-
- return channel_mask;
-}
-
-bool configure_lc3_enc_format(audio_lc3_codec_config_t *lc3_bt_cfg) {
- struct mixer_ctl *ctl_enc_data = NULL;
- int mixer_size = 0;
- int ret = 0;
- int i;
- bool is_configured = false;
- struct lc3_enc_cfg_t lc3_dsp_cfg;
- uint64_t channel_mask;
-
- if (lc3_bt_cfg == NULL)
- return false;
-
- ctl_enc_data = mixer_get_ctl_by_name(a2dp.adev->mixer, MIXER_ENC_CONFIG_BLOCK);
- if (!ctl_enc_data) {
- ALOGE(" ERROR a2dp encoder CONFIG data mixer control not identified");
- return false;
- }
-
- /* Initialize dsp configuration params */
- memset(&lc3_dsp_cfg, 0x0, sizeof(struct lc3_enc_cfg_t));
-
- lc3_dsp_cfg.enc_format = MEDIA_FMT_LC3;
- //encoder structure
-
- if (lc3_bt_cfg->enc_config.stream_map_size != 0) {
- if (!lc3_bt_cfg->enc_config.streamMapOut[0].audio_location)
- a2dp.enc_channels = CH_MONO;
- else
- a2dp.enc_channels = CH_STEREO;
- }
-
- lc3_dsp_cfg.imc_info.direction = IMC_RECEIVE;
- lc3_dsp_cfg.imc_info.enable = IMC_ENABLE;
- lc3_dsp_cfg.imc_info.purpose = IMC_PURPOSE_ID_BT_INFO;
- lc3_dsp_cfg.imc_info.comm_instance = a2dp.abr_config.imc_instance;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.api_version = lc3_bt_cfg->enc_config.toAirConfig.api_version;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.sampling_freq = lc3_bt_cfg->enc_config.toAirConfig.sampling_freq;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.max_octets_per_frame = lc3_bt_cfg->enc_config.toAirConfig.max_octets_per_frame;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.frame_duration = lc3_bt_cfg->enc_config.toAirConfig.frame_duration;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.bit_depth = lc3_bt_cfg->enc_config.toAirConfig.bit_depth;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.num_blocks = lc3_bt_cfg->enc_config.toAirConfig.num_blocks;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.default_q_level = lc3_bt_cfg->enc_config.toAirConfig.default_q_level;
- for (i = 0; i < 16; i++)
- lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.vendor_specific[i] = lc3_bt_cfg->enc_config.toAirConfig.vendor_specific[i];
- lc3_dsp_cfg.enc_codec.to_Air_cfg.toAirConfig.mode = lc3_bt_cfg->enc_config.toAirConfig.mode;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.stream_map_size = lc3_bt_cfg->enc_config.stream_map_size;
- lc3_dsp_cfg.enc_codec.streamMapToAir.stream_map_size = lc3_bt_cfg->enc_config.stream_map_size;
-
- for (i = 0; i < lc3_dsp_cfg.enc_codec.to_Air_cfg.stream_map_size; i++) {
- // for encoder stream map info
- lc3_dsp_cfg.enc_codec.to_Air_cfg.streamMapOut[i].audio_location = lc3_bt_cfg->enc_config.streamMapOut[i].audio_location;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.streamMapOut[i].stream_id = lc3_bt_cfg->enc_config.streamMapOut[i].stream_id;
- lc3_dsp_cfg.enc_codec.to_Air_cfg.streamMapOut[i].direction = lc3_bt_cfg->enc_config.streamMapOut[i].direction;
- // for packetizer stream map info
- channel_mask = convert_channel_map(lc3_bt_cfg->enc_config.streamMapOut[i].audio_location);
- lc3_dsp_cfg.enc_codec.streamMapToAir.streamMap[i].stream_id = lc3_bt_cfg->enc_config.streamMapOut[i].stream_id;
- lc3_dsp_cfg.enc_codec.streamMapToAir.streamMap[i].direction = lc3_bt_cfg->enc_config.streamMapOut[i].direction;
- lc3_dsp_cfg.enc_codec.streamMapToAir.streamMap[i].channel_mask_lsw = channel_mask & 0x00000000FFFFFFFF;
- lc3_dsp_cfg.enc_codec.streamMapToAir.streamMap[i].channel_mask_msw = (channel_mask & 0xFFFFFFFF00000000) >> 32;
- }
-
- /* Configure AFE DSP configuration */
- mixer_size = sizeof(struct lc3_enc_cfg_t);
- ret = mixer_ctl_set_array(ctl_enc_data, (void *)&lc3_dsp_cfg,
- mixer_size);
- if (ret != 0) {
- ALOGE("%s: Failed to set lc3 encoder config", __func__);
- is_configured = false;
- goto fail;
- }
-
- ret = a2dp_set_bit_format(ENCODER_BIT_FORMAT_PCM_24);
- if (ret != 0) {
- ALOGE("%s: Failed to set lc3 bit format", __func__);
- is_configured = false;
- goto fail;
- }
-
- is_configured = true;
- a2dp.bt_encoder_format = CODEC_TYPE_LC3;
-
-fail:
- return is_configured;
-}
-
-bool configure_lc3_dec_format(audio_lc3_codec_config_t *lc3_bt_cfg)
-{
- struct mixer_ctl *ctl_dec_data = NULL;
- struct lc3_dec_cfg_t lc3_dsp_cfg;
- uint64_t channel_mask;
- bool is_configured = false;
- int ret = 0;
- int i;
-
- if (lc3_bt_cfg == NULL)
- return false;
-
- ctl_dec_data = mixer_get_ctl_by_name(a2dp.adev->mixer, MIXER_SOURCE_DEC_CONFIG_BLOCK);
- if (!ctl_dec_data) {
- ALOGE(" ERROR a2dp decoder CONFIG data mixer control not identified");
- return false;
- }
-
- memset(&lc3_dsp_cfg, 0x0, sizeof(struct lc3_dec_cfg_t));
-
- lc3_dsp_cfg.abr_cfg.dec_format = MEDIA_FMT_LC3;
- lc3_dsp_cfg.abr_cfg.imc_info.direction = IMC_TRANSMIT;
- lc3_dsp_cfg.abr_cfg.imc_info.enable = IMC_ENABLE;
- lc3_dsp_cfg.abr_cfg.imc_info.purpose = IMC_PURPOSE_ID_BT_INFO;
-
- lc3_dsp_cfg.abr_cfg.imc_info.comm_instance = a2dp.abr_config.imc_instance;
-
- //for depacketizer both fromAir and toAir streamMap needs to be sent.
- lc3_dsp_cfg.dec_codec.streamMapToAir.stream_map_size = lc3_bt_cfg->enc_config.stream_map_size;
-
- for (i = 0; i < lc3_bt_cfg->enc_config.stream_map_size; i++) {
- // for depacketizer stream map info
- channel_mask = convert_channel_map(lc3_bt_cfg->enc_config.streamMapOut[i].audio_location);
- lc3_dsp_cfg.dec_codec.streamMapToAir.streamMap[i].stream_id = lc3_bt_cfg->enc_config.streamMapOut[i].stream_id;
- lc3_dsp_cfg.dec_codec.streamMapToAir.streamMap[i].direction = lc3_bt_cfg->enc_config.streamMapOut[i].direction;
- lc3_dsp_cfg.dec_codec.streamMapToAir.streamMap[i].channel_mask_lsw = channel_mask & 0x00000000FFFFFFFF;
- lc3_dsp_cfg.dec_codec.streamMapToAir.streamMap[i].channel_mask_msw = (channel_mask & 0xFFFFFFFF00000000) >> 32;
- }
-
- ret = mixer_ctl_set_array(ctl_dec_data, (void *)&lc3_dsp_cfg,
- sizeof(struct lc3_dec_cfg_t));
- if (ret != 0) {
- ALOGE("%s: failed to set LC3 decoder config", __func__);
- is_configured = false;
- goto fail;
- }
-
- is_configured = true;
- a2dp.bt_decoder_format = CODEC_TYPE_LC3;
-
-fail:
- return is_configured;
-}
-
bool configure_a2dp_encoder_format()
{
void *codec_info = NULL;
@@ -2968,14 +3070,16 @@
int ret = 0;
ALOGD("a2dp_start_capture start");
-
- if (!(a2dp.bt_lib_sink_handle && a2dp.audio_sink_start
- && a2dp.audio_get_dec_config)) {
+ /* checking for sink lib for mobile platform not available then using source lib */
+ if ((!(a2dp.bt_lib_sink_handle && a2dp.audio_sink_start
+ && a2dp.audio_get_dec_config)) && (!(a2dp.bt_lib_source_handle && a2dp.audio_source_start
+ && a2dp.audio_get_enc_config))) {
ALOGE("a2dp handle is not identified, Ignoring start capture request");
return -ENOSYS;
}
- if (!a2dp.a2dp_sink_started && !a2dp.a2dp_sink_total_active_session_requests) {
+ if (a2dp.bt_lib_sink_handle && !a2dp.a2dp_sink_started
+ && !a2dp.a2dp_sink_total_active_session_requests && a2dp.audio_sink_start) {
ALOGD("calling BT module stream start");
/* This call indicates BT IPC lib to start capture */
ret = a2dp.audio_sink_start();
@@ -3005,11 +3109,36 @@
ret = -ETIMEDOUT;
}
}
+ } else if ((a2dp.bt_lib_source_handle) && (configure_a2dp_sink_decoder_format())) {
+ if (a2dp.audio_source_start) {
+ ret = a2dp.audio_source_start();
+ if (ret == 0) {
+ a2dp.a2dp_sink_started = true;
+ ALOGD("Start capture successful to BT library");
+ } else {
+ ALOGE("BT controller start failed");
+ }
+ }
+ } else {
+ ALOGD(" unable to configure DSP decoder");
+ a2dp.a2dp_sink_started = false;
+ ret = -ETIMEDOUT;
}
if (a2dp.a2dp_sink_started) {
- if (a2dp_set_backend_cfg(SINK) == true) {
+ if (a2dp_set_backend_cfg(SINK) == true)
a2dp.a2dp_sink_total_active_session_requests++;
+ /* Start abr for LC3 decoder*/
+ if (a2dp.bt_decoder_format == CODEC_TYPE_LC3) {
+ a2dp.abr_config.is_abr_enabled = true;
+ /*
+ * Before starting abr, we must ensure to set correct acdb id
+ * because abr will trigger port open which needs acdb_id
+ */
+ fp_platform_switch_voice_call_device_post(a2dp.adev->platform,
+ SND_DEVICE_OUT_BT_SCO_WB,
+ SND_DEVICE_IN_BT_SCO_MIC_WB);
+ start_abr();
}
}
@@ -3069,6 +3198,9 @@
struct abr_dec_cfg_t dummy_reset_cfg;
int ret = 0;
+ if (a2dp.bt_decoder_format == CODEC_TYPE_LC3)
+ a2dp.bt_decoder_format = CODEC_TYPE_INVALID;
+
ctl_dec_data = mixer_get_ctl_by_name(a2dp.adev->mixer, MIXER_SOURCE_DEC_CONFIG_BLOCK);
if (!ctl_dec_data) {
ALOGE("%s: ERROR A2DP decoder config mixer control not identifed", __func__);
@@ -3162,7 +3294,8 @@
int ret =0;
ALOGV("a2dp_stop_capture start");
- if (!(a2dp.bt_lib_sink_handle && a2dp.audio_sink_stop)) {
+ if ((!(a2dp.bt_lib_sink_handle && a2dp.audio_sink_stop))
+ && (!(a2dp.bt_lib_source_handle && a2dp.audio_source_stop))) {
ALOGE("a2dp handle is not identified, Ignoring stop request");
return -ENOSYS;
}
@@ -3170,7 +3303,8 @@
if (a2dp.a2dp_sink_total_active_session_requests > 0)
a2dp.a2dp_sink_total_active_session_requests--;
- if ( a2dp.a2dp_sink_started && !a2dp.a2dp_sink_total_active_session_requests) {
+ if (a2dp.bt_lib_sink_handle && a2dp.a2dp_sink_started
+ && !a2dp.a2dp_sink_total_active_session_requests && a2dp.audio_sink_stop) {
ALOGV("calling BT module stream stop");
ret = a2dp.audio_sink_stop();
if (ret < 0)
@@ -3179,7 +3313,17 @@
ALOGV("stop steam to BT IPC lib successful");
reset_a2dp_sink_dec_config_params();
a2dp_reset_backend_cfg(SINK);
+ } else if (a2dp.bt_lib_source_handle) {
+ ret = a2dp.audio_source_stop();
+ if (ret < 0)
+ ALOGE("stop stream to BT IPC lib failed");
+ else
+ ALOGV("stop steam to BT IPC lib successful");
+ a2dp.bt_decoder_format = CODEC_TYPE_INVALID;
+ reset_codec_config();
+ a2dp.a2dp_sink_started = false;
}
+
if (!a2dp.a2dp_sink_total_active_session_requests)
a2dp.a2dp_source_started = false;
ALOGD("Stop A2DP capture, total active sessions :%d",
@@ -3329,6 +3473,13 @@
goto param_handled;
}
+ ret = str_parms_get_str(parms, "BT_SCO", value, sizeof(value));
+ if (ret >= 0) {
+ if (strcmp(value, AUDIO_PARAMETER_VALUE_ON) == 0) {
+ a2dp.a2dp_source_suspended = true;
+ }
+ }
+
param_handled:
ALOGV("end of a2dp setparam");
return status;
diff --git a/hal/audio_extn/audio_defs.h b/hal/audio_extn/audio_defs.h
index d8d1bbb..3ed869b 100644
--- a/hal/audio_extn/audio_defs.h
+++ b/hal/audio_extn/audio_defs.h
@@ -212,6 +212,15 @@
*/
} audio_extn_callback_id;
+typedef int audio_stream_callback_t(audio_extn_callback_id event,
+ void *param,
+ void *cookie);
+
+struct audio_stream_callback_param {
+ audio_stream_callback_t *cb; /* callback function */
+ void *cookie; /* callback context */
+};
+
#define AUDIO_MAX_ADSP_STREAM_CMD_PAYLOAD_LEN 504
typedef enum {
@@ -317,6 +326,7 @@
typedef union {
struct audio_out_render_window_param render_window_params;
+ struct audio_stream_callback_param stream_callback_params;
} audio_extn_loopback_param_payload;
typedef enum {
diff --git a/hal/audio_extn/audio_extn.c b/hal/audio_extn/audio_extn.c
old mode 100755
new mode 100644
index d3b2935..b9832bb
--- a/hal/audio_extn/audio_extn.c
+++ b/hal/audio_extn/audio_extn.c
@@ -35,6 +35,42 @@
* limitations under the License.
*/
+/*
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) provided that the following conditions are met:
+*
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+*
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+*
+* * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
#define LOG_TAG "audio_hw_extn"
/*#define LOG_NDEBUG 0*/
#define LOG_NDDEBUG 0
@@ -67,6 +103,10 @@
#include <log_utils.h>
#endif
+#ifdef LINUX_ENABLED
+#include "audio_stub.h"
+#endif
+
#define MAX_SLEEP_RETRY 100
#define WIFI_INIT_WAIT_SLEEP 50
#define MAX_NUM_CHANNELS 8
@@ -198,6 +238,7 @@
static bool audio_extn_maxx_audio_enabled = false;
static bool audio_extn_audiozoom_enabled = false;
static bool audio_extn_hifi_filter_enabled = false;
+static bool audio_extn_concurrent_pcm_record_enabled = false;
#define AUDIO_PARAMETER_KEY_AANC_NOISE_LEVEL "aanc_noise_level"
#define AUDIO_PARAMETER_KEY_ANC "anc_enabled"
@@ -438,7 +479,7 @@
cust_ch_mixer_cfg[len++] = pinfo->ip_channels;
cust_ch_mixer_cfg[len++] = pinfo->op_channels;
for (i = 0; i < (int) (pinfo->op_channels * pinfo->ip_channels); i++) {
- ALOGV("%s: coeff[%d] %d", __func__, i, params->coeffs[i]);
+ ALOGV("%s: coeff[%d] %lu", __func__, i, (unsigned long )params->coeffs[i]);
cust_ch_mixer_cfg[len++] = params->coeffs[i];
}
err = mixer_ctl_set_array(ctl, cust_ch_mixer_cfg, len);
@@ -1793,6 +1834,23 @@
#define CIRRUS_SPKR_PROT_LIB_PATH "/vendor/lib/libcirrusspkrprot.so"
#endif
+
+#define STR_CAT(path, extn) (path extn)
+
+#if LINUX_ENABLED
+# define SPKR_PROT_LIB_PATH STR_CAT(LE_LIBDIR, "/audio.spkr.prot.so")
+# define CIRRUS_SPKR_PROT_LIB_PATH STR_CAT(LE_LIBDIR, "/audio.external.spkr.prot.so")
+#else
+# ifdef __LP64__
+# define SPKR_PROT_LIB_PATH "/vendor/lib64/libspkrprot.so"
+# define CIRRUS_SPKR_PROT_LIB_PATH "/vendor/lib64/libcirrusspkrprot.so"
+# else
+# define SPKR_PROT_LIB_PATH "/vendor/lib/libspkrprot.so"
+# define CIRRUS_SPKR_PROT_LIB_PATH "/vendor/lib/libcirrusspkrprot.so"
+# endif
+#endif
+
+
static void *spkr_prot_lib_handle = NULL;
typedef void (*spkr_prot_init_t)(void *, spkr_prot_init_config_t);
@@ -1833,10 +1891,14 @@
is_feature_enabled ? "Enabled" : "NOT Enabled", vendor_enhanced_info);
if (is_feature_enabled) {
// dlopen lib
+#if LINUX_ENABLED
+ spkr_prot_lib_handle = dlopen(SPKR_PROT_LIB_PATH, RTLD_NOW);
+#else
if ((vendor_enhanced_info & 0x3) == 0x0) // Pure AOSP
spkr_prot_lib_handle = dlopen(CIRRUS_SPKR_PROT_LIB_PATH, RTLD_NOW);
else
spkr_prot_lib_handle = dlopen(SPKR_PROT_LIB_PATH, RTLD_NOW);
+#endif
if (spkr_prot_lib_handle == NULL) {
ALOGE("%s: dlopen failed", __func__);
@@ -3728,7 +3790,8 @@
int max_mic_count = platform_get_max_mic_count(adev->platform);
/* validate input params. Avoid updated channel mask if loopback device */
- if ((channel_count == 6) &&
+ /* validate input params. Avoid updated channel mask if HDMI or loopback device */
+ if ((channel_count > max_mic_count) &&
(in->format == AUDIO_FORMAT_PCM_16_BIT) &&
(!is_loopback_input_device(get_device_types(&in->device_list)))) {
switch (max_mic_count) {
@@ -4817,6 +4880,12 @@
a2dp_get_encoder_latency() : 0);
}
+uint32_t audio_extn_a2dp_get_decoder_latency()
+{
+ return (a2dp_get_encoder_latency ?
+ a2dp_get_encoder_latency() : 0);
+}
+
bool audio_extn_a2dp_sink_is_ready()
{
return (a2dp_sink_is_ready ?
@@ -4865,9 +4934,27 @@
// START: HFP ======================================================================
#ifdef __LP64__
+#ifdef LINUX_ENABLED
+#define HFP_LIB_PATH "/usr/lib64/libhfp.so"
+#define LINUX_PATH true
+#ifdef HAL_LIBRARY_PATH
+#define HFP_LIB_PATH HAL_LIBRARY_PATH
+#endif
+#else
#define HFP_LIB_PATH "/vendor/lib64/libhfp.so"
+#define LINUX_PATH false
+#endif
+#else
+#ifdef LINUX_ENABLED
+#define HFP_LIB_PATH "/usr/lib/libhfp.so"
+#define LINUX_PATH true
+#ifdef HAL_LIBRARY_PATH
+#define HFP_LIB_PATH HAL_LIBRARY_PATH
+#endif
#else
#define HFP_LIB_PATH "/vendor/lib/libhfp.so"
+#define LINUX_PATH false
+#endif
#endif
static void *hfp_lib_handle = NULL;
@@ -4897,8 +4984,12 @@
is_feature_enabled ? "Enabled" : "NOT Enabled");
if (is_feature_enabled) {
// dlopen lib
- hfp_lib_handle = dlopen(HFP_LIB_PATH, RTLD_NOW);
-
+ if (LINUX_PATH) {
+ char libhfp_path[100];
+ snprintf(libhfp_path, sizeof(libhfp_path), "%s/libhfp.so", HFP_LIB_PATH);
+ hfp_lib_handle = dlopen(libhfp_path, RTLD_NOW);
+ } else
+ hfp_lib_handle = dlopen(HFP_LIB_PATH , RTLD_NOW);
if (!hfp_lib_handle) {
ALOGE("%s: dlopen failed", __func__);
goto feature_disabled;
@@ -4959,7 +5050,6 @@
hfp_set_mic_mute = NULL;
hfp_set_mic_mute2 = NULL;
hfp_set_parameters = NULL;
-
ALOGW(":: %s: ---- Feature HFP is disabled ----", __func__);
return -ENOSYS;
}
@@ -5608,6 +5698,19 @@
}
// END: CONCURRENT_CAPTURE ====================================================
+// START: CONCURRENT_PCM_RECORD ===============================================
+bool audio_extn_is_concurrent_pcm_record_enabled()
+{
+ return audio_extn_concurrent_pcm_record_enabled;
+}
+
+void concurrent_pcm_record_feature_init(bool is_feature_enabled)
+{
+ audio_extn_concurrent_pcm_record_enabled = is_feature_enabled;
+ ALOGD("%s: ---- Feature CONCURRENT_PCM_RECORD is %s----", __func__, is_feature_enabled? "ENABLED": "NOT ENABLED");
+}
+// END: CONCURRENT_PCM_RECORD =================================================
+
// START: COMPRESS_IN ==================================================
void compress_in_feature_init(bool is_feature_enabled)
{
@@ -5675,10 +5778,10 @@
typedef void (*batt_listener_init_t)(battery_status_change_fn_t);
static batt_listener_init_t batt_listener_init;
-typedef void (*batt_listener_deinit_t)();
+typedef void (*batt_listener_deinit_t)(void);
static batt_listener_deinit_t batt_listener_deinit;
-typedef bool (*batt_prop_is_charging_t)();
+typedef bool (*batt_prop_is_charging_t)(void);
static batt_prop_is_charging_t batt_prop_is_charging;
void battery_listener_feature_init(bool is_feature_enabled)
@@ -6060,11 +6163,19 @@
// END: MAXX_AUDIO =====================================================================
// START: AUTO_HAL ===================================================================
+#ifdef LINUX_ENABLED
+#ifdef __LP64__
+#define AUTO_HAL_LIB_PATH "/usr/lib64/libautohal.so"
+#else
+#define AUTO_HAL_LIB_PATH "/usr/lib/libautohal.so"
+#endif
+#else
#ifdef __LP64__
#define AUTO_HAL_LIB_PATH "/vendor/lib64/libautohal.so"
#else
#define AUTO_HAL_LIB_PATH "/vendor/lib/libautohal.so"
#endif
+#endif
static void *auto_hal_lib_handle = NULL;
@@ -6096,6 +6207,9 @@
typedef int (*auto_hal_open_input_stream_t)(struct stream_in*);
static auto_hal_open_input_stream_t auto_hal_open_input_stream;
+typedef int (*auto_hal_open_echo_reference_stream_t)(struct stream_in*);
+static auto_hal_open_echo_reference_stream_t auto_hal_open_echo_reference_stream;
+
typedef bool (*auto_hal_is_bus_device_usecase_t)(audio_usecase_t);
static auto_hal_is_bus_device_usecase_t auto_hal_is_bus_device_usecase;
@@ -6131,10 +6245,18 @@
car_audio_stream);
static auto_hal_get_snd_device_for_car_audio_stream_t auto_hal_get_snd_device_for_car_audio_stream;
+typedef bool (*auto_hal_overwrite_priority_for_auto_t)(struct stream_in*);
+static auto_hal_overwrite_priority_for_auto_t auto_hal_overwrite_priority_for_auto;
+
int auto_hal_feature_init(bool is_feature_enabled)
{
ALOGD("%s: Called with feature %s", __func__,
is_feature_enabled ? "Enabled" : "NOT Enabled");
+
+#ifdef LINUX_ENABLED
+ is_feature_enabled = true;
+#endif
+
if (is_feature_enabled) {
// dlopen lib
auto_hal_lib_handle = dlopen(AUTO_HAL_LIB_PATH, RTLD_NOW);
@@ -6163,6 +6285,9 @@
!(auto_hal_open_input_stream =
(auto_hal_open_input_stream_t)dlsym(
auto_hal_lib_handle, "auto_hal_open_input_stream")) ||
+ !(auto_hal_open_echo_reference_stream =
+ (auto_hal_open_echo_reference_stream_t)dlsym(
+ auto_hal_lib_handle, "auto_hal_open_echo_reference_stream")) ||
!(auto_hal_is_bus_device_usecase =
(auto_hal_is_bus_device_usecase_t)dlsym(
auto_hal_lib_handle, "auto_hal_is_bus_device_usecase")) ||
@@ -6189,7 +6314,10 @@
auto_hal_lib_handle, "auto_hal_get_output_snd_device")) ||
!(auto_hal_get_snd_device_for_car_audio_stream =
(auto_hal_get_snd_device_for_car_audio_stream_t)dlsym(
- auto_hal_lib_handle, "auto_hal_get_snd_device_for_car_audio_stream"))) {
+ auto_hal_lib_handle, "auto_hal_get_snd_device_for_car_audio_stream")) ||
+ !(auto_hal_overwrite_priority_for_auto =
+ (auto_hal_overwrite_priority_for_auto_t)dlsym(
+ auto_hal_lib_handle, "auto_hal_overwrite_priority_for_auto"))) {
ALOGE("%s: dlsym failed", __func__);
goto feature_disabled;
}
@@ -6210,6 +6338,7 @@
auto_hal_get_car_audio_stream_from_address = NULL;
auto_hal_open_output_stream = NULL;
auto_hal_open_input_stream = NULL;
+ auto_hal_open_echo_reference_stream = NULL;
auto_hal_is_bus_device_usecase = NULL;
auto_hal_get_audio_port = NULL;
auto_hal_set_audio_port_config = NULL;
@@ -6219,6 +6348,7 @@
auto_hal_get_input_snd_device = NULL;
auto_hal_get_output_snd_device = NULL;
auto_hal_get_snd_device_for_car_audio_stream = NULL;
+ auto_hal_overwrite_priority_for_auto = NULL;
ALOGW(":: %s: ---- Feature AUTO_HAL is disabled ----", __func__);
return -ENOSYS;
@@ -6240,6 +6370,7 @@
auto_hal_init_config.fp_platform_set_echo_reference = platform_set_echo_reference;
auto_hal_init_config.fp_platform_get_eccarstate = platform_get_eccarstate;
auto_hal_init_config.fp_generate_patch_handle = generate_patch_handle;
+ auto_hal_init_config.fp_platform_get_pcm_device_id = platform_get_pcm_device_id;
return auto_hal_init(adev, auto_hal_init_config);
}
else
@@ -6293,6 +6424,12 @@
auto_hal_open_input_stream(in): -ENOSYS);
}
+int audio_extn_auto_hal_open_echo_reference_stream(struct stream_in *in)
+{
+ return ((auto_hal_open_echo_reference_stream) ?
+ auto_hal_open_echo_reference_stream(in): 0);
+}
+
bool audio_extn_auto_hal_is_bus_device_usecase(audio_usecase_t uc_id)
{
return ((auto_hal_is_bus_device_usecase) ?
@@ -6353,6 +6490,13 @@
return ((auto_hal_get_snd_device_for_car_audio_stream) ?
auto_hal_get_snd_device_for_car_audio_stream(car_audio_stream): SND_DEVICE_NONE);
}
+
+bool audio_extn_auto_hal_overwrite_priority_for_auto(struct stream_in *in)
+{
+ return ((auto_hal_overwrite_priority_for_auto) ?
+ auto_hal_overwrite_priority_for_auto(in): false);
+}
+
// END: AUTO_HAL ===================================================================
// START: Synth ======================================================================
@@ -6438,11 +6582,81 @@
// END: Synth ========================================================================
+// START: Power Policy Client ======================================================================
+#ifdef __LP64__
+#define POWER_POLICY_LIB_PATH "/vendor/lib64/libaudiopowerpolicy.so"
+#else
+#define POWER_POLICY_LIB_PATH "/vendor/lib/libaudiopowerpolicy.so"
+#endif
+static void* power_policy_lib_handle;
+typedef int (*launch_power_policy_t) (power_policy_init_config_t);
+static launch_power_policy_t launch_power_policy;
+
+static void* power_policy_thread_func(void* arg __unused) {
+ if (launch_power_policy == NULL) {
+ ALOGE("%s: Power Policy launcher is NULL", __func__);
+ goto exit;
+ }
+ ALOGD("%s: Launching Power Policy Client", __func__);
+ power_policy_init_config_t init_config;
+ init_config.fp_in_set_power_policy = in_set_power_policy;
+ init_config.fp_out_set_power_policy = out_set_power_policy;
+ launch_power_policy(init_config);
+
+exit:
+ return NULL;
+}
+
+static int power_policy_feature_init(bool is_feature_enabled)
+{
+ pthread_t tid;
+ pthread_attr_t attr;
+
+ ALOGD("%s: Called with feature %s", __func__,
+ is_feature_enabled ? "Enabled" : "NOT Enabled");
+ if (is_feature_enabled) {
+ // dlopen lib
+ power_policy_lib_handle = dlopen(POWER_POLICY_LIB_PATH, RTLD_NOW);
+
+ if (!power_policy_lib_handle) {
+ ALOGE("%s: dlopen failed", __func__);
+ goto feature_disabled;
+ }
+ if (!(launch_power_policy = (launch_power_policy_t)dlsym(
+ power_policy_lib_handle, "launchPowerPolicyClient")))
+ {
+ ALOGE("%s: dlsym failed", __func__);
+ goto feature_disabled;
+ }
+
+ pthread_attr_init(&attr);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+ if (pthread_create(&tid, &attr, power_policy_thread_func, NULL))
+ {
+ ALOGE("%s: Failed to create power policy thread", __func__);
+ goto feature_disabled;
+ }
+ ALOGD("%s:: ---- Feature Power Policy Client is Enabled ----", __func__);
+ return 0;
+ }
+
+feature_disabled:
+ if (power_policy_lib_handle) {
+ dlclose(power_policy_lib_handle);
+ power_policy_lib_handle = NULL;
+ }
+
+ launch_power_policy = NULL;
+
+ ALOGW(":: %s: ---- Feature Power Policy Client is disabled ----", __func__);
+ return -ENOSYS;
+
+// END: Power Policy Client ======================================================================
+}
void audio_extn_feature_init()
{
vendor_enhanced_info = audio_extn_utils_get_vendor_enhanced_info();
-
// register feature init functions here
// each feature needs a vendor property
// default value added is for GSI (non vendor modified images)
@@ -6527,9 +6741,17 @@
hwdep_cal_feature_init(
property_get_bool("vendor.audio.feature.hwdep_cal.enable",
false));
+ #ifdef LINUX_ENABLED
+ #ifdef HFP_ENABLED
+ hfp_feature_init(true);
+ #else
+ hfp_feature_init(false);
+ #endif
+ #else
hfp_feature_init(
property_get_bool("vendor.audio.feature.hfp.enable",
- false));
+ false));
+ #endif
icc_feature_init(
property_get_bool("vendor.audio.feature.icc.enable",
false));
@@ -6563,6 +6785,12 @@
synth_feature_init(
property_get_bool("vendor.audio.feature.synth.enable",
false));
+ power_policy_feature_init(
+ property_get_bool("vendor.audio.feature.powerpolicy.enable",
+ false));
+ concurrent_pcm_record_feature_init(
+ property_get_bool("vendor.audio.feature.concurrent_pcm_record.enable",
+ false));
}
void audio_extn_set_parameters(struct audio_device *adev,
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
old mode 100755
new mode 100644
index 64b77e8..f35a9d6
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -98,13 +98,21 @@
#define AUDIO_OUTPUT_FLAG_INTERACTIVE 0x4000000
#endif
+#ifndef AUDIO_DEVICE_IN_SPEAKER_MIC2
+#define AUDIO_DEVICE_IN_SPEAKER_MIC2 0x10000000
+#endif
+
+#ifndef AUDIO_DEVICE_IN_SPEAKER_MIC3
+#define AUDIO_DEVICE_IN_SPEAKER_MIC3 0x20000000
+#endif
+
int audio_extn_parse_compress_metadata(struct stream_out *out,
struct str_parms *parms);
#define AUDIO_OUTPUT_BIT_WIDTH ((config->offload_info.bit_width == 32) ? 24\
:config->offload_info.bit_width)
-#ifndef ENABLE_EXTENDED_COMPRESS_FORMAT
+#if !defined(ENABLE_EXTENDED_COMPRESS_FORMAT) || defined(ENABLE_AUDIO_LEGACY_PURE)
#define compress_set_metadata(compress, metadata) (0)
#define compress_get_metadata(compress, metadata) (0)
#define compress_set_next_track_param(compress, codec_options) (0)
@@ -325,6 +333,7 @@
void audio_extn_a2dp_get_enc_sample_rate(int *sample_rate);
void audio_extn_a2dp_get_dec_sample_rate(int *sample_rate);
uint32_t audio_extn_a2dp_get_encoder_latency();
+uint32_t audio_extn_a2dp_get_decoder_latency();
bool audio_extn_a2dp_sink_is_ready();
bool audio_extn_a2dp_source_is_ready();
bool audio_extn_a2dp_source_is_suspended();
@@ -1344,6 +1353,9 @@
#ifndef AUDIO_OUTPUT_FLAG_PHONE
#define AUDIO_OUTPUT_FLAG_PHONE 0x800000
#endif
+#ifndef AUDIO_OUTPUT_FLAG_ALERTS
+#define AUDIO_OUTPUT_FLAG_ALERTS 0x4000000
+#endif
#ifndef AUDIO_OUTPUT_FLAG_FRONT_PASSENGER
#define AUDIO_OUTPUT_FLAG_FRONT_PASSENGER 0x1000000
#endif
@@ -1373,6 +1385,8 @@
int audio_extn_auto_hal_get_car_audio_stream_from_address(const char *address);
int audio_extn_auto_hal_open_output_stream(struct stream_out *out);
int audio_extn_auto_hal_open_input_stream(struct stream_in *in);
+int audio_extn_auto_hal_open_echo_reference_stream(struct stream_in *in);
+bool audio_extn_auto_hal_overwrite_priority_for_auto(struct stream_in *in);
bool audio_extn_auto_hal_is_bus_device_usecase(audio_usecase_t uc_id);
int audio_extn_auto_hal_get_audio_port(struct audio_hw_device *dev,
struct audio_port *config);
@@ -1408,6 +1422,7 @@
fp_platform_set_echo_reference_t fp_platform_set_echo_reference;
fp_platform_get_eccarstate_t fp_platform_get_eccarstate;
fp_generate_patch_handle_t fp_generate_patch_handle;
+ fp_platform_get_pcm_device_id_t fp_platform_get_pcm_device_id;
} auto_hal_init_config_t;
// END: AUTO_HAL FEATURE ==================================================
@@ -1425,6 +1440,17 @@
} synth_init_config_t;
// END: SYNTH_HAL FEATURE ==================================================
+// START: POWER_POLICY FEATURE ==================================================
+
+typedef void (*fp_in_set_power_policy_t) (uint8_t);
+typedef void (*fp_out_set_power_policy_t) (uint8_t);
+
+typedef struct power_policy_init_config {
+ fp_in_set_power_policy_t fp_in_set_power_policy;
+ fp_out_set_power_policy_t fp_out_set_power_policy;
+} power_policy_init_config_t;
+// END: POWER_POLICY FEATURE ==================================================
+
bool audio_extn_edid_is_supported_sr(edid_audio_info* info, int sr);
bool audio_extn_edid_is_supported_bps(edid_audio_info* info, int bps);
int audio_extn_edid_get_highest_supported_sr(edid_audio_info* info);
@@ -1455,4 +1481,5 @@
int channel_count);
void audio_get_vendor_config_path(char* config_file_path, int path_size);
+bool audio_extn_is_concurrent_pcm_record_enabled();
#endif /* AUDIO_EXTN_H */
diff --git a/hal/audio_extn/audio_stub.c b/hal/audio_extn/audio_stub.c
new file mode 100755
index 0000000..c9ec1bf
--- /dev/null
+++ b/hal/audio_extn/audio_stub.c
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2021 The Linux Foundation. All rights reserved.
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+* * Neither the name of The Linux Foundation nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef LINUX_ENABLED
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <arpa/nameser.h>
+
+#include <ctype.h>
+#include <resolv.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int32_t property_get_int32(const char *key, int32_t default_value) {
+ return 0;
+}
+
+int64_t property_get_int64(const char *key, int64_t default_value) {
+ return 0;
+}
+
+int audio_extn_hidl_init() {
+ return 0;
+}
+
+int audio_streaming_hint_start() {
+ return 0;
+}
+
+int audio_streaming_hint_end() {
+ return 0;
+}
+
+int audio_low_latency_hint_start() {
+ return 0;
+}
+
+int audio_low_latency_hint_end() {
+ return 0;
+}
+#endif
diff --git a/hal/audio_extn/audio_stub.h b/hal/audio_extn/audio_stub.h
new file mode 100755
index 0000000..01137ca
--- /dev/null
+++ b/hal/audio_extn/audio_stub.h
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2021 The Linux Foundation. All rights reserved.
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are
+* met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+* * Neither the name of The Linux Foundation nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifdef LINUX_ENABLED
+
+#ifndef _AUDIO_STUB_H_
+#define _AUDIO_STUB_H_
+
+#ifdef __LP64__
+#define CPU_SETSIZE 1024
+#else
+#define CPU_SETSIZE 32
+#endif
+
+#define CPU_ZERO(cpusetp) \
+ memset((cpusetp), 0, sizeof(cpu_set_t))
+
+#endif
+#endif
diff --git a/hal/audio_extn/auto_hal.c b/hal/audio_extn/auto_hal.c
old mode 100755
new mode 100644
index 39f2838..037b0e5
--- a/hal/audio_extn/auto_hal.c
+++ b/hal/audio_extn/auto_hal.c
@@ -34,6 +34,7 @@
#include <log/log.h>
#include <math.h>
#include <audio_hw.h>
+#include <tinyalsa/asoundlib.h>
#include "audio_extn.h"
#include "platform_api.h"
#include "platform.h"
@@ -46,6 +47,17 @@
#include <log_utils.h>
#endif
+#define MAX_VOLUME 1.995262
+#define DSP_MAX_VOLUME 0x2000
+#define DUCKED_VOLUME 0.0035
+
+enum {
+ AUDIO_DEVICE_DUCKED = 0,
+ AUDIO_DEVICE_UNDUCKED,
+ AUDIO_DEVICE_MUTED,
+ AUDIO_DEVICE_UNMUTED
+};
+
//external feature dependency
static fp_audio_extn_ext_hw_plugin_usecase_start_t fp_audio_extn_ext_hw_plugin_usecase_start;
static fp_audio_extn_ext_hw_plugin_usecase_stop_t fp_audio_extn_ext_hw_plugin_usecase_stop;
@@ -59,6 +71,7 @@
static fp_platform_set_echo_reference_t fp_platform_set_echo_reference;
static fp_platform_get_eccarstate_t fp_platform_get_eccarstate;
static fp_generate_patch_handle_t fp_generate_patch_handle;
+static fp_platform_get_pcm_device_id_t fp_platform_get_pcm_device_id;
/* Auto hal module struct */
static struct auto_hal_module *auto_hal = NULL;
@@ -336,6 +349,25 @@
return ret;
}
+/*
+ * Function: auto_hal_open_echo_reference_stream
+ * ---------------------------------------------
+ * opens an input stream to capture an echo reference
+ * and sets for external echo reference
+ *
+ * param *in: stream to be used for echo reference
+ *
+ * returns: 0
+ */
+int auto_hal_open_echo_reference_stream(struct stream_in *in)
+{
+ /* note: this function may be expanded in the future
+ to accommodate other echo reference sources
+ such as an internal AFE loopback. */
+ in->usecase = USECASE_AUDIO_RECORD_ECHO_REF_EXT;
+ return 0;
+}
+
int auto_hal_open_output_stream(struct stream_out *out)
{
int ret = 0;
@@ -361,7 +393,26 @@
case CAR_AUDIO_STREAM_SYS_NOTIFICATION:
/* sys notification bus stream shares pcm device with low-latency */
out->usecase = USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION;
- out->config = pcm_config_system;
+ switch(out->sample_rate)
+ {
+ case 48000:
+ out->config=pcm_config_system_48KHz;
+ break;
+ case 32000:
+ out->config=pcm_config_system_32KHz;
+ break;
+ case 24000:
+ out->config=pcm_config_system_24KHz;
+ break;
+ case 16000:
+ out->config=pcm_config_system_16KHz;
+ break;
+ case 8000:
+ out->config=pcm_config_system_8KHz;
+ break;
+ default:
+ out->config=pcm_config_system_48KHz;
+ }
if (out->flags == AUDIO_OUTPUT_FLAG_NONE)
out->flags |= AUDIO_OUTPUT_FLAG_SYS_NOTIFICATION;
out->volume_l = out->volume_r = MAX_VOLUME_GAIN;
@@ -382,11 +433,37 @@
break;
case CAR_AUDIO_STREAM_PHONE:
out->usecase = USECASE_AUDIO_PLAYBACK_PHONE;
- out->config = pcm_config_system;
+ switch(out->sample_rate)
+ {
+ case 48000:
+ out->config=pcm_config_system_48KHz;
+ break;
+ case 32000:
+ out->config=pcm_config_system_32KHz;
+ break;
+ case 24000:
+ out->config=pcm_config_system_24KHz;
+ break;
+ case 16000:
+ out->config=pcm_config_system_16KHz;
+ break;
+ case 8000:
+ out->config=pcm_config_system_8KHz;
+ break;
+ default:
+ out->config=pcm_config_system_48KHz;
+ }
if (out->flags == AUDIO_OUTPUT_FLAG_NONE)
out->flags |= AUDIO_OUTPUT_FLAG_PHONE;
out->volume_l = out->volume_r = MAX_VOLUME_GAIN;
break;
+ case CAR_AUDIO_STREAM_ALERTS:
+ out->usecase = USECASE_AUDIO_PLAYBACK_ALERTS;
+ out->config = pcm_config_system;
+ if (out->flags == AUDIO_OUTPUT_FLAG_NONE)
+ out->flags |= AUDIO_OUTPUT_FLAG_ALERTS;
+ out->volume_l = out->volume_r = MAX_VOLUME_GAIN;
+ break;
case CAR_AUDIO_STREAM_FRONT_PASSENGER:
out->usecase = USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER;
out->config = pcm_config_system;
@@ -445,6 +522,9 @@
case CAR_AUDIO_STREAM_PHONE:
snd_device = SND_DEVICE_OUT_BUS_PHN;
break;
+ case CAR_AUDIO_STREAM_ALERTS:
+ snd_device = SND_DEVICE_OUT_BUS_ALR;
+ break;
case CAR_AUDIO_STREAM_FRONT_PASSENGER:
snd_device = SND_DEVICE_OUT_BUS_PAX;
break;
@@ -467,6 +547,17 @@
return snd_device;
}
+bool auto_hal_overwrite_priority_for_auto(struct stream_in *in)
+{
+ /* Don't use the priority_in stream when the source is
+ * AUDIO_SOURCE_ECHO_REFERENCE because the platform_get_input_snd_device
+ * call (below) needs to set the snd_device based the echo ref stream and
+ * NOT based on higher priority streams (such as concurrent recording
+ * streams from the mic) */
+
+ return (in->source == AUDIO_SOURCE_ECHO_REFERENCE);
+}
+
int auto_hal_get_audio_port(struct audio_hw_device *dev __unused,
struct audio_port *config __unused)
{
@@ -591,11 +682,84 @@
return ret;
}
-void auto_hal_set_parameters(struct audio_device *adev __unused,
+
+static int auto_hal_out_set_pcm_volume(struct stream_out *out, float volume)
+{
+ /* Volume control for pcm playback */
+ char mixer_ctl_name[128];
+ struct audio_device *adev = out->dev;
+ struct mixer_ctl *ctl;
+ int pcm_device_id = fp_platform_get_pcm_device_id(out->usecase, PCM_PLAYBACK);
+ snprintf(mixer_ctl_name, sizeof(mixer_ctl_name), "Playback %d Volume", pcm_device_id);
+ ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+ if (!ctl) {
+ ALOGE("%s : Could not get ctl for mixer cmd - %s", __func__, mixer_ctl_name);
+ return -EINVAL;
+ }
+
+ int dsp_vol = (int) (volume * DSP_MAX_VOLUME);
+ int ret = mixer_ctl_set_value(ctl, 0, dsp_vol);
+ if (ret < 0) {
+ ALOGE("%s: Could not set ctl, error:%d ", __func__, ret);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static void auto_hal_set_mute_duck_state(struct audio_device *adev,
+ char* duck_mute_value,
+ int duck_mute_state)
+{
+ struct listnode *node = NULL;
+ char *ptr = NULL;
+ char *saveptr = NULL;
+ struct stream_out *out = NULL;
+ int car_audio_stream = -1;
+
+ for (ptr = strtok_r(duck_mute_value, ",", &saveptr);
+ ptr != NULL; ptr = strtok_r(NULL, ",", &saveptr)) {
+ list_for_each(node, &adev->active_outputs_list) {
+ streams_output_ctxt_t *out_ctxt = node_to_item(node,
+ streams_output_ctxt_t,
+ list);
+ out = out_ctxt->output;
+ car_audio_stream = auto_hal_get_car_audio_stream_from_address(ptr);
+ if (car_audio_stream == out->car_audio_stream) {
+ switch(duck_mute_state) {
+ case AUDIO_DEVICE_DUCKED:
+ ALOGD("%s: Ducking BUS device %s", __func__, ptr);
+ auto_hal_out_set_pcm_volume(out, DUCKED_VOLUME);
+ break;
+
+ case AUDIO_DEVICE_UNDUCKED:
+ ALOGD("%s: Unducking BUS device %s", __func__, ptr);
+ auto_hal_out_set_pcm_volume(out, out->volume_l);
+ break;
+
+ case AUDIO_DEVICE_MUTED:
+ ALOGD("%s: Muting BUS device %s", __func__, ptr);
+ out->muted = true;
+ break;
+
+ case AUDIO_DEVICE_UNMUTED:
+ ALOGD("%s: Unmuting BUS device %s", __func__, ptr);
+ out->muted = false;
+ break;
+ }
+ }
+ }
+ }
+
+}
+
+void auto_hal_set_parameters(struct audio_device *adev,
struct str_parms *parms)
{
int ret = 0;
char value[32]={0};
+ char duck_mute_value[128] = {0};
+ char *ptr = NULL;
ALOGV("%s: enter", __func__);
@@ -611,6 +775,22 @@
}
}
+ ret = str_parms_get_str(parms, "DevicesToDuck", duck_mute_value, sizeof(duck_mute_value));
+ if (ret >= 0)
+ auto_hal_set_mute_duck_state(adev, duck_mute_value, AUDIO_DEVICE_DUCKED);
+
+ ret = str_parms_get_str(parms, "DevicesToUnduck", duck_mute_value, sizeof(duck_mute_value));
+ if (ret >= 0)
+ auto_hal_set_mute_duck_state(adev, duck_mute_value, AUDIO_DEVICE_UNDUCKED);
+
+ ret = str_parms_get_str(parms, "DevicesToMute", duck_mute_value, sizeof(duck_mute_value));
+ if (ret >= 0)
+ auto_hal_set_mute_duck_state(adev, duck_mute_value, AUDIO_DEVICE_MUTED);
+
+ ret = str_parms_get_str(parms, "DevicesToUnmute", duck_mute_value, sizeof(duck_mute_value));
+ if (ret >= 0)
+ auto_hal_set_mute_duck_state(adev, duck_mute_value, AUDIO_DEVICE_UNMUTED);
+
ALOGV("%s: exit", __func__);
}
@@ -869,6 +1049,9 @@
case CAR_AUDIO_STREAM_PHONE:
snd_device = SND_DEVICE_OUT_BUS_PHN;
break;
+ case CAR_AUDIO_STREAM_ALERTS:
+ snd_device = SND_DEVICE_OUT_BUS_ALR;
+ break;
case CAR_AUDIO_STREAM_FRONT_PASSENGER:
snd_device = SND_DEVICE_OUT_BUS_PAX;
break;
@@ -891,6 +1074,9 @@
case USECASE_AUDIO_PLAYBACK_PHONE:
snd_device = SND_DEVICE_OUT_BUS_PHN;
break;
+ case USECASE_AUDIO_PLAYBACK_ALERTS:
+ snd_device = SND_DEVICE_OUT_BUS_ALR;
+ break;
case USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER:
snd_device = SND_DEVICE_OUT_BUS_PAX;
break;
@@ -947,6 +1133,7 @@
fp_platform_set_echo_reference = init_config.fp_platform_set_echo_reference;
fp_platform_get_eccarstate = init_config.fp_platform_get_eccarstate;
fp_generate_patch_handle = init_config.fp_generate_patch_handle;
+ fp_platform_get_pcm_device_id = init_config.fp_platform_get_pcm_device_id;
return ret;
}
diff --git a/hal/audio_extn/auto_hal.h b/hal/audio_extn/auto_hal.h
index c1b3250..dfe78f2 100644
--- a/hal/audio_extn/auto_hal.h
+++ b/hal/audio_extn/auto_hal.h
@@ -59,11 +59,63 @@
.avail_min = LOW_LATENCY_OUTPUT_PERIOD_SIZE / 4,
};
+struct pcm_config pcm_config_system_48KHz = {
+ .channels = 2,
+ .rate = 48000,
+ .period_size = 240,
+ .period_count = LOW_LATENCY_OUTPUT_PERIOD_COUNT,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 240 / 4,
+ .stop_threshold = INT_MAX,
+ .avail_min = 240 / 4,
+};
+struct pcm_config pcm_config_system_32KHz = {
+ .channels = 2,
+ .rate = 32000,
+ .period_size = 160,
+ .period_count = LOW_LATENCY_OUTPUT_PERIOD_COUNT,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 160 / 4,
+ .stop_threshold = INT_MAX,
+ .avail_min = 160 / 4,
+};
+struct pcm_config pcm_config_system_24KHz = {
+ .channels = 2,
+ .rate = 24000,
+ .period_size = 120,
+ .period_count = LOW_LATENCY_OUTPUT_PERIOD_COUNT,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 120 / 4,
+ .stop_threshold = INT_MAX,
+ .avail_min = 120 / 4,
+};
+struct pcm_config pcm_config_system_16KHz = {
+ .channels = 2,
+ .rate = 16000,
+ .period_size = 80,
+ .period_count = LOW_LATENCY_OUTPUT_PERIOD_COUNT,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 80 / 4,
+ .stop_threshold = INT_MAX,
+ .avail_min = 80 / 4,
+};
+struct pcm_config pcm_config_system_8KHz = {
+ .channels = 2,
+ .rate = 8000,
+ .period_size = 40,
+ .period_count = LOW_LATENCY_OUTPUT_PERIOD_COUNT,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 40 / 4,
+ .stop_threshold = INT_MAX,
+ .avail_min = 40 / 4,
+};
+
static const audio_usecase_t bus_device_usecases[] = {
USECASE_AUDIO_PLAYBACK_MEDIA,
USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION,
USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE,
USECASE_AUDIO_PLAYBACK_PHONE,
+ USECASE_AUDIO_PLAYBACK_ALERTS,
USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER,
USECASE_AUDIO_PLAYBACK_REAR_SEAT,
USECASE_AUDIO_RECORD_BUS,
diff --git a/hal/audio_extn/battery_listener.h b/hal/audio_extn/battery_listener.h
index a34b358..5bf1778 100644
--- a/hal/audio_extn/battery_listener.h
+++ b/hal/audio_extn/battery_listener.h
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2019, The Linux Foundation. All rights reserved.
+* Copyright (c) 2019, 2021 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
@@ -31,8 +31,8 @@
#endif
typedef void (* battery_status_change_fn_t)(bool);
void battery_properties_listener_init(battery_status_change_fn_t fn);
-void battery_properties_listener_deinit();
-bool battery_properties_is_charging();
+void battery_properties_listener_deinit(void);
+bool battery_properties_is_charging(void);
#ifdef __cplusplus
}
#endif
diff --git a/hal/audio_extn/compress_in.c b/hal/audio_extn/compress_in.c
index 8795d52..864de95 100644
--- a/hal/audio_extn/compress_in.c
+++ b/hal/audio_extn/compress_in.c
@@ -58,9 +58,6 @@
/* default timestamp metadata definition if not defined in kernel*/
#ifndef COMPRESSED_TIMESTAMP_FLAG
#define COMPRESSED_TIMESTAMP_FLAG 0
-struct snd_codec_metadata {
-uint64_t timestamp;
-};
#define compress_config_set_timstamp_flag(config) (-ENOSYS)
#else
#ifdef AUDIO_GKI_ENABLED
diff --git a/hal/audio_extn/ext_hw_plugin.c b/hal/audio_extn/ext_hw_plugin.c
index 571ba54..5f21c3f 100644
--- a/hal/audio_extn/ext_hw_plugin.c
+++ b/hal/audio_extn/ext_hw_plugin.c
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2014-2019 The Linux Foundation. All rights reserved.
+* Copyright (c) 2014-2021 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
@@ -182,6 +182,7 @@
case USECASE_AUDIO_RECORD_COMPRESS:
case USECASE_AUDIO_RECORD_LOW_LATENCY:
case USECASE_AUDIO_RECORD_FM_VIRTUAL:
+ case USECASE_AUDIO_RECORD_ECHO_REF_EXT:
*plugin_usecase = AUDIO_HAL_PLUGIN_USECASE_DEFAULT_CAPTURE;
break;
case USECASE_AUDIO_HFP_SCO:
diff --git a/hal/audio_extn/keep_alive.c b/hal/audio_extn/keep_alive.c
index 2948402..a969412 100644
--- a/hal/audio_extn/keep_alive.c
+++ b/hal/audio_extn/keep_alive.c
@@ -25,6 +25,11 @@
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+* SPDX-License-Identifier: BSD-3-Clause-Clear
*/
#define LOG_TAG "keep_alive"
@@ -198,13 +203,14 @@
struct listnode out_devices;
pthread_mutex_lock(&ka.lock);
+ list_init(&out_devices);
+
ALOGV("%s: mode %x", __func__, ka_mode);
if ((ka.state == STATE_DISABLED)||(ka.state == STATE_DEINIT)) {
ALOGE(" %s : Unexpected state %x",__func__, ka.state);
goto exit;
}
- list_init(&out_devices);
get_device_id_from_mode(ka_mode, &out_devices);
if (compare_devices(&out_devices, &ka.active_devices) &&
(ka.state == STATE_ACTIVE)) {
@@ -236,6 +242,7 @@
}
exit:
+ clear_devices(&out_devices);
pthread_mutex_unlock(&ka.lock);
}
diff --git a/hal/audio_extn/power_policy_launcher.cpp b/hal/audio_extn/power_policy_launcher.cpp
new file mode 100644
index 0000000..b655e37
--- /dev/null
+++ b/hal/audio_extn/power_policy_launcher.cpp
@@ -0,0 +1,51 @@
+/* Copyright (c) 2021, The Linux Foundation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of The Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/
+
+#include "PowerPolicyClient.h"
+
+#include <android-base/logging.h>
+#include <android/binder_manager.h>
+#include <android/binder_process.h>
+#include <log/log.h>
+
+extern "C" {
+
+ int launchPowerPolicyClient(power_policy_init_config_t init_config) {
+ ALOGD("%s: power policy launcher called", __func__);
+ ABinderProcess_setThreadPoolMaxThreadCount(1);
+ std::shared_ptr<PowerPolicyClient> powerPolicyClient =
+ ::ndk::SharedRefBase::make<PowerPolicyClient>(init_config);
+ ALOGD("%s:Instantiating power policy client from launcher", __func__);
+ powerPolicyClient->init();
+ ALOGD("%s: Power Policy class inited, joining threadpool", __func__);
+
+ ABinderProcess_joinThreadPool();
+
+ LOG(ERROR) << "Error in PowerPolicyClient binder thread";
+ return EXIT_FAILURE; // should not reach
+ }
+}
diff --git a/hal/audio_extn/sndmonitor.c b/hal/audio_extn/sndmonitor.c
index 930c95e..5e39d37 100644
--- a/hal/audio_extn/sndmonitor.c
+++ b/hal/audio_extn/sndmonitor.c
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
+* Copyright (c) 2016-2021, 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
@@ -430,10 +430,13 @@
snprintf(val, sizeof(val), "%s,%s", dev_event->dev,
dev_event->status ? "ON" : "OFF");
- if (str_parms_add_str(params, AUDIO_PARAMETER_KEY_EXT_AUDIO_DEVICE, val) < 0)
- return -1;
+ int ret = 0;
- int ret = notify(params);
+ if (str_parms_add_str(params, AUDIO_PARAMETER_KEY_EXT_AUDIO_DEVICE, val) < 0) {
+ ret = -1;
+ } else {
+ ret = notify(params);
+ }
str_parms_destroy(params);
return ret;
}
@@ -484,10 +487,13 @@
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);
+ int ret = 0;
+ if (str_parms_add_str(params, key, val) < 0) {
+ ret = -1;
+ } else {
+ ret = notify(params);
+ }
str_parms_destroy(params);
return ret;
}
diff --git a/hal/audio_extn/soundtrigger.c b/hal/audio_extn/soundtrigger.c
index a97ccf0..5d573d0 100644
--- a/hal/audio_extn/soundtrigger.c
+++ b/hal/audio_extn/soundtrigger.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2014, 2016-2020, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2013-2014, 2016-2021, 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
@@ -429,7 +429,7 @@
in->is_st_session_active = false;
memset(buffer, 0, bytes);
ALOGV("%s: read failed status %d - sleep", __func__, ret);
- usleep((bytes * 1000000) / (audio_stream_in_frame_size((struct audio_stream_in *)in) *
+ usleep(((useconds_t)bytes * 1000000) / (audio_stream_in_frame_size((struct audio_stream_in *)in) *
in->config.rate));
}
return ret;
@@ -561,7 +561,7 @@
struct stream_in *active_input = adev_get_active_input(st_dev->adev);
audio_source_t source = (active_input == NULL) ?
AUDIO_SOURCE_DEFAULT : active_input->source;
- if (st_dev->adev->mode == AUDIO_MODE_IN_CALL) {
+ if (voice_is_uc_active(st_dev->adev)) {
ev_info.u.usecase.type = USECASE_TYPE_VOICE_CALL;
} else if ((st_dev->adev->mode == AUDIO_MODE_IN_COMMUNICATION ||
source == AUDIO_SOURCE_VOICE_COMMUNICATION) &&
@@ -587,6 +587,7 @@
__func__, event, snd_device);
}
}/*Events for output device, if required can be placed here in else*/
+ clear_devices(&ev_info.device_info.devices);
}
void audio_extn_sound_trigger_update_stream_status(struct audio_usecase *uc_info,
@@ -645,6 +646,7 @@
}
}
}
+ clear_devices(&ev_info.device_info.devices);
}
void audio_extn_sound_trigger_update_battery_status(bool charging)
@@ -874,6 +876,7 @@
if (st_dev && (st_dev->adev == adev) && st_dev->lib_handle) {
audio_extn_snd_mon_unregister_listener(st_dev);
dlclose(st_dev->lib_handle);
+ clear_devices(&st_dev->st_ses_list);
free(st_dev);
st_dev = NULL;
}
diff --git a/hal/audio_extn/spkr_protection.c b/hal/audio_extn/spkr_protection.c
index 1badc1b..571b4f3 100644
--- a/hal/audio_extn/spkr_protection.c
+++ b/hal/audio_extn/spkr_protection.c
@@ -27,6 +27,42 @@
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+/*
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) provided that the following conditions are met:
+*
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+*
+* * Redistributions in binary form must reproduce the above
+* copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided
+* with the distribution.
+*
+* * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
#define LOG_TAG "audio_hw_spkr_prot"
/*#define LOG_NDEBUG 0*/
#define LOG_NDDEBUG 0
@@ -592,6 +628,7 @@
mixer_ctl_name = SPKR_RIGHT_WSA_TEMP;
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+
if (!ctl) {
ALOGE("%s: Could not get ctl for mixer cmd - %s",
__func__, mixer_ctl_name);
@@ -1320,6 +1357,12 @@
thermal_fd = -1;
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+
+ if (!ctl) {
+ mixer_ctl_name = "SpkrMono WSA T0 Init";
+ ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+ }
+
if (ctl) {
ALOGD("%s: Got ctl for mixer cmd %s",
__func__, mixer_ctl_name);
@@ -1834,7 +1877,7 @@
if (ioctl(cal_fd, AUDIO_SET_CALIBRATION, &cal_data))
ALOGE("%s: failed to set TH VI V_VALI_CFG, errno = %d", __func__, errno);
- if (cal_fd > 0)
+ if (cal_fd >= 0)
close(cal_fd);
done:
return ret;
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
old mode 100755
new mode 100644
index a4d17b8..174e43f
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -111,6 +111,13 @@
#define VNDK_FWK_LIB_PATH "/vendor/lib/libqti_vndfwk_detect.so"
#endif
+#ifdef PLATFORM_AUTO
+/* 24 KHz ECNR support */
+#define ECNS_USE_CASE_ACDB_DEV_ID 95
+#define ECNS_UNSUPPORTED_CAPTURE_SAMPLE_RATE_FOR_ADM 24000
+#define ECNS_SUPPORTED_CAPTURE_SAMPLE_RATE_FOR_ADM 48000
+#endif
+
typedef struct vndkfwk_s {
void *lib_handle;
int (*isVendorEnhancedFwk)(void);
@@ -150,6 +157,7 @@
STRING_TO_ENUM(AUDIO_OUTPUT_FLAG_SYS_NOTIFICATION),
STRING_TO_ENUM(AUDIO_OUTPUT_FLAG_NAV_GUIDANCE),
STRING_TO_ENUM(AUDIO_OUTPUT_FLAG_PHONE),
+ STRING_TO_ENUM(AUDIO_OUTPUT_FLAG_ALERTS),
STRING_TO_ENUM(AUDIO_OUTPUT_FLAG_FRONT_PASSENGER),
STRING_TO_ENUM(AUDIO_OUTPUT_FLAG_REAR_SEAT),
STRING_TO_ENUM(AUDIO_INPUT_FLAG_NONE),
@@ -750,6 +758,14 @@
app_type_cfg->app_type = platform_get_default_app_type_v2(platform, PCM_CAPTURE);
app_type_cfg->sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
app_type_cfg->bit_width = 16;
+#ifdef PLATFORM_AUTO
+ if ((flags & AUDIO_INPUT_FLAG_TIMESTAMP) == 0 &&
+ (flags & AUDIO_INPUT_FLAG_COMPRESS) == 0 &&
+ (flags & AUDIO_INPUT_FLAG_FAST) != 0) {
+ // Support low latency record for different sample rates
+ app_type_cfg->sample_rate = sample_rate;
+ }
+#endif
}
void audio_extn_utils_update_stream_output_app_type_cfg(void *platform,
@@ -838,6 +854,11 @@
app_type_cfg->app_type = platform_get_default_app_type(platform);
app_type_cfg->sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
app_type_cfg->bit_width = 16;
+ if (compare_device_type(devices, AUDIO_DEVICE_OUT_BUS) && (flags &
+ (audio_output_flags_t)AUDIO_OUTPUT_FLAG_FAST)) {
+ // Support low latency playback for different sample rates
+ app_type_cfg->sample_rate = sample_rate;
+ }
}
static bool audio_is_this_native_usecase(struct audio_usecase *uc)
@@ -1101,50 +1122,57 @@
goto exit_send_app_type_cfg;
}
+ /*
+ * Value of afe_loopback gets read based on the property defined in
+ * audio_platform_info.xml. If afe loopback is set then do not execute
+ * session 1 path as app type mixer control will not be created for
+ * afe loopback
+ */
+
if (usecase->type == PCM_HFP_CALL) {
-
- /* config HFP session:1 playback path */
- if (is_bus_dev_usecase) {
- app_type = usecase->out_app_type_cfg.app_type;
- sample_rate= usecase->out_app_type_cfg.sample_rate;
- } else {
- snd_device = SND_DEVICE_NONE; // use legacy behavior
- app_type = platform_get_default_app_type_v2(adev->platform, PCM_PLAYBACK);
- sample_rate= CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
- }
- rc = set_stream_app_type_mixer_ctrl(adev, pcm_device_id, app_type,
- acdb_dev_id, sample_rate,
- PCM_PLAYBACK,
- snd_device);
- if (rc < 0)
- goto exit_send_app_type_cfg;
-
- /* config HFP session:1 capture path */
- if (is_bus_dev_usecase) {
- snd_device = usecase->in_snd_device;
- pcm_device_id = platform_get_pcm_device_id(usecase->id, PCM_CAPTURE);
- acdb_dev_id = platform_get_snd_device_acdb_id(snd_device);
- if (acdb_dev_id < 0) {
- ALOGE("%s: Couldn't get the acdb dev id", __func__);
- rc = -EINVAL;
- goto exit_send_app_type_cfg;
+ if (!(platform_get_is_afe_loopback_enabled(adev->platform))) {
+ /* config HFP session:1 playback path */
+ if (is_bus_dev_usecase) {
+ app_type = usecase->out_app_type_cfg.app_type;
+ sample_rate= usecase->out_app_type_cfg.sample_rate;
+ } else {
+ snd_device = SND_DEVICE_NONE; // use legacy behavior
+ app_type = platform_get_default_app_type_v2(adev->platform, PCM_PLAYBACK);
+ sample_rate= CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
}
- app_type = usecase->in_app_type_cfg.app_type;
- sample_rate= usecase->in_app_type_cfg.sample_rate;
- } else {
- snd_device = SND_DEVICE_NONE; // use legacy behavior
- app_type = platform_get_default_app_type_v2(adev->platform, PCM_CAPTURE);
+ rc = set_stream_app_type_mixer_ctrl(adev, pcm_device_id, app_type,
+ acdb_dev_id, sample_rate,
+ PCM_PLAYBACK,
+ snd_device);
+ if (rc < 0)
+ goto exit_send_app_type_cfg;
+
+ /* config HFP session:1 capture path */
+ if (is_bus_dev_usecase) {
+ snd_device = usecase->in_snd_device;
+ pcm_device_id = platform_get_pcm_device_id(usecase->id, PCM_CAPTURE);
+ acdb_dev_id = platform_get_snd_device_acdb_id(snd_device);
+ if (acdb_dev_id < 0) {
+ ALOGE("%s: Couldn't get the acdb dev id", __func__);
+ rc = -EINVAL;
+ goto exit_send_app_type_cfg;
+ }
+ app_type = usecase->in_app_type_cfg.app_type;
+ sample_rate= usecase->in_app_type_cfg.sample_rate;
+ } else {
+ snd_device = SND_DEVICE_NONE; // use legacy behavior
+ app_type = platform_get_default_app_type_v2(adev->platform, PCM_CAPTURE);
+ }
+ rc = set_stream_app_type_mixer_ctrl(adev, pcm_device_id, app_type,
+ acdb_dev_id, sample_rate,
+ PCM_CAPTURE,
+ snd_device);
+ if (rc < 0)
+ goto exit_send_app_type_cfg;
+
+ if (is_bus_dev_usecase)
+ goto exit_send_app_type_cfg;
}
- rc = set_stream_app_type_mixer_ctrl(adev, pcm_device_id, app_type,
- acdb_dev_id, sample_rate,
- PCM_CAPTURE,
- snd_device);
- if (rc < 0)
- goto exit_send_app_type_cfg;
-
- if (is_bus_dev_usecase)
- goto exit_send_app_type_cfg;
-
/* config HFP session:2 capture path */
pcm_device_id = HFP_ASM_RX_TX;
snd_device = usecase->in_snd_device;
@@ -1157,7 +1185,7 @@
app_type = platform_get_default_app_type_v2(adev->platform, PCM_CAPTURE);
rc = set_stream_app_type_mixer_ctrl(adev, pcm_device_id, app_type,
acdb_dev_id, sample_rate, PCM_CAPTURE,
- SND_DEVICE_NONE);
+ usecase->in_snd_device);
if (rc < 0)
goto exit_send_app_type_cfg;
@@ -1165,7 +1193,7 @@
app_type = platform_get_default_app_type_v2(adev->platform, PCM_PLAYBACK);
rc = set_stream_app_type_mixer_ctrl(adev, pcm_device_id, app_type,
acdb_dev_id, sample_rate,
- PCM_PLAYBACK, SND_DEVICE_NONE);
+ PCM_PLAYBACK, usecase->out_snd_device);
if (rc < 0)
goto exit_send_app_type_cfg;
}
@@ -1297,6 +1325,9 @@
{
char value[PROPERTY_VALUE_MAX] = {0};
int sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+#ifdef PLATFORM_AUTO
+ int acdb_dev_id;
+#endif
if ((usecase->type == PCM_PLAYBACK) && (usecase->stream.out != NULL)) {
property_get("vendor.audio.playback.mch.downsample",value,"");
@@ -1322,12 +1353,6 @@
platform_check_and_update_copp_sample_rate(adev->platform, snd_device,
usecase->stream.out->sample_rate,
&usecase->stream.out->app_type_cfg.sample_rate);
- } else if (((snd_device != SND_DEVICE_OUT_HEADPHONES_44_1 &&
- !audio_is_this_native_usecase(usecase)) &&
- usecase->stream.out->sample_rate == OUTPUT_SAMPLING_RATE_44100) ||
- (usecase->stream.out->sample_rate < OUTPUT_SAMPLING_RATE_44100)) {
- /* Reset to default if no native stream is active*/
- usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
} else if (snd_device == SND_DEVICE_OUT_BT_A2DP) {
/*
* For a2dp playback get encoder sampling rate and set copp sampling rate,
@@ -1336,9 +1361,17 @@
audio_extn_a2dp_get_enc_sample_rate(&usecase->stream.out->app_type_cfg.sample_rate);
ALOGI("%s using %d sample rate rate for A2DP CoPP",
__func__, usecase->stream.out->app_type_cfg.sample_rate);
- } else if (compare_device_type(&usecase->stream.out->device_list,
- AUDIO_DEVICE_OUT_SPEAKER)) {
- usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ } else if ((((snd_device != SND_DEVICE_OUT_HEADPHONES_44_1 &&
+ !audio_is_this_native_usecase(usecase)) &&
+ usecase->stream.out->sample_rate == OUTPUT_SAMPLING_RATE_44100) ||
+ (usecase->stream.out->sample_rate < OUTPUT_SAMPLING_RATE_44100)) ||
+ (compare_device_type(&usecase->stream.out->device_list,AUDIO_DEVICE_OUT_SPEAKER))) {
+ if (!((compare_device_type(&usecase->device_list, AUDIO_DEVICE_OUT_BUS)) && ((usecase->stream.out->flags &
+ (audio_output_flags_t)AUDIO_OUTPUT_FLAG_SYS_NOTIFICATION) || (usecase->stream.out->flags &
+ (audio_output_flags_t)AUDIO_OUTPUT_FLAG_PHONE)))) {
+ /* Reset to default if no native stream is active or default device is speaker*/
+ usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ }
}
audio_extn_btsco_get_sample_rate(snd_device, &usecase->stream.out->app_type_cfg.sample_rate);
sample_rate = usecase->stream.out->app_type_cfg.sample_rate;
@@ -1360,6 +1393,8 @@
if (voice_is_in_call_rec_stream(usecase->stream.in)) {
audio_extn_btsco_get_sample_rate(usecase->in_snd_device,
&usecase->stream.in->app_type_cfg.sample_rate);
+ } if (SND_DEVICE_IN_BT_A2DP == snd_device) {
+ audio_extn_a2dp_get_dec_sample_rate(&usecase->stream.in->app_type_cfg.sample_rate);
} else {
audio_extn_btsco_get_sample_rate(snd_device,
&usecase->stream.in->app_type_cfg.sample_rate);
@@ -1371,6 +1406,17 @@
else
sample_rate = SAMPLE_RATE_8000;
}
+
+ /* ECNR module in DSP does not support 24 KHz sample rate. As a workaround,
+ run ADM at 48 KHz when ECNR is enabled in ACDB topology (e.g. device id = 95)
+ */
+#ifdef PLATFORM_AUTO
+ acdb_dev_id = platform_get_snd_device_acdb_id(snd_device);
+ if (sample_rate == ECNS_UNSUPPORTED_CAPTURE_SAMPLE_RATE_FOR_ADM && acdb_dev_id == ECNS_USE_CASE_ACDB_DEV_ID) {
+ sample_rate = ECNS_SUPPORTED_CAPTURE_SAMPLE_RATE_FOR_ADM;
+ ALOGD("%s: update sample rate from 24K to 48K to support ECNR in PCM_CAPTURE, sample_rate=%d",__func__,sample_rate);
+ }
+#endif
} else if (usecase->type == TRANSCODE_LOOPBACK_RX) {
sample_rate = usecase->stream.inout->out_config.sample_rate;
}
@@ -1993,9 +2039,11 @@
case AUDIO_FORMAT_WMA:
id = SND_AUDIOCODEC_WMA;
break;
+#ifndef AUDIO_DISABLE_COMPRESS_FORMAT
case AUDIO_FORMAT_WMA_PRO:
id = SND_AUDIOCODEC_WMA_PRO;
break;
+#endif
case AUDIO_FORMAT_MP2:
id = SND_AUDIOCODEC_MP2;
break;
@@ -2016,12 +2064,14 @@
case AUDIO_FORMAT_IEC61937:
id = SND_AUDIOCODEC_IEC61937;
break;
+#ifndef AUDIO_DISABLE_COMPRESS_FORMAT
case AUDIO_FORMAT_DSD:
id = SND_AUDIOCODEC_DSD;
break;
case AUDIO_FORMAT_APTX:
id = SND_AUDIOCODEC_APTX;
break;
+#endif
default:
ALOGE("%s: Unsupported audio format :%x", __func__, format);
}
@@ -2775,6 +2825,7 @@
int ret = -EINVAL;
uint64_t time = 0;
struct snd_pcm_prsnt_position prsnt_position;
+ memset(&prsnt_position, 0, sizeof(struct snd_pcm_prsnt_position));
ALOGV("%s:: Quering DSP position with clock id %d",__func__, clock_id);
prsnt_position.clock_id = clock_id;
diff --git a/hal/audio_hal_plugin.h b/hal/audio_hal_plugin.h
index b5033c8..1f56a2f 100644
--- a/hal/audio_hal_plugin.h
+++ b/hal/audio_hal_plugin.h
@@ -86,6 +86,8 @@
AUDIO_HAL_PLUGIN_MSG_CODEC_GET_PP_EQ, /**< get EQ params */
AUDIO_HAL_PLUGIN_MSG_CODEC_GET_PP_EQ_SUBBANDS, /**< get EQ subbands params */
AUDIO_HAL_PLUGIN_MSG_CODEC_TUNNEL_GET_CMD, /**< pass through get cmds */
+ AUDIO_HAL_PLUGIN_MSG_SILENT_MODE, /**<set silent boot mode */
+ AUDIO_HAL_PLUGIN_MSG_MIC_STATE, /**< enable or disable codec mic */
AUDIO_HAL_PLUGIN_MSG_MAX
} audio_hal_plugin_msg_type_t;
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 83c35c7..8d36847 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2022, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -33,6 +33,8 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
+ *
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#define LOG_TAG "audio_hw_primary"
@@ -148,6 +150,16 @@
#define STR(x) #x
#endif
+#define IS_USB_HIFI (MAX_HIFI_CHANNEL_COUNT >= MAX_CHANNEL_COUNT) ? \
+ true : false
+
+#ifdef LINUX_ENABLED
+static inline int64_t audio_utils_ns_from_timespec(const struct timespec *ts)
+{
+ return ts->tv_sec * 1000000000LL + ts->tv_nsec;
+}
+#endif
+
static unsigned int configured_low_latency_capture_period_size =
LOW_LATENCY_CAPTURE_PERIOD_SIZE;
@@ -307,6 +319,67 @@
.avail_min = ULL_PERIOD_SIZE, //1 ms
};
+struct pcm_config pcm_config_audio_capture_rt_48KHz = {
+ .channels = 2,
+ .rate = 48000,
+ .period_size = 48,
+ .period_count = 512,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 0,
+ .stop_threshold = AFE_PROXY_RECORD_PERIOD_SIZE * AFE_PROXY_RECORD_PERIOD_COUNT,
+ .silence_threshold = 0,
+ .silence_size = 0,
+ .avail_min = 48, //1 ms
+};
+struct pcm_config pcm_config_audio_capture_rt_32KHz = {
+ .channels = 2,
+ .rate = 32000,
+ .period_size = 32,
+ .period_count = 512,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 0,
+ .stop_threshold = AFE_PROXY_RECORD_PERIOD_SIZE * AFE_PROXY_RECORD_PERIOD_COUNT,
+ .silence_threshold = 0,
+ .silence_size = 0,
+ .avail_min = 32, //1 ms
+};
+struct pcm_config pcm_config_audio_capture_rt_24KHz = {
+ .channels = 2,
+ .rate = 24000,
+ .period_size = 24,
+ .period_count = 512,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 0,
+ .stop_threshold = AFE_PROXY_RECORD_PERIOD_SIZE * AFE_PROXY_RECORD_PERIOD_COUNT,
+ .silence_threshold = 0,
+ .silence_size = 0,
+ .avail_min = 24, //1 ms
+};
+struct pcm_config pcm_config_audio_capture_rt_16KHz = {
+ .channels = 2,
+ .rate = 16000,
+ .period_size = 16,
+ .period_count = 512,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 0,
+ .stop_threshold = AFE_PROXY_RECORD_PERIOD_SIZE * AFE_PROXY_RECORD_PERIOD_COUNT,
+ .silence_threshold = 0,
+ .silence_size = 0,
+ .avail_min = 16, //1 ms
+};
+struct pcm_config pcm_config_audio_capture_rt_8KHz = {
+ .channels = 2,
+ .rate = 8000,
+ .period_size = 8,
+ .period_count = 512,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 0,
+ .stop_threshold = AFE_PROXY_RECORD_PERIOD_SIZE * AFE_PROXY_RECORD_PERIOD_COUNT,
+ .silence_threshold = 0,
+ .silence_size = 0,
+ .avail_min = 8, //1 ms
+};
+
struct pcm_config pcm_config_afe_proxy_record = {
.channels = AFE_PROXY_CHANNEL_COUNT,
.rate = AFE_PROXY_SAMPLING_RATE,
@@ -353,6 +426,8 @@
[USECASE_AUDIO_PLAYBACK_TTS] = "audio-tts-playback",
[USECASE_AUDIO_RECORD] = "audio-record",
+ [USECASE_AUDIO_RECORD2] = "audio-record2",
+ [USECASE_AUDIO_RECORD3] = "audio-record3",
[USECASE_AUDIO_RECORD_COMPRESS] = "audio-record-compress",
[USECASE_AUDIO_RECORD_COMPRESS2] = "audio-record-compress2",
[USECASE_AUDIO_RECORD_COMPRESS3] = "audio-record-compress3",
@@ -419,6 +494,7 @@
[USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION] = "sys-notification-playback",
[USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE] = "nav-guidance-playback",
[USECASE_AUDIO_PLAYBACK_PHONE] = "phone-playback",
+ [USECASE_AUDIO_PLAYBACK_ALERTS] = "alerts-playback",
[USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER] = "front-passenger-playback",
[USECASE_AUDIO_PLAYBACK_REAR_SEAT] = "rear-seat-playback",
[USECASE_AUDIO_FM_TUNER_EXT] = "fm-tuner-ext",
@@ -428,6 +504,7 @@
[USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER] = "front-passenger-record",
[USECASE_AUDIO_RECORD_BUS_REAR_SEAT] = "rear-seat-record",
[USECASE_AUDIO_PLAYBACK_SYNTHESIZER] = "synth-loopback",
+ [USECASE_AUDIO_RECORD_ECHO_REF_EXT] = "echo-reference-external",
};
static const audio_usecase_t offload_usecases[] = {
@@ -517,6 +594,12 @@
effect_handle_t handle;
};
+static const audio_usecase_t record_usecases[] = {
+ USECASE_AUDIO_RECORD,
+ USECASE_AUDIO_RECORD2,
+ USECASE_AUDIO_RECORD3,
+};
+
static struct audio_device *adev = NULL;
static pthread_mutex_t adev_init_lock = PTHREAD_MUTEX_INITIALIZER;
static unsigned int audio_device_ref_count;
@@ -527,7 +610,9 @@
static int out_set_mmap_volume(struct audio_stream_out *stream, float left, float right);
static int out_set_voip_volume(struct audio_stream_out *stream, float left, float right);
static int out_set_pcm_volume(struct audio_stream_out *stream, float left, float right);
-
+#ifdef SOFT_VOLUME
+static int out_set_soft_volume_params(struct audio_stream_out *stream);
+#endif
static void adev_snd_mon_cb(void *cookie, struct str_parms *parms);
static void in_snd_mon_cb(void * stream, struct str_parms * parms);
static void out_snd_mon_cb(void * stream, struct str_parms * parms);
@@ -550,6 +635,52 @@
audio_microphone_direction_t dir);
static int in_set_microphone_field_dimension(const struct audio_stream_in *stream, float zoom);
+static bool is_pcm_record_usecase(audio_usecase_t uc_id)
+{
+ unsigned int record_uc_index;
+ unsigned int num_usecase = sizeof(record_usecases)/sizeof(record_usecases[0]);
+
+ for (record_uc_index = 0; record_uc_index < num_usecase; record_uc_index++) {
+ if (uc_id == record_usecases[record_uc_index])
+ return true;
+ }
+ return false;
+}
+
+static audio_usecase_t get_record_usecase(struct audio_device *adev)
+{
+ audio_usecase_t ret_uc = USECASE_INVALID;
+ unsigned int record_uc_index;
+ unsigned int num_usecase = sizeof(record_usecases)/sizeof(record_usecases[0]);
+
+ ALOGV("%s: num_usecase: %d", __func__, num_usecase);
+ for (record_uc_index = 0; record_uc_index < num_usecase; record_uc_index++) {
+ if (!(adev->pcm_record_uc_state & (0x1 << record_uc_index))) {
+ adev->pcm_record_uc_state |= 0x1 << record_uc_index;
+ ret_uc = record_usecases[record_uc_index];
+ break;
+ }
+ }
+
+ ALOGV("%s: pcm record usecase is %d", __func__, ret_uc);
+ return ret_uc;
+}
+
+static void free_record_usecase(struct audio_device *adev,
+ audio_usecase_t uc_id)
+{
+ unsigned int record_uc_index;
+ unsigned int num_usecase = sizeof(record_usecases)/sizeof(record_usecases[0]);
+
+ for (record_uc_index = 0; record_uc_index < num_usecase; record_uc_index++) {
+ if (record_usecases[record_uc_index] == uc_id) {
+ adev->pcm_record_uc_state &= ~(0x1 << record_uc_index);
+ break;
+ }
+ }
+ ALOGV("%s: free pcm record usecase %d", __func__, uc_id);
+}
+
static bool may_use_noirq_mode(struct audio_device *adev, audio_usecase_t uc_id,
int flags __unused)
{
@@ -586,11 +717,17 @@
if (!adev->adm_set_config)
return;
-
- if (out->realtime)
- adev->adm_set_config(adev->adm_data,
+#ifdef PLATFORM_AUTO
+ if (out->realtime || (out->flags & AUDIO_OUTPUT_FLAG_SYS_NOTIFICATION))
+ adev->adm_set_config(adev->adm_data,
out->handle,
out->pcm, &out->config);
+#else
+ if (out->realtime)
+ adev->adm_set_config(adev->adm_data,
+ out->handle,
+ out->pcm, &out->config);
+#endif
}
static void register_in_stream(struct stream_in *in)
@@ -673,6 +810,17 @@
return 0;
}
+bool is_combo_audio_input_device(struct listnode *devices){
+
+ if ((devices == NULL) || (!list_empty(devices)))
+ return false;
+
+ if(compare_device_type(devices, AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_SPEAKER_MIC2))
+ return true;
+ else
+ return false;
+}
+
static inline void adjust_frames_for_device_delay(struct stream_out *out,
uint32_t *dsp_frames) {
// Adjustment accounts for A2dp encoder latency with offload usecases
@@ -966,6 +1114,16 @@
enable_audio_route(adev, usecase);
}
}
+ else if ((usecase->type != PCM_CAPTURE) && (usecase == uc_info)) {
+ usecase_backend_idx = platform_get_backend_index(usecase->out_snd_device);
+ if (((usecase_backend_idx == HEADPHONE_BACKEND) ||
+ (usecase_backend_idx == HEADPHONE_44_1_BACKEND)) &&
+ ((usecase->stream.out->sample_rate % OUTPUT_SAMPLING_RATE_44100) == 0)) {
+ usecase->stream.out->sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ platform_check_and_set_codec_backend_cfg(adev, usecase,
+ usecase->out_snd_device);
+ }
+ }
}
}
}
@@ -1263,6 +1421,7 @@
platform_set_echo_reference(adev, true, &out_devices);
in->ec_opened = true;
+ clear_devices(&out_devices);
}
}
} else if ((usecase->type == TRANSCODE_LOOPBACK_TX) || ((usecase->type == PCM_HFP_CALL) &&
@@ -1273,6 +1432,13 @@
snd_device = usecase->out_snd_device;
}
+ if (usecase->type == PCM_CAPTURE) {
+ if (platform_get_fluence_nn_state(adev->platform) == 0) {
+ platform_set_fluence_nn_state(adev->platform, true);
+ ALOGD("%s: set fluence nn capture state", __func__);
+ }
+ }
+
#ifdef DS1_DOLBY_DAP_ENABLED
audio_extn_dolby_set_dmid(adev);
audio_extn_dolby_set_endpoint(adev);
@@ -1291,8 +1457,20 @@
}
if (usecase->type == PCM_CAPTURE) {
+ if (platform_get_fluence_nn_state(adev->platform) == 1 &&
+ adev->fluence_nn_usecase_id == USECASE_INVALID ) {
+ adev->fluence_nn_usecase_id = usecase->id;
+ ALOGD("%s: assign fluence nn usecase %d", __func__, usecase->id);
+ }
+ }
+
+ if (usecase->type == PCM_CAPTURE) {
in = usecase->stream.in;
- if (in && is_loopback_input_device(get_device_types(&in->device_list))) {
+ if ((in && is_loopback_input_device(get_device_types(&in->device_list))) ||
+ (in && is_combo_audio_input_device(&in->device_list)) ||
+ (in && ((compare_device_type(&in->device_list, AUDIO_DEVICE_IN_BUILTIN_MIC) ||
+ compare_device_type(&in->device_list, AUDIO_DEVICE_IN_LINE)) &&
+ (snd_device == SND_DEVICE_IN_HANDSET_GENERIC_6MIC)))) {
ALOGD("%s: set custom mtmx params v1", __func__);
audio_extn_set_custom_mtmx_params_v1(adev, usecase, true);
}
@@ -1374,14 +1552,24 @@
list_init(&out_devices);
platform_set_echo_reference(in->dev, false, &out_devices);
in->ec_opened = false;
+ clear_devices(&out_devices);
}
}
+ if (usecase->id == adev->fluence_nn_usecase_id) {
+ platform_set_fluence_nn_state(adev->platform, false);
+ adev->fluence_nn_usecase_id = USECASE_INVALID;
+ ALOGD("%s: reset fluence nn capture state", __func__);
+ }
audio_extn_sound_trigger_update_stream_status(usecase, ST_EVENT_STREAM_FREE);
audio_extn_listen_update_stream_status(usecase, LISTEN_EVENT_STREAM_FREE);
if (usecase->type == PCM_CAPTURE) {
in = usecase->stream.in;
- if (in && is_loopback_input_device(get_device_types(&in->device_list))) {
+ if ((in && is_loopback_input_device(get_device_types(&in->device_list))) ||
+ (in && is_combo_audio_input_device(&in->device_list)) ||
+ (in && ((compare_device_type(&in->device_list, AUDIO_DEVICE_IN_BUILTIN_MIC) ||
+ compare_device_type(&in->device_list, AUDIO_DEVICE_IN_LINE)) &&
+ (snd_device == SND_DEVICE_IN_HANDSET_GENERIC_6MIC)))){
ALOGD("%s: reset custom mtmx params v1", __func__);
audio_extn_set_custom_mtmx_params_v1(adev, usecase, false);
}
@@ -1473,6 +1661,20 @@
}
if (SND_DEVICE_OUT_BT_A2DP == snd_device) {
+
+ struct audio_usecase *usecase;
+ struct listnode *node;
+ /* Disable SCO Devices and enable handset mic for active input stream */
+ list_for_each(node, &adev->usecase_list) {
+ usecase = node_to_item(node, struct audio_usecase, list);
+ if (usecase->stream.in && (usecase->type == PCM_CAPTURE) &&
+ is_sco_in_device_type(&usecase->stream.in->device_list)) {
+ ALOGD("a2dp resumed, switch bt sco mic to handset mic");
+ reassign_device_list(&usecase->stream.in->device_list,
+ AUDIO_DEVICE_IN_BUILTIN_MIC, "");
+ select_devices(adev, usecase->id);
+ }
+ }
if (audio_extn_a2dp_start_playback() < 0) {
ALOGE(" fail to configure A2dp Source control path ");
goto err;
@@ -1709,6 +1911,7 @@
snd_device_t d1 = uc->out_snd_device;
snd_device_t d2 = new_snd_device;
+ int ret = 0;
list_init(&a1);
list_init(&a2);
@@ -1729,7 +1932,7 @@
compare_devices_for_any_match(&a1 ,&a2)) {
snd_device_t d3[2];
int num_devices = 0;
- int ret = platform_split_snd_device(platform,
+ ret = platform_split_snd_device(platform,
list_length(&a1) > 1 ? d1 : d2,
&num_devices,
d3);
@@ -1739,33 +1942,46 @@
__func__,
list_length(&a1) > 1 ? d1 : d2);
}
+ ret = d2;
goto end;
}
if (platform_check_backends_match(d3[0], d3[1])) {
- return d2; // case 5
+ ret = d2;
+ goto end; // case 5
} else {
if ((list_length(&a1) > 1) && (list_length(&a2) > 1) &&
- platform_check_backends_match(d1, d2))
- return d2; //case 9
- if (list_length(&a1) > 1)
- return d1; //case 7
+ platform_check_backends_match(d1, d2)) {
+ ret = d2;
+ goto end; //case 9
+ }
+ if (list_length(&a1) > 1) {
+ ret = d1;
+ goto end; //case 7
+ }
// check if d1 is related to any of d3's
- if (d1 == d3[0] || d1 == d3[1])
- return d1; // case 1
- else
- return d3[1]; // case 8
+ if (d1 == d3[0] || d1 == d3[1]) {
+ ret = d1;
+ goto end; // case 1
+ } else {
+ ret = d3[1];
+ goto end; // case 8
+ }
}
} else {
if (platform_check_backends_match(d1, d2)) {
- return d2; // case 2, 4
+ ret = d2;
+ goto end; // case 2, 4
} else {
- return d1; // case 6, 3
+ ret = d1;
+ goto end; // case 6, 3
}
}
end:
- return d2; // return whatever was calculated before.
+ clear_devices(&a1);
+ clear_devices(&a2);
+ return ret; // return whatever was calculated before.
}
static void check_usecases_codec_backend(struct audio_device *adev,
@@ -2014,7 +2230,7 @@
((uc_info->type == VOICE_CALL &&
is_single_device_type_equal(&usecase->device_list,
AUDIO_DEVICE_IN_VOICE_CALL)) ||
- platform_check_backends_match(snd_device,\
+ platform_check_all_backends_match(snd_device,\
usecase->in_snd_device))) &&
(usecase->id != USECASE_AUDIO_SPKR_CALIB_TX)) {
ALOGD("%s: Usecase (%s) is active on (%s) - disabling ..",
@@ -2688,6 +2904,9 @@
in = usecase->stream.in;
if (!in)
continue;
+
+ if (USECASE_AUDIO_RECORD_FM_VIRTUAL == usecase->id)
+ continue;
priority = source_priority(in->source);
if (priority > last_priority) {
@@ -2754,6 +2973,7 @@
out_snd_device = platform_get_output_snd_device(adev->platform, &stream_out, usecase->type);
assign_devices(&usecase->device_list,
&usecase->stream.inout->out_config.device_list);
+ clear_devices(&stream_out.device_list);
} else if (usecase->type == TRANSCODE_LOOPBACK_TX ) {
if (usecase->stream.inout == NULL) {
ALOGE("%s: stream.inout is NULL", __func__);
@@ -2765,6 +2985,7 @@
&out_devices, usecase->type);
assign_devices(&usecase->device_list,
&usecase->stream.inout->in_config.device_list);
+ clear_devices(&out_devices);
} else {
/*
* If the voice call is active, use the sound devices of voice call usecase
@@ -2787,9 +3008,19 @@
is_single_device_type_equal(&usecase->device_list,
AUDIO_DEVICE_IN_VOICE_CALL) ||
(is_single_device_type_equal(&usecase->device_list,
+ AUDIO_DEVICE_IN_BUILTIN_MIC) &&
+ is_single_device_type_equal(&vc_usecase->device_list,
+ AUDIO_DEVICE_OUT_USB_HEADSET)) ||
+ (is_single_device_type_equal(&usecase->device_list,
AUDIO_DEVICE_IN_USB_HEADSET) &&
is_single_device_type_equal(&vc_usecase->device_list,
- AUDIO_DEVICE_OUT_USB_HEADSET)))) {
+ AUDIO_DEVICE_OUT_USB_HEADSET))||
+ (is_single_device_type_equal(&usecase->device_list,
+ AUDIO_DEVICE_IN_USB_HEADSET) &&
+ is_codec_backend_out_device_type(&vc_usecase->device_list)) ||
+ (is_single_device_type_equal(&usecase->device_list,
+ AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) &&
+ is_codec_backend_out_device_type(&vc_usecase->device_list)))) {
in_snd_device = vc_usecase->in_snd_device;
out_snd_device = vc_usecase->out_snd_device;
}
@@ -2864,10 +3095,8 @@
usecase->stream.in->enable_ec_port = false;
- bool is_ha_usecase = adev->ha_proxy_enable ?
- usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY2 :
- usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY;
- if (is_ha_usecase) {
+ if (usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY ||
+ usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY2) {
reassign_device_list(&out_devices, AUDIO_DEVICE_OUT_TELEPHONY_TX, "");
} else if (voip_usecase) {
assign_devices(&out_devices, &voip_usecase->stream.out->device_list);
@@ -2884,7 +3113,8 @@
/* get the input with the highest priority source*/
priority_in = get_priority_input(adev);
- if (!priority_in)
+ if (!priority_in ||
+ audio_extn_auto_hal_overwrite_priority_for_auto(usecase->stream.in))
priority_in = usecase->stream.in;
}
if (compare_device_type(&usecase->device_list, AUDIO_DEVICE_IN_BUS)){
@@ -2895,6 +3125,7 @@
priority_in,
&out_devices,
usecase->type);
+ clear_devices(&out_devices);
}
}
}
@@ -2983,6 +3214,8 @@
if (usecase->out_snd_device != SND_DEVICE_NONE) {
disable_audio_route(adev, usecase);
disable_snd_device(adev, usecase->out_snd_device);
+ if (usecase->id == USECASE_AUDIO_PLAYBACK_WITH_HAPTICS)
+ disable_snd_device(adev, SND_DEVICE_OUT_HAPTICS);
}
if (usecase->in_snd_device != SND_DEVICE_NONE) {
@@ -3051,11 +3284,75 @@
!audio_is_true_native_stream_active(adev)) &&
usecase->stream.out->sample_rate == OUTPUT_SAMPLING_RATE_44100) ||
(usecase->stream.out->sample_rate < OUTPUT_SAMPLING_RATE_44100)) {
- usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+#ifdef PLATFORM_AUTO
+ if (!(compare_device_type(&usecase->device_list, AUDIO_DEVICE_OUT_BUS) && ((usecase->stream.out->flags &
+ (audio_output_flags_t)AUDIO_OUTPUT_FLAG_SYS_NOTIFICATION) || (usecase->stream.out->flags &
+ (audio_output_flags_t)AUDIO_OUTPUT_FLAG_PHONE)))) {
+ usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ }
+#else
+ usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+#endif
}
}
enable_audio_route(adev, usecase);
+ if (uc_id == USECASE_AUDIO_PLAYBACK_VOIP) {
+ struct stream_in *voip_in = get_voice_communication_input(adev);
+ struct audio_usecase *voip_in_usecase = NULL;
+ voip_in_usecase = get_usecase_from_list(adev, USECASE_AUDIO_RECORD_VOIP);
+ if (voip_in != NULL &&
+ voip_in_usecase != NULL &&
+ !(out_snd_device == AUDIO_DEVICE_OUT_SPEAKER ||
+ out_snd_device == AUDIO_DEVICE_OUT_SPEAKER_SAFE) &&
+ (voip_in_usecase->in_snd_device ==
+ platform_get_input_snd_device(adev->platform, voip_in,
+ &usecase->stream.out->device_list,usecase->type))) {
+ /*
+ * if VOIP TX is enabled before VOIP RX, needs to re-route the TX path
+ * for enabling echo-reference-voip with correct port
+ */
+ ALOGD("%s: VOIP TX is enabled before VOIP RX,needs to re-route the TX path",__func__);
+ disable_audio_route(adev, voip_in_usecase);
+ disable_snd_device(adev, voip_in_usecase->in_snd_device);
+ enable_snd_device(adev, voip_in_usecase->in_snd_device);
+ enable_audio_route(adev, voip_in_usecase);
+ }
+ }
+ if (voice_extn_compress_voip_is_active(adev)) {
+ struct audio_usecase *voip_usecase = get_usecase_from_list(adev,
+ USECASE_COMPRESS_VOIP_CALL);
+ /*
+ * If only compress voip input is opened voip out will be primary out.
+ * Need to consider re-routing to select correct i/p pair
+ */
+ if ((voip_usecase != NULL) &&
+ (usecase->type == PCM_PLAYBACK) &&
+ (usecase->stream.out == voip_usecase->stream.out)) {
+ in_snd_device = platform_get_input_snd_device(adev->platform,
+ NULL,
+ &usecase->stream.out->device_list,
+ usecase->type);
+ if (voip_usecase->in_snd_device != in_snd_device ) {
+ ALOGD("%s:Re routing compress voip tx snd device matching voip rx pair",
+ __func__);
+ disable_audio_route(adev, voip_usecase);
+ disable_snd_device(adev, voip_usecase->in_snd_device);
+ voip_usecase->in_snd_device = in_snd_device;
+ voip_usecase->out_snd_device = usecase->out_snd_device;
+ /* Route all TX usecase to Compress voip BE */
+ check_usecases_capture_codec_backend(adev, voip_usecase, in_snd_device);
+ enable_snd_device(adev, in_snd_device);
+ /* Send Voice related calibration for RX /TX pair */
+ status = platform_switch_voice_call_device_post(adev->platform,
+ out_snd_device,
+ in_snd_device);
+ enable_audio_route(adev, voip_usecase);
+ }
+ }
+ }
+
+
audio_extn_qdsp_set_device(usecase);
/* If input stream is already running then effect needs to be
@@ -3120,7 +3417,7 @@
&voip_out->app_type_cfg.gain[0]);
}
- ALOGV("%s: done",__func__);
+ ALOGD("%s: done",__func__);
return status;
}
@@ -3165,12 +3462,19 @@
audio_extn_keep_alive_stop(KEEP_ALIVE_OUT_PRIMARY);
list_remove(&uc_info->list);
+ clear_devices(&uc_info->device_list);
free(uc_info);
if (priority_in == in) {
priority_in = get_priority_input(adev);
- if (priority_in)
- select_devices(adev, priority_in->usecase);
+ if (priority_in) {
+ if (is_usb_in_device_type(&priority_in->device_list)) {
+ if (audio_extn_usb_connected(NULL))
+ select_devices(adev, priority_in->usecase);
+ } else {
+ select_devices(adev, priority_in->usecase);
+ }
+ }
}
enable_gcov();
@@ -3199,8 +3503,9 @@
__func__, &in->stream, in->usecase, use_case_table[in->usecase]);
if (CARD_STATUS_OFFLINE == in->card_status||
- CARD_STATUS_OFFLINE == adev->card_status) {
- ALOGW("in->card_status or adev->card_status offline, try again");
+ CARD_STATUS_OFFLINE == adev->card_status ||
+ POWER_POLICY_STATUS_OFFLINE == adev->in_power_policy) {
+ ALOGW("in->card_status or adev->card_status or adev->input_power offline, try again");
ret = -EIO;
goto error_config;
}
@@ -3342,7 +3647,8 @@
in->pcm = NULL;
goto error_open;
}
- register_in_stream(in);
+ if (in->flags & (AUDIO_INPUT_FLAG_FAST | AUDIO_INPUT_FLAG_RAW))
+ register_in_stream(in);
if (in->realtime) {
ATRACE_BEGIN("pcm_in_start");
ret = pcm_start(in->pcm);
@@ -3426,6 +3732,7 @@
pthread_mutex_lock(&out->latch_lock);
out->offload_state = OFFLOAD_STATE_IDLE;
pthread_mutex_unlock(&out->latch_lock);
+
out->playback_started = 0;
out->send_new_metadata = 1;
if (out->compr != NULL) {
@@ -3618,7 +3925,8 @@
else
ALOGE("%s: Next track returned error %d",__func__, ret);
if (-ENETRESET != ret && !(-EINTR == ret &&
- CARD_STATUS_OFFLINE == out->card_status)) {
+ (CARD_STATUS_OFFLINE == out->card_status ||
+ POWER_POLICY_STATUS_OFFLINE == adev->out_power_policy))) {
send_callback = true;
pthread_mutex_lock(&out->lock);
out->send_new_metadata = 1;
@@ -3635,7 +3943,8 @@
ALOGD("copl(%p):out of compress_drain", out);
// EINTR check avoids drain interruption due to SSR
if (-ENETRESET != ret && !(-EINTR == ret &&
- CARD_STATUS_OFFLINE == out->card_status)) {
+ (CARD_STATUS_OFFLINE == out->card_status ||
+ POWER_POLICY_STATUS_OFFLINE == adev->out_power_policy))) {
send_callback = true;
event = STREAM_CBK_EVENT_DRAIN_READY;
} else
@@ -3806,6 +4115,7 @@
}
}
+ clear_devices(&uc_info->device_list);
free(uc_info);
ALOGV("%s: exit: status(%d)", __func__, ret);
return ret;
@@ -3874,7 +4184,8 @@
AUDIO_DEVICE_OUT_SPEAKER_SAFE);
if (CARD_STATUS_OFFLINE == out->card_status ||
- CARD_STATUS_OFFLINE == adev->card_status) {
+ CARD_STATUS_OFFLINE == adev->card_status ||
+ POWER_POLICY_STATUS_OFFLINE == adev->out_power_policy) {
ALOGW("out->card_status or adev->card_status offline, try again");
ret = -EIO;
goto error_fatal;
@@ -3989,6 +4300,7 @@
AUDIO_DEVICE_OUT_SPEAKER, "");
select_devices(adev, out->usecase);
assign_devices(&out->device_list, &dev);
+ clear_devices(&dev);
}
} else {
select_devices(adev, out->usecase);
@@ -4006,6 +4318,7 @@
AUDIO_DEVICE_OUT_SPEAKER, "");
select_devices(adev, out->usecase);
assign_devices(&out->device_list, &dev);
+ clear_devices(&dev);
} else {
ret = -EINVAL;
goto error_open;
@@ -4069,9 +4382,8 @@
}
}
- if (out->realtime)
- platform_set_stream_channel_map(adev->platform, out->channel_mask,
- out->pcm_device_id, -1, &out->channel_map_param.channel_map[0]);
+ platform_set_stream_channel_map(adev->platform, out->channel_mask,
+ out->pcm_device_id, -1, &out->channel_map_param.channel_map[0]);
out->pcm = pcm_open_prepare_helper(adev->snd_card, out->pcm_device_id,
flags, pcm_open_retry_count,
@@ -4095,10 +4407,6 @@
}
}
- if (!out->realtime)
- platform_set_stream_channel_map(adev->platform, out->channel_mask,
- out->pcm_device_id, -1, &out->channel_map_param.channel_map[0]);
-
// apply volume for voip playback after path is set up
if (out->usecase == USECASE_AUDIO_PLAYBACK_VOIP)
out_set_voip_volume(&out->stream, out->volume_l, out->volume_r);
@@ -4108,6 +4416,9 @@
out->apply_volume = false;
} else if (audio_extn_auto_hal_is_bus_device_usecase(out->usecase)) {
out_set_pcm_volume(&out->stream, out->volume_l, out->volume_r);
+#ifdef SOFT_VOLUME
+ out_set_soft_volume_params(&out->stream);
+#endif
}
} else {
/*
@@ -4196,7 +4507,8 @@
}
if (ret == 0) {
- register_out_stream(out);
+ if (out->flags & (AUDIO_OUTPUT_FLAG_FAST | AUDIO_OUTPUT_FLAG_RAW))
+ register_out_stream(out);
if (out->realtime) {
if (out->pcm == NULL || !pcm_is_ready(out->pcm)) {
ALOGE("%s: pcm stream not ready", __func__);
@@ -4402,8 +4714,31 @@
uint32_t bytes_per_period_sample = 0;
size = (sample_rate * duration_ms) / 1000;
- if (is_low_latency)
- size = configured_low_latency_capture_period_size;
+ if (is_low_latency){
+#ifndef PLATFORM_AUTO
+ size = configured_low_latency_capture_period_size;
+#else
+ switch(sample_rate) {
+ case 48000:
+ size = 240;
+ break;
+ case 32000:
+ size = 160;
+ break;
+ case 24000:
+ size = 120;
+ break;
+ case 16000:
+ size = 80;
+ break;
+ case 8000:
+ size = 40;
+ break;
+ default:
+ size = 240;
+ }
+#endif
+ }
bytes_per_period_sample = audio_bytes_per_sample(format) * channel_count;
size *= audio_bytes_per_sample(format) * channel_count;
@@ -4425,9 +4760,10 @@
int channel_count,
bool is_low_latency)
{
+ bool is_usb_hifi = IS_USB_HIFI;
/* Don't know if USB HIFI in this context so use true to be conservative */
if (check_input_parameters(sample_rate, format, channel_count,
- true /*is_usb_hifi */) != 0)
+ is_usb_hifi) != 0)
return 0;
return get_stream_buffer_size(AUDIO_CAPTURE_PERIOD_DURATION_MSEC,
@@ -4750,7 +5086,7 @@
const bool locked = (pthread_mutex_trylock(&out->lock) == 0);
dprintf(fd, " Standby: %s\n", out->standby ? "yes" : "no");
dprintf(fd, " Frames written: %lld\n", (long long)out->written);
-
+#ifndef LINUX_ENABLED
char buffer[256]; // for statistics formatting
if (!is_offload_usecase(out->usecase)) {
simple_stats_to_string(&out->fifo_underruns, buffer, sizeof(buffer));
@@ -4761,15 +5097,16 @@
simple_stats_to_string(&out->start_latency_ms, buffer, sizeof(buffer));
dprintf(fd, " Start latency ms: %s\n", buffer);
}
-
+#endif
if (locked) {
pthread_mutex_unlock(&out->lock);
}
+#ifndef LINUX_ENABLED
// dump error info
(void)error_log_dump(
out->error_log, fd, " " /* prefix */, 0 /* lines */, 0 /* limit_ns */);
-
+#endif
return 0;
}
@@ -4906,7 +5243,10 @@
if (is_usb_out_device_type(&out->device_list) &&
list_empty(&new_devices) &&
!audio_extn_usb_connected(NULL)) {
- reassign_device_list(&new_devices, AUDIO_DEVICE_OUT_SPEAKER, "");
+ if (adev->mode == AUDIO_MODE_IN_CALL || adev->mode == AUDIO_MODE_IN_COMMUNICATION)
+ reassign_device_list(&new_devices, AUDIO_DEVICE_OUT_EARPIECE, "");
+ else
+ reassign_device_list(&new_devices, AUDIO_DEVICE_OUT_SPEAKER, "");
}
/* To avoid a2dp to sco overlapping / BT device improper state
* check with BT lib about a2dp streaming support before routing
@@ -5054,6 +5394,7 @@
/*handles device and call state changes*/
audio_extn_extspk_update(adev->extspk);
+ clear_devices(&new_devices);
error:
ALOGV("%s: exit: code(%d)", __func__, ret);
return ret;
@@ -5443,7 +5784,10 @@
latency = period_ms + platform_render_latency(out) / 1000;
} else {
latency = (out->config.period_count * out->config.period_size * 1000) /
- (out->config.rate);
+ (out->config.rate);
+ if (out->usecase == USECASE_AUDIO_PLAYBACK_DEEP_BUFFER ||
+ out->usecase == USECASE_AUDIO_PLAYBACK_LOW_LATENCY)
+ latency += platform_render_latency(out)/1000;
}
if (!out->standby && is_a2dp_out_device_type(&out->device_list))
@@ -5464,6 +5808,57 @@
return db;
}
+#ifdef SOFT_VOLUME
+static int out_set_soft_volume_params(struct audio_stream_out *stream)
+{
+ struct stream_out *out = (struct stream_out *)stream;
+ int ret = 0;
+ char mixer_ctl_name[128];
+ struct audio_device *adev = out->dev;
+ struct mixer_ctl *ctl = NULL;
+ struct soft_step_volume_params *volume_params = NULL;
+
+ int pcm_device_id = platform_get_pcm_device_id(out->usecase, PCM_PLAYBACK);
+ snprintf(mixer_ctl_name, sizeof(mixer_ctl_name), "Playback %d Soft Vol Params", pcm_device_id);
+ ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
+ if (!ctl) {
+ ALOGE("%s : Could not get ctl for mixer cmd - %s", __func__, mixer_ctl_name);
+ return -EINVAL;
+ }
+
+ volume_params =(struct soft_step_volume_params * ) malloc(sizeof(struct soft_step_volume_params));
+ if (volume_params == NULL){
+ ALOGE("%s : malloc is failed for volume params", __func__);
+ return -EINVAL;
+ } else {
+ ret = platform_get_soft_step_volume_params(volume_params,out->usecase);
+ if (ret < 0) {
+ ALOGE("%s : platform_get_soft_step_volume_params is fialed", __func__);
+ ret = -EINVAL;
+ goto ERR_EXIT;
+ }
+
+ }
+ ret = mixer_ctl_set_array(ctl, volume_params, sizeof(struct soft_step_volume_params)/sizeof(int));
+ if (ret < 0) {
+ ALOGE("%s: Could not set ctl, error:%d ", __func__, ret);
+ ret = -EINVAL;
+ goto ERR_EXIT;
+ }
+
+ if (volume_params) {
+ free(volume_params);
+ }
+ return 0;
+
+ERR_EXIT:
+ if (volume_params) {
+ free(volume_params);
+ }
+ return ret;
+}
+#endif
+
static int out_set_mmap_volume(struct audio_stream_out *stream, float left,
float right)
{
@@ -5828,7 +6223,8 @@
ATRACE_BEGIN("out_write");
lock_output_stream(out);
- if (CARD_STATUS_OFFLINE == out->card_status) {
+ if (CARD_STATUS_OFFLINE == out->card_status ||
+ POWER_POLICY_STATUS_OFFLINE == adev->out_power_policy) {
if (out->flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) {
/*during SSR for compress usecase we should return error to flinger*/
@@ -5959,9 +6355,11 @@
if (out->set_dual_mono)
audio_extn_send_dual_mono_mixing_coefficients(out);
+#ifndef LINUX_ENABLED
// log startup time in ms.
simple_stats_log(
&out->start_latency_ms, (systemTime(SYSTEM_TIME_MONOTONIC) - startNs) * 1e-6);
+#endif
}
if (adev->is_channel_status_set == false &&
@@ -6132,7 +6530,9 @@
const int64_t underrun = frames_by_time - out->last_fifo_frames_remaining;
if (underrun > 0) {
+#ifndef LINUX_ENABLED
simple_stats_log(&out->fifo_underruns, underrun);
+#endif
ALOGW("%s: underrun(%lld) "
"frames_by_time(%lld) > out->last_fifo_frames_remaining(%lld)",
@@ -6284,7 +6684,8 @@
} else if(ret < 0) {
ALOGE(" ERROR: Unable to get time stamp from compress driver");
ret = -EINVAL;
- } else if (out->card_status == CARD_STATUS_OFFLINE) {
+ } else if (out->card_status == CARD_STATUS_OFFLINE ||
+ adev->out_power_policy == POWER_POLICY_STATUS_OFFLINE) {
/*
* Handle corner case where compress session is closed during SSR
* and timestamp is queried
@@ -6413,6 +6814,7 @@
ret = 0;
}
} else if (out->card_status == CARD_STATUS_OFFLINE ||
+ adev->out_power_policy == POWER_POLICY_STATUS_OFFLINE ||
// audioflinger still needs position updates when A2DP is suspended
(is_a2dp_out_device_type(&out->device_list) && audio_extn_a2dp_source_is_suspended())) {
*frames = out->written;
@@ -6634,7 +7036,8 @@
pthread_mutex_lock(&adev->lock);
if (CARD_STATUS_OFFLINE == out->card_status ||
- CARD_STATUS_OFFLINE == adev->card_status) {
+ CARD_STATUS_OFFLINE == adev->card_status ||
+ POWER_POLICY_STATUS_OFFLINE == adev->out_power_policy) {
ALOGW("out->card_status or adev->card_status offline, try again");
ret = -EIO;
goto exit;
@@ -6784,7 +7187,7 @@
if(in->usecase == USECASE_COMPRESS_VOIP_CALL)
return voice_extn_compress_voip_in_get_buffer_size(in);
else if(audio_extn_compr_cap_usecase_supported(in->usecase))
- return audio_extn_compr_cap_get_buffer_size(in->config.format);
+ return audio_extn_compr_cap_get_buffer_size(pcm_format_to_audio_format(in->config.format));
else if(audio_extn_cin_attached_usecase(in))
return audio_extn_cin_get_buffer_size(in);
@@ -6888,21 +7291,21 @@
dprintf(fd, " Standby: %s\n", in->standby ? "yes" : "no");
dprintf(fd, " Frames read: %lld\n", (long long)in->frames_read);
dprintf(fd, " Frames muted: %lld\n", (long long)in->frames_muted);
-
+#ifndef LINUX_ENABLED
char buffer[256]; // for statistics formatting
if (in->start_latency_ms.n > 0) {
simple_stats_to_string(&in->start_latency_ms, buffer, sizeof(buffer));
dprintf(fd, " Start latency ms: %s\n", buffer);
}
-
+#endif
if (locked) {
pthread_mutex_unlock(&in->lock);
}
-
+#ifndef LINUX_ENABLED
// dump error info
(void)error_log_dump(
in->error_log, fd, " " /* prefix */, 0 /* lines */, 0 /* limit_ns */);
-
+#endif
return 0;
}
@@ -7171,10 +7574,11 @@
goto exit;
}
in->standby = 0;
-
+#ifndef LINUX_ENABLED
// log startup time in ms.
simple_stats_log(
&in->start_latency_ms, (systemTime(SYSTEM_TIME_MONOTONIC) - startNs) * 1e-6);
+#endif
}
/* Avoid read if capture_stopped is set */
@@ -7235,7 +7639,9 @@
if ((ret == 0 && voice_get_mic_mute(adev) &&
!voice_is_in_call_rec_stream(in) &&
(in->usecase != USECASE_AUDIO_RECORD_AFE_PROXY &&
- in->usecase != USECASE_AUDIO_RECORD_AFE_PROXY2)) ||
+ in->usecase != USECASE_AUDIO_RECORD_AFE_PROXY2 &&
+ in->source != AUDIO_SOURCE_FM_TUNER &&
+ !is_single_device_type_equal(&in->device_list, AUDIO_DEVICE_IN_FM_TUNER))) ||
(adev->num_va_sessions &&
in->source != AUDIO_SOURCE_VOICE_RECOGNITION &&
property_get_bool("persist.vendor.audio.va_concurrency_mute_enabled",
@@ -7302,6 +7708,10 @@
*frames = in->frames_read + avail;
*time = timestamp.tv_sec * 1000000000LL + timestamp.tv_nsec
- platform_capture_latency(in) * 1000LL;
+ //Adjustment accounts for A2dp decoder latency for recording usecase
+ // Note: decoder latency is returned in ms, while platform_capture_latency in ns.
+ if (is_a2dp_in_device_type(&in->device_list))
+ *time -= audio_extn_a2dp_get_decoder_latency() * 1000000LL;
ret = 0;
}
}
@@ -7412,6 +7822,7 @@
ALOGD("NS enable %d", enable);
if (!in->standby) {
if (in->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
+ in->source == AUDIO_SOURCE_VOICE_RECOGNITION ||
in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) {
if (enable_disable_effect(in->dev, EFFECT_NS, enable) == ENOSYS)
select_devices(in->dev, in->usecase);
@@ -7507,7 +7918,8 @@
ALOGV("%s in %p", __func__, in);
if (CARD_STATUS_OFFLINE == in->card_status||
- CARD_STATUS_OFFLINE == adev->card_status) {
+ CARD_STATUS_OFFLINE == adev->card_status ||
+ POWER_POLICY_STATUS_OFFLINE == adev->in_power_policy) {
ALOGW("in->card_status or adev->card_status offline, try again");
ret = -EIO;
goto exit;
@@ -7684,7 +8096,6 @@
struct stream_in *in = (struct stream_in *)stream;
struct audio_device *adev = in->dev;
struct listnode devices;
- bool is_ha_usecase = false;
list_init(&devices);
@@ -7695,11 +8106,10 @@
pthread_mutex_lock(&adev->lock);
ALOGV("%s: in->usecase: %d, device: %x", __func__, in->usecase, get_device_types(&devices));
- is_ha_usecase = adev->ha_proxy_enable ?
- in->usecase == USECASE_AUDIO_RECORD_AFE_PROXY2 :
- in->usecase == USECASE_AUDIO_RECORD_AFE_PROXY;
- if (is_ha_usecase && !list_empty(&devices)
- && adev->voice_tx_output != NULL) {
+ if ((in->usecase == USECASE_AUDIO_RECORD_AFE_PROXY ||
+ in->usecase == USECASE_AUDIO_RECORD_AFE_PROXY2) &&
+ !list_empty(&devices) &&
+ adev->voice_tx_output != NULL) {
/* Use the rx device from afe-proxy record to route voice call because
there is no routing if tx device is on primary hal and rx device
is on other hal during voice call. */
@@ -7718,6 +8128,7 @@
}
}
+ clear_devices(&devices);
pthread_mutex_unlock(&adev->lock);
pthread_mutex_unlock(&in->lock);
}
@@ -7749,6 +8160,7 @@
#ifdef AUDIO_GKI_ENABLED
__s32 *generic_dec;
#endif
+ pthread_mutexattr_t latch_attr;
if (is_usb_dev && (!audio_extn_usb_connected(NULL))) {
is_usb_dev = false;
@@ -7778,7 +8190,10 @@
pthread_mutex_init(&out->lock, (const pthread_mutexattr_t *) NULL);
pthread_mutex_init(&out->pre_lock, (const pthread_mutexattr_t *) NULL);
- pthread_mutex_init(&out->latch_lock, (const pthread_mutexattr_t *) NULL);
+ pthread_mutexattr_init(&latch_attr);
+ pthread_mutexattr_settype(&latch_attr, PTHREAD_MUTEX_RECURSIVE);
+ pthread_mutex_init(&out->latch_lock, &latch_attr);
+ pthread_mutexattr_destroy(&latch_attr);
pthread_mutex_init(&out->position_query_lock, (const pthread_mutexattr_t *) NULL);
pthread_cond_init(&out->cond, (const pthread_condattr_t *) NULL);
@@ -8544,10 +8959,11 @@
register_channel_mask(out->channel_mask, out->supported_channel_masks);
register_sample_rate(out->sample_rate, out->supported_sample_rates);
+#ifndef LINUX_ENABLED
out->error_log = error_log_create(
ERROR_LOG_ENTRIES,
1000000000 /* aggregate consecutive identical errors within one second in ns */);
-
+#endif
/*
By locking output stream before registering, we allow the callback
to update stream's state only after stream's initial state is set to
@@ -8686,9 +9102,10 @@
if (adev->voice_tx_output == out)
adev->voice_tx_output = NULL;
+#ifndef LINUX_ENABLED
error_log_destroy(out->error_log);
out->error_log = NULL;
-
+#endif
if (adev->primary_output == out)
adev->primary_output = NULL;
@@ -8699,11 +9116,57 @@
pthread_mutex_destroy(&out->position_query_lock);
pthread_mutex_lock(&adev->lock);
+ clear_devices(&out->device_list);
free(stream);
pthread_mutex_unlock(&adev->lock);
ALOGV("%s: exit", __func__);
}
+void in_set_power_policy(uint8_t enable)
+{
+ struct listnode *node;
+
+ ALOGD("%s: Enter, state %d", __func__, enable);
+
+ pthread_mutex_lock(&adev->lock);
+ adev->in_power_policy = enable ? POWER_POLICY_STATUS_ONLINE : POWER_POLICY_STATUS_OFFLINE;
+ pthread_mutex_unlock(&adev->lock);
+
+ if (!enable) {
+ list_for_each(node, &adev->active_inputs_list) {
+ streams_input_ctxt_t *in_ctxt = node_to_item(node,
+ streams_input_ctxt_t,
+ list);
+ struct stream_in *in = in_ctxt->input;
+ in_standby(&in->stream.common);
+ }
+ }
+
+ ALOGD("%s: Exit", __func__);
+}
+
+void out_set_power_policy(uint8_t enable)
+{
+ struct listnode *node;
+
+ ALOGD("%s: Enter, state %d", __func__, enable);
+
+ pthread_mutex_lock(&adev->lock);
+ adev->out_power_policy = enable ? POWER_POLICY_STATUS_ONLINE : POWER_POLICY_STATUS_OFFLINE;
+ pthread_mutex_unlock(&adev->lock);
+
+ if (!enable) {
+ list_for_each(node, &adev->active_outputs_list) {
+ streams_output_ctxt_t *out_ctxt = node_to_item(node,
+ streams_output_ctxt_t,
+ list);
+ struct stream_out *out = out_ctxt->output;
+ out_on_error(&out->stream.common);
+ }
+ }
+
+ ALOGD("%s: Exit", __func__);
+}
static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs)
{
struct audio_device *adev = (struct audio_device *)dev;
@@ -8760,12 +9223,13 @@
list_for_each(node, &adev->usecase_list) {
usecase = node_to_item(node, struct audio_usecase, list);
if (usecase->stream.in && (usecase->type == PCM_CAPTURE) &&
- (!is_btsco_device(SND_DEVICE_NONE, usecase->in_snd_device))) {
+ (!is_btsco_device(SND_DEVICE_NONE, usecase->in_snd_device)) && (is_sco_in_device_type(&usecase->stream.in->device_list))) {
ALOGD("BT_SCO ON, switch all in use case to it");
select_devices(adev, usecase->id);
}
- if (usecase->stream.out && (usecase->type == PCM_PLAYBACK) &&
- (!is_btsco_device(usecase->out_snd_device, SND_DEVICE_NONE))) {
+ if (usecase->stream.out && (usecase->type == PCM_PLAYBACK ||
+ usecase->type == VOICE_CALL) &&
+ (!is_btsco_device(usecase->out_snd_device, SND_DEVICE_NONE)) && (is_sco_out_device_type(&usecase->stream.out->device_list))) {
ALOGD("BT_SCO ON, switch all out use case to it");
select_devices(adev, usecase->id);
}
@@ -8777,25 +9241,6 @@
}
}
- ret = str_parms_get_str(parms, "A2dpSuspended", value, sizeof(value));
- if (ret >= 0) {
- if (!strncmp(value, "false", 5) &&
- audio_extn_a2dp_source_is_suspended()) {
- struct audio_usecase *usecase;
- struct listnode *node;
- list_for_each(node, &adev->usecase_list) {
- usecase = node_to_item(node, struct audio_usecase, list);
- if (usecase->stream.in && (usecase->type == PCM_CAPTURE) &&
- is_sco_in_device_type(&usecase->stream.in->device_list)) {
- ALOGD("a2dp resumed, switch bt sco mic to handset mic");
- reassign_device_list(&usecase->stream.in->device_list,
- AUDIO_DEVICE_IN_BUILTIN_MIC, "");
- select_devices(adev, usecase->id);
- }
- }
- }
- }
-
status = voice_set_parameters(adev, parms);
if (status != 0)
goto done;
@@ -8901,6 +9346,9 @@
ALOGV("detected USB connect .. disable proxy");
adev->allow_afe_proxy_usage = false;
}
+ } else if (audio_is_hearing_aid_out_device(device) &&
+ property_get_bool("persist.vendor.audio.ha_proxy.enabled", false)) {
+ adev->ha_proxy_enable = true;
}
}
@@ -8923,6 +9371,8 @@
ALOGV("detected USB disconnect .. enable proxy");
adev->allow_afe_proxy_usage = true;
}
+ } else if (audio_is_hearing_aid_out_device(device)) {
+ adev->ha_proxy_enable = false;
}
}
@@ -9004,6 +9454,7 @@
}
}
+ audio_extn_auto_hal_set_parameters(adev, parms);
audio_extn_set_parameters(adev, parms);
done:
str_parms_destroy(parms);
@@ -9198,11 +9649,12 @@
static size_t adev_get_input_buffer_size(const struct audio_hw_device *dev __unused,
const struct audio_config *config)
{
+ bool is_usb_hifi = IS_USB_HIFI;
int channel_count = audio_channel_count_from_in_mask(config->channel_mask);
/* Don't know if USB HIFI in this context so use true to be conservative */
if (check_input_parameters(config->sample_rate, config->format, channel_count,
- true /*is_usb_hifi */) != 0)
+ is_usb_hifi) != 0)
return 0;
return get_input_buffer_size(config->sample_rate, config->format, channel_count,
@@ -9480,7 +9932,12 @@
}
}
- if (in->source == AUDIO_SOURCE_FM_TUNER) {
+ /* reassign use case for echo reference stream on automotive platforms */
+ if (in->source == AUDIO_SOURCE_ECHO_REFERENCE) {
+ ret = audio_extn_auto_hal_open_echo_reference_stream(in);
+ }
+
+ if ((in->source == AUDIO_SOURCE_FM_TUNER) || (devices == AUDIO_DEVICE_IN_FM_TUNER)) {
if(!get_usecase_from_list(adev, USECASE_AUDIO_RECORD_FM_VIRTUAL))
in->usecase = USECASE_AUDIO_RECORD_FM_VIRTUAL;
else {
@@ -9488,11 +9945,22 @@
goto err_open;
}
}
-
+#ifdef PLATFORM_AUTO
+ if ((config->sample_rate == 48000 ||
+ config->sample_rate == 32000 ||
+ config->sample_rate == 24000 ||
+ config->sample_rate == 16000 ||
+ config->sample_rate == 8000)&&
+ (flags & AUDIO_INPUT_FLAG_TIMESTAMP) == 0 &&
+ (flags & AUDIO_INPUT_FLAG_COMPRESS) == 0 &&
+ (flags & AUDIO_INPUT_FLAG_FAST) != 0)
+#else
if (config->sample_rate == LOW_LATENCY_CAPTURE_SAMPLE_RATE &&
(flags & AUDIO_INPUT_FLAG_TIMESTAMP) == 0 &&
(flags & AUDIO_INPUT_FLAG_COMPRESS) == 0 &&
- (flags & AUDIO_INPUT_FLAG_FAST) != 0) {
+ (flags & AUDIO_INPUT_FLAG_FAST) != 0)
+#endif
+{
is_low_latency = true;
#if LOW_LATENCY_CAPTURE_USE_CASE
if ((flags & AUDIO_INPUT_FLAG_VOIP_TX) != 0)
@@ -9513,13 +9981,43 @@
in->af_period_multiplier = 1;
} else {
// period size is left untouched for rt mode playback
- in->config = pcm_config_audio_capture_rt;
+#ifdef PLATFORM_AUTO
+ switch(config->sample_rate)
+ {
+ case 48000:
+ in->config = pcm_config_audio_capture_rt_48KHz;
+ break;
+ case 32000:
+ in->config = pcm_config_audio_capture_rt_32KHz;
+ break;
+ case 24000:
+ in->config = pcm_config_audio_capture_rt_24KHz;
+ break;
+ case 16000:
+ in->config = pcm_config_audio_capture_rt_16KHz;
+ break;
+ case 8000:
+ in->config = pcm_config_audio_capture_rt_8KHz;
+ break;
+ default:
+ in->config = pcm_config_audio_capture_rt_48KHz;
+ }
+#else
+ in->config = pcm_config_audio_capture_rt_48KHz;
+#endif
in->af_period_multiplier = af_period_multiplier;
}
}
- if ((config->sample_rate == LOW_LATENCY_CAPTURE_SAMPLE_RATE) &&
- ((in->flags & AUDIO_INPUT_FLAG_MMAP_NOIRQ) != 0)) {
+ /* Additional sample rates added below must also be present
+ in audio_policy_configuration.xml for mmap_no_irq_in */
+ bool valid_mmap_record_rate = (config->sample_rate == 8000 ||
+ config->sample_rate == 16000 ||
+ config->sample_rate == 24000 ||
+ config->sample_rate == 32000 ||
+ config->sample_rate == 48000);
+ if (valid_mmap_record_rate &&
+ ((in->flags & AUDIO_INPUT_FLAG_MMAP_NOIRQ) != 0)) {
in->realtime = 0;
in->usecase = USECASE_AUDIO_RECORD_MMAP;
in->config = pcm_config_mmap_capture;
@@ -9528,6 +10026,7 @@
in->stream.stop = in_stop;
in->stream.create_mmap_buffer = in_create_mmap_buffer;
in->stream.get_mmap_position = in_get_mmap_position;
+ in->config.rate = config->sample_rate;
ALOGV("%s: USECASE_AUDIO_RECORD_MMAP", __func__);
} else if (is_usb_dev && may_use_hifi_record) {
in->usecase = USECASE_AUDIO_RECORD_HIFI;
@@ -9599,10 +10098,33 @@
in->config.rate = config->sample_rate;
in->af_period_multiplier = 1;
} else if (in->realtime) {
- in->config = pcm_config_audio_capture_rt;
+#ifdef PLATFORM_AUTO
+ switch(config->sample_rate)
+ {
+ case 48000:
+ in->config = pcm_config_audio_capture_rt_48KHz;
+ break;
+ case 32000:
+ in->config = pcm_config_audio_capture_rt_32KHz;
+ break;
+ case 24000:
+ in->config = pcm_config_audio_capture_rt_24KHz;
+ break;
+ case 16000:
+ in->config = pcm_config_audio_capture_rt_16KHz;
+ break;
+ case 8000:
+ in->config = pcm_config_audio_capture_rt_8KHz;
+ break;
+ default:
+ in->config = pcm_config_audio_capture_rt_48KHz;
+ }
in->config.format = pcm_format_from_audio_format(config->format);
in->af_period_multiplier = af_period_multiplier;
- } else {
+#else
+ in->config = pcm_config_audio_capture_rt_48KHz;
+#endif
+} else {
int ret_val;
pthread_mutex_lock(&adev->lock);
ret_val = audio_extn_check_and_set_multichannel_usecase(adev,
@@ -9669,6 +10191,9 @@
ALOGV("%s: using USECASE_AUDIO_RECORD",__func__);
adev->pcm_record_uc_state = 1;
pthread_mutex_unlock(&adev->lock);
+ } else if (audio_extn_is_concurrent_pcm_record_enabled()) {
+ in->usecase = get_record_usecase(adev);
+ pthread_mutex_unlock(&adev->lock);
} else {
pthread_mutex_unlock(&adev->lock);
/* Assign compress record use case for second record */
@@ -9685,6 +10210,7 @@
}
}
}
+
if (audio_extn_ssr_get_stream() != in)
in->config.channels = channel_count;
@@ -9699,9 +10225,11 @@
register_channel_mask(in->channel_mask, in->supported_channel_masks);
register_sample_rate(in->sample_rate, in->supported_sample_rates);
+#ifndef LINUX_ENABLED
in->error_log = error_log_create(
ERROR_LOG_ENTRIES,
1000000000 /* aggregate consecutive identical errors within one second */);
+#endif
/* This stream could be for sound trigger lab,
get sound trigger pcm if present */
@@ -9733,7 +10261,9 @@
return ret;
err_open:
- if (in->usecase == USECASE_AUDIO_RECORD) {
+ if (audio_extn_is_concurrent_pcm_record_enabled() && is_pcm_record_usecase(in->usecase)) {
+ free_record_usecase(adev, in->usecase);
+ } else if (in->usecase == USECASE_AUDIO_RECORD) {
pthread_mutex_lock(&adev->lock);
adev->pcm_record_uc_state = 0;
pthread_mutex_unlock(&adev->lock);
@@ -9778,12 +10308,14 @@
struct listnode out_devices;
list_init(&out_devices);
platform_set_echo_reference(adev, false, &out_devices);
+ clear_devices(&out_devices);
} else
audio_extn_sound_trigger_update_ec_ref_status(false);
+#ifndef LINUX_ENABLED
error_log_destroy(in->error_log);
in->error_log = NULL;
-
+#endif
if (in->usecase == USECASE_COMPRESS_VOIP_CALL) {
pthread_mutex_lock(&adev->lock);
@@ -9799,7 +10331,9 @@
pthread_mutex_destroy(&in->pre_lock);
pthread_mutex_lock(&adev->lock);
- if (in->usecase == USECASE_AUDIO_RECORD) {
+ if (audio_extn_is_concurrent_pcm_record_enabled() && is_pcm_record_usecase(in->usecase)) {
+ free_record_usecase(adev, in->usecase);
+ } else if (in->usecase == USECASE_AUDIO_RECORD) {
adev->pcm_record_uc_state = 0;
}
@@ -9816,7 +10350,7 @@
}
if (audio_extn_compr_cap_enabled() &&
- audio_extn_compr_cap_format_supported(in->config.format))
+ audio_extn_compr_cap_format_supported(pcm_format_to_audio_format((in->config).format)))
audio_extn_compr_cap_deinit();
if (audio_extn_cin_attached_usecase(in))
@@ -9826,6 +10360,7 @@
ALOGV("%s: sound trigger pcm stop lab", __func__);
audio_extn_sound_trigger_stop_lab(in);
}
+ clear_devices(&in->device_list);
free(stream);
pthread_mutex_unlock(&adev->lock);
return;
@@ -10136,10 +10671,11 @@
// Update routing for stream
if (stream != NULL) {
- if (p_info->patch_type == PATCH_PLAYBACK)
+ if (p_info->patch_type == PATCH_PLAYBACK) {
ret = route_output_stream((struct stream_out *) stream, &devices);
- else if (p_info->patch_type == PATCH_CAPTURE)
+ } else if (p_info->patch_type == PATCH_CAPTURE) {
ret = route_input_stream((struct stream_in *) stream, &devices, input_source);
+ }
if (ret < 0) {
pthread_mutex_lock(&adev->lock);
s_info->patch_handle = AUDIO_PATCH_HANDLE_NONE;
@@ -10160,6 +10696,7 @@
}
done:
+ clear_devices(&devices);
audio_extn_hw_loopback_create_audio_patch(dev,
num_sources,
sources,
@@ -10245,6 +10782,7 @@
ret = route_output_stream((struct stream_out *) stream, &devices);
else if (patch_type == PATCH_CAPTURE)
ret = route_input_stream((struct stream_in *) stream, &devices, input_source);
+ clear_devices(&devices);
}
if (ret < 0)
@@ -10442,23 +10980,28 @@
reassign_device_list(&out->device_list, AUDIO_DEVICE_OUT_SPEAKER, "");
list_for_each(node, &adev->usecase_list) {
usecase = node_to_item(node, struct audio_usecase, list);
- if ((usecase != uc_info) &&
- platform_check_backends_match(SND_DEVICE_OUT_SPEAKER,
- usecase->out_snd_device)) {
+ if ((usecase->type != PCM_CAPTURE) && (usecase != uc_info) &&
+ !is_a2dp_out_device_type(&usecase->stream.out->device_list) &&
+ !is_sco_out_device_type(&usecase->stream.out->device_list) &&
+ platform_check_backends_match(SND_DEVICE_OUT_SPEAKER,
+ usecase->out_snd_device)) {
assign_devices(&out->device_list, &usecase->stream.out->device_list);
break;
}
}
- if (uc_info->out_snd_device == SND_DEVICE_OUT_BT_A2DP) {
+ if ((is_a2dp_out_device_type(&devices) && list_length(&devices) == 1) ||
+ (uc_info->out_snd_device == SND_DEVICE_OUT_BT_A2DP)) {
out->a2dp_muted = true;
if (is_offload_usecase(out->usecase)) {
if (out->offload_state == OFFLOAD_STATE_PLAYING)
compress_pause(out->compr);
out_set_compr_volume(&out->stream, (float)0, (float)0);
- } else if (out->usecase == USECASE_AUDIO_PLAYBACK_VOIP) {
- out_set_voip_volume(&out->stream, (float)0, (float)0);
} else {
- out_set_pcm_volume(&out->stream, (float)0, (float)0);
+ if (out->usecase == USECASE_AUDIO_PLAYBACK_VOIP)
+ out_set_voip_volume(&out->stream, (float)0, (float)0);
+ else
+ out_set_pcm_volume(&out->stream, (float)0, (float)0);
+
/* wait for stale pcm drained before switching to speaker */
uint32_t latency =
(out->config.period_count * out->config.period_size * 1000) /
@@ -10477,6 +11020,7 @@
}
pthread_mutex_unlock(&out->latch_lock);
}
+ clear_devices(&devices);
ALOGV("%s: exit", __func__);
return 0;
}
@@ -10603,6 +11147,7 @@
adev->use_old_pspd_mix_ctrl = false;
adev->adm_routing_changed = false;
adev->a2dp_started = false;
+ adev->ha_proxy_enable = false;
audio_extn_perf_lock_init();
@@ -10723,6 +11268,7 @@
adev->enable_voicerx = false;
adev->bt_wb_speech_enabled = false;
adev->swb_speech_mode = SPEECH_MODE_INVALID;
+ adev->fluence_nn_usecase_id = USECASE_INVALID;
//initialize this to false for now,
//this will be set to true through set param
adev->vr_audio_mode_enabled = false;
@@ -10752,8 +11298,7 @@
configured_low_latency_capture_period_size = trial;
}
}
- if ((property_get("vendor.audio_hal.in_period_size", value, NULL) > 0) ||
- (property_get("audio_hal.in_period_size", value, NULL) > 0)) {
+ if (property_get("vendor.audio_hal.in_period_size", value, NULL) > 0) {
trial = atoi(value);
if (period_size_is_plausible_for_low_latency(trial)) {
configured_low_latency_capture_period_size = trial;
@@ -10777,7 +11322,6 @@
audio_extn_qdsp_init(adev->platform);
adev->multi_offload_enable = property_get_bool("vendor.audio.offload.multiple.enabled", false);
- adev->ha_proxy_enable = property_get_bool("persist.vendor.audio.ha_proxy.enabled", false);
pthread_mutex_unlock(&adev_init_lock);
if (adev->adm_init)
@@ -10790,6 +11334,8 @@
pthread_mutex_lock(&adev->lock);
audio_extn_snd_mon_register_listener(adev, adev_snd_mon_cb);
adev->card_status = CARD_STATUS_ONLINE;
+ adev->out_power_policy = POWER_POLICY_STATUS_ONLINE;
+ adev->in_power_policy = POWER_POLICY_STATUS_ONLINE;
audio_extn_battery_properties_listener_init(adev_on_battery_status_changed);
/*
* if the battery state callback happens before charging can be queried,
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
old mode 100755
new mode 100644
index 8caefe8..058d7a2
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -33,6 +33,40 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
+
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted (subject to the limitations in the
+ * disclaimer below) provided that the following conditions are met:
+
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+
+ * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+
+ * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+ * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+ * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef QCOM_AUDIO_HW_H
@@ -47,15 +81,35 @@
#include <tinycompress/tinycompress.h>
#include <audio_route/audio_route.h>
+#ifndef LINUX_ENABLED
#include <audio_utils/ErrorLog.h>
+#else
+typedef int error_log_t;
+#define error_log_dump(error_log, fd, prefix, lines, limit_ns) (0)
+#define error_log_create(entries, aggregate_ns) (0)
+#define error_log_destroy(error_log) (0)
+#endif
+#ifndef LINUX_ENABLED
#include <audio_utils/Statistics.h>
#include <audio_utils/clock.h>
+#endif
#include "audio_defs.h"
#include "voice.h"
#include "audio_hw_extn_api.h"
#include "device_utils.h"
#if LINUX_ENABLED
+typedef struct {
+ int64_t n;
+ double min;
+ double max;
+ double last;
+ double mean;
+} simple_stats_t;
+#define NANOS_PER_SECOND 1000000000LL
+#endif
+
+#if LINUX_ENABLED
#if defined(__LP64__)
#define VISUALIZER_LIBRARY_PATH "/usr/lib64/libqcomvisualizer.so"
#define OFFLOAD_EFFECTS_BUNDLE_LIBRARY_PATH "/usr/lib64/libqcompostprocbundle.so"
@@ -139,6 +193,10 @@
CARD_STATUS_ONLINE
} card_status_t;
+typedef enum power_policy_status_t {
+ POWER_POLICY_STATUS_OFFLINE,
+ POWER_POLICY_STATUS_ONLINE
+} power_policy_status_t;
/* These are the supported use cases by the hardware.
* Each usecase is mapped to a specific PCM device.
* Refer to pcm_device_table[].
@@ -176,6 +234,8 @@
/* Capture usecases */
USECASE_AUDIO_RECORD,
+ USECASE_AUDIO_RECORD2,
+ USECASE_AUDIO_RECORD3,
USECASE_AUDIO_RECORD_COMPRESS,
USECASE_AUDIO_RECORD_COMPRESS2,
USECASE_AUDIO_RECORD_COMPRESS3,
@@ -242,6 +302,7 @@
USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION,
USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE,
USECASE_AUDIO_PLAYBACK_PHONE,
+ USECASE_AUDIO_PLAYBACK_ALERTS,
USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER,
USECASE_AUDIO_PLAYBACK_REAR_SEAT,
USECASE_AUDIO_RECORD_BUS,
@@ -250,6 +311,9 @@
USECASE_AUDIO_PLAYBACK_SYNTHESIZER,
+ /* Echo reference capture usecases */
+ USECASE_AUDIO_RECORD_ECHO_REF_EXT,
+
/*Audio FM Tuner usecase*/
USECASE_AUDIO_FM_TUNER_EXT,
/*voip usecase with low latency path*/
@@ -340,6 +404,7 @@
CAR_AUDIO_STREAM_NAV_GUIDANCE = 0x4,
CAR_AUDIO_STREAM_PHONE = 0x8,
CAR_AUDIO_STREAM_IN_PRIMARY = 0x10,
+ CAR_AUDIO_STREAM_ALERTS = 0x20,
CAR_AUDIO_STREAM_FRONT_PASSENGER = 0x100,
CAR_AUDIO_STREAM_IN_FRONT_PASSENGER = 0x200,
CAR_AUDIO_STREAM_REAR_SEAT = 0x10000,
@@ -392,11 +457,12 @@
pthread_mutex_t pre_lock; /* acquire before lock to avoid DOS by playback thread */
pthread_cond_t cond;
/* stream_out->lock is of large granularity, and can only be held before device lock
- * latch is a supplemetary lock to protect certain fields of out stream and
- * it can be held after device lock
+ * latch is a supplemetary lock to protect certain fields of out stream (such as
+ * offload_state, a2dp_muted, to add any stream member that needs to be accessed
+ * with device lock held) and it can be held after device lock
*/
pthread_mutex_t latch_lock;
- pthread_mutex_t position_query_lock; /* sychronize frame written */
+ pthread_mutex_t position_query_lock;
struct pcm_config config;
struct compr_config compr_config;
struct pcm *pcm;
@@ -424,7 +490,7 @@
int non_blocking;
int playback_started;
- int offload_state;
+ int offload_state; /* guarded by latch_lock */
pthread_cond_t offload_cond;
pthread_t offload_thread;
struct listnode offload_cmd_list;
@@ -466,7 +532,7 @@
qahwi_stream_out_t qahwi_out;
bool is_iec61937_info_available;
- bool a2dp_muted;
+ bool a2dp_muted; /* guarded by latch_lock */
float volume_l;
float volume_r;
bool apply_volume;
@@ -479,8 +545,9 @@
mix_matrix_params_t downmix_params;
bool set_dual_mono;
bool prev_card_status_offline;
-
+#ifndef LINUX_ENABLED
error_log_t *error_log;
+#endif
bool pspd_coeff_sent;
int car_audio_stream; /* handle for car_audio_stream */
@@ -555,8 +622,9 @@
int64_t frames_read; /* total frames read, not cleared when entering standby */
int64_t frames_muted; /* total frames muted, not cleared when entering standby */
+#ifndef LINUX_ENABLED
error_log_t *error_log;
-
+#endif
simple_stats_t start_latency_ms;
int car_audio_stream; /* handle for car_audio_stream*/
@@ -689,6 +757,8 @@
int snd_card;
card_status_t card_status;
+ power_policy_status_t out_power_policy;
+ power_policy_status_t in_power_policy;
unsigned int cur_codec_backend_samplerate;
unsigned int cur_codec_backend_bit_width;
bool is_channel_status_set;
@@ -744,6 +814,7 @@
int haptic_pcm_device_id;
uint8_t *haptic_buffer;
size_t haptic_buffer_size;
+ int fluence_nn_usecase_id;
/* logging */
snd_device_t last_logged_snd_device[AUDIO_USECASE_MAX][2]; /* [out, in] */
@@ -774,6 +845,17 @@
struct audio_patch patch;
};
+#ifdef SOFT_VOLUME
+/* this struct is used for set/get values from AHAL*/
+struct soft_step_volume_params {
+ int period;
+ int step;
+ int curve;
+};
+#endif
+void out_set_power_policy(uint8_t enable);
+void in_set_power_policy(uint8_t enable);
+
int select_devices(struct audio_device *adev,
audio_usecase_t uc_id);
int disable_audio_route(struct audio_device *adev,
@@ -802,6 +884,7 @@
audio_usecase_t get_usecase_id_from_usecase_type(const struct audio_device *adev,
usecase_type_t type);
+/* adev lock held */
int check_a2dp_restore_l(struct audio_device *adev, struct stream_out *out, bool restore);
int adev_open_output_stream(struct audio_hw_device *dev,
@@ -825,6 +908,7 @@
#define CHECK(condition) LOG_ALWAYS_FATAL_IF(!(condition), "%s",\
__FILE__ ":" LITERAL_TO_STRING(__LINE__)\
" ASSERT_FATAL(" #condition ") failed.")
+bool is_combo_audio_input_device(struct listnode *devices);
static inline bool is_loopback_input_device(audio_devices_t device) {
if (!audio_is_output_device(device) &&
@@ -859,7 +943,33 @@
/*
* NOTE: when multiple mutexes have to be acquired, always take the
- * stream_in or stream_out mutex first, followed by the audio_device mutex.
+ * stream_in or stream_out mutex first, followed by the audio_device mutex
+ * and latch at last.
*/
+static inline audio_format_t pcm_format_to_audio_format(const enum pcm_format format)
+{
+ audio_format_t ret = AUDIO_FORMAT_INVALID;
+ switch(format) {
+ case PCM_FORMAT_S16_LE:
+ ret = (audio_format_t)AUDIO_FORMAT_PCM_SUB_16_BIT;
+ break;
+ case PCM_FORMAT_S32_LE:
+ ret = (audio_format_t)AUDIO_FORMAT_PCM_SUB_32_BIT;
+ break;
+ case PCM_FORMAT_S8:
+ ret = (audio_format_t)AUDIO_FORMAT_PCM_SUB_8_BIT;
+ break;
+ case PCM_FORMAT_S24_LE:
+ ret = (audio_format_t)AUDIO_FORMAT_PCM_SUB_8_24_BIT;
+ break;
+ case PCM_FORMAT_S24_3LE:
+ ret = (audio_format_t)AUDIO_FORMAT_PCM_SUB_24_BIT_PACKED;
+ break;
+ default:
+ break;
+ }
+ return ret;
+}
+
#endif // QCOM_AUDIO_HW_H
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 2a335f0..d31df8e 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -7665,6 +7665,11 @@
return false;
}
+int platform_get_is_afe_loopback_enabled(void *platform __unused)
+{
+ return 0;
+}
+
int platform_set_edid_channels_configuration(void *platform, int channels, int backend_idx __unused, snd_device_t snd_device __unused) {
struct platform_data *my_data = (struct platform_data *)platform;
diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c
index 439b6d7..aa4286f 100644
--- a/hal/msm8960/platform.c
+++ b/hal/msm8960/platform.c
@@ -1223,6 +1223,11 @@
return -ENOSYS;
}
+int platform_get_is_afe_loopback_enabled(void *platform __unused)
+{
+ return 0;
+}
+
int platform_set_edid_channels_configuration(void *platform __unused,
int channels __unused,
int backend_idx __unused)
diff --git a/hal/msm8974/hw_info.c b/hal/msm8974/hw_info.c
old mode 100644
new mode 100755
index 819ae1d..c219618
--- a/hal/msm8974/hw_info.c
+++ b/hal/msm8974/hw_info.c
@@ -1,6 +1,10 @@
/*
* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
*
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
@@ -788,6 +792,9 @@
} else if (!strncmp(snd_card_name, "sm6150-idp-snd-card",
sizeof("sm6150-idp-snd-card"))) {
strlcpy(hw_info->name, "sm6150", sizeof(hw_info->name));
+ } else if (!strncmp(snd_card_name, "sm6150-ipc-snd-card",
+ sizeof("sm6150-ipc-snd-card"))) {
+ strlcpy(hw_info->name, "sm6150", sizeof(hw_info->name));
} else if (!strncmp(snd_card_name, "sm6150-wcd9375-snd-card",
sizeof("sm6150-wcd9375-snd-card"))) {
strlcpy(hw_info->name, "sm6150", sizeof(hw_info->name));
@@ -959,7 +966,7 @@
ALOGV("SDX - variant soundcard");
update_hardware_info_sdx(hw_info, snd_card_name);
} else if (strstr(snd_card_name, "pahu") || strstr(snd_card_name, "tavil") ||
- strstr(snd_card_name, "sa8155")) {
+ strstr(snd_card_name, "sa8155") || strstr(snd_card_name, "sa8295")) {
ALOGV("MSMNILE - variant soundcard");
update_hardware_info_msmnile(hw_info, snd_card_name);
} else if (strstr(snd_card_name, "sda845")) {
@@ -1001,7 +1008,7 @@
{
struct hardware_info *my_data = (struct hardware_info*) hw_info;
- if(!my_data)
+ if (my_data)
free(my_data);
}
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
old mode 100755
new mode 100644
index 9259150..a3a943f
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2022, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -78,6 +78,7 @@
#define PLATFORM_INFO_XML_PATH_YUPIK_IDP "audio_platform_info_yupikidp.xml"
#define PLATFORM_INFO_XML_PATH_SCUBA_IDP "audio_platform_info_scubaidp.xml"
#define PLATFORM_INFO_XML_PATH_SCUBA_QRD "audio_platform_info_scubaqrd.xml"
+#define PLATFORM_INFO_XML_PATH_SA8295_ADP "audio_platform_info_sa8295.xml"
#include <linux/msm_audio.h>
#if defined (PLATFORM_MSM8998) || (PLATFORM_SDM845) || (PLATFORM_SDM710) || \
@@ -185,6 +186,7 @@
#define MAX_CAL_NAME 20
#define MAX_MIME_TYPE_LENGTH 30
#define MAX_SND_CARD_NAME_LENGTH 100
+#define FE_ID_TABLE_INDEX 2
#define GET_IN_DEVICE_INDEX(SND_DEVICE) ((SND_DEVICE) - (SND_DEVICE_IN_BEGIN))
@@ -247,6 +249,12 @@
CAL_MODE_RTAC = 0x4
};
+enum {
+ CAL_OFFSET_NONE = 0x0,
+ CAL_OFFSET_ASM_TOP = 0x1,
+ CAL_OFFSET_INDEX_MAX
+};
+
#define PLATFORM_CONFIG_KEY_OPERATOR_INFO "operator_info"
char vendor_config_path[VENDOR_CONFIG_PATH_MAX_LENGTH];
char xml_file_path[VENDOR_CONFIG_FILE_MAX_LENGTH];
@@ -317,6 +325,7 @@
bool fluence_nn_enabled;
int fluence_type;
int fluence_mode;
+ int afe_loopback;
char fluence_cap[PROPERTY_VALUE_MAX];
bool ambisonic_capture;
bool ambisonic_profile;
@@ -342,13 +351,14 @@
/* Audio calibration related functions */
void *acdb_handle;
int voice_feature_set;
- acdb_init_t acdb_init;
+ acdb_init_v2_t acdb_init;
acdb_init_v3_t acdb_init_v3;
acdb_init_v4_t acdb_init_v4;
acdb_deallocate_t acdb_deallocate;
acdb_send_audio_cal_t acdb_send_audio_cal;
acdb_send_audio_cal_v3_t acdb_send_audio_cal_v3;
acdb_send_audio_cal_v4_t acdb_send_audio_cal_v4;
+ acdb_send_audio_cal_v6_t acdb_send_audio_cal_v6;
acdb_set_audio_cal_t acdb_set_audio_cal;
acdb_get_audio_cal_t acdb_get_audio_cal;
acdb_send_voice_cal_t acdb_send_voice_cal;
@@ -358,6 +368,8 @@
acdb_set_codec_data_t acdb_set_codec_data;
acdb_reload_t acdb_reload;
acdb_reload_v2_t acdb_reload_v2;
+ acdb_get_fluence_nn_state_t acdb_get_fluence_nn_state;
+ acdb_set_fluence_nn_state_t acdb_set_fluence_nn_state;
void *hw_info;
acdb_send_gain_dep_cal_t acdb_send_gain_dep_cal;
struct csd_data *csd;
@@ -398,144 +410,194 @@
char chmap[AUDIO_CHANNEL_COUNT_MAX];
};
-static int pcm_device_table[AUDIO_USECASE_MAX][2] = {
+#ifdef SOFT_VOLUME
+static int usecase_volume_params[AUDIO_USECASE_MAX][3] = {
+ [USECASE_AUDIO_PLAYBACK_DEEP_BUFFER] = {-1,-1,-1},
+ [USECASE_AUDIO_PLAYBACK_MEDIA] = {-1,-1,-1},
+ [USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION] = {-1,-1,-1},
+ [USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE] = {-1,-1,-1},
+ [USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER] = {-1,-1,-1},
+ [USECASE_AUDIO_PLAYBACK_REAR_SEAT] = {-1,-1,-1},
+};
+#endif
+
+static int pcm_device_table[AUDIO_USECASE_MAX][4] = {
[USECASE_AUDIO_PLAYBACK_DEEP_BUFFER] = {DEEP_BUFFER_PCM_DEVICE,
- DEEP_BUFFER_PCM_DEVICE},
+ DEEP_BUFFER_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1,
+ MSM_FRONTEND_DAI_MULTIMEDIA1},
[USECASE_AUDIO_PLAYBACK_WITH_HAPTICS] = {AUDIO_HAPTICS_PCM_DEVICE,
- AUDIO_HAPTICS_PCM_DEVICE},
+ AUDIO_HAPTICS_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_PLAYBACK_HAPTICS] = {HAPTICS_PCM_DEVICE,
- HAPTICS_PCM_DEVICE},
+ HAPTICS_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_PLAYBACK_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE,
- LOWLATENCY_PCM_DEVICE},
+ LOWLATENCY_PCM_DEVICE,
+ MSM_FRONTEND_DAI_VOICEMMODE2,
+ MSM_FRONTEND_DAI_VOICEMMODE2},
[USECASE_AUDIO_PLAYBACK_ULL] = {MULTIMEDIA3_PCM_DEVICE,
- MULTIMEDIA3_PCM_DEVICE},
+ MULTIMEDIA3_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA3,
+ MSM_FRONTEND_DAI_MULTIMEDIA3},
[USECASE_AUDIO_PLAYBACK_MULTI_CH] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
+ MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_AUDIO_PLAYBACK_HIFI] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
+ MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_AUDIO_PLAYBACK_TTS] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
+ MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_AUDIO_PLAYBACK_OFFLOAD] =
- {PLAYBACK_OFFLOAD_DEVICE, PLAYBACK_OFFLOAD_DEVICE},
+ {PLAYBACK_OFFLOAD_DEVICE, PLAYBACK_OFFLOAD_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA5, MSM_FRONTEND_DAI_MULTIMEDIA5},
[USECASE_AUDIO_PLAYBACK_OFFLOAD2] =
- {PLAYBACK_OFFLOAD_DEVICE2, PLAYBACK_OFFLOAD_DEVICE2},
+ {PLAYBACK_OFFLOAD_DEVICE2, PLAYBACK_OFFLOAD_DEVICE2, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD3] =
- {PLAYBACK_OFFLOAD_DEVICE3, PLAYBACK_OFFLOAD_DEVICE3},
+ {PLAYBACK_OFFLOAD_DEVICE3, PLAYBACK_OFFLOAD_DEVICE3, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD4] =
- {PLAYBACK_OFFLOAD_DEVICE4, PLAYBACK_OFFLOAD_DEVICE4},
+ {PLAYBACK_OFFLOAD_DEVICE4, PLAYBACK_OFFLOAD_DEVICE4, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD5] =
- {PLAYBACK_OFFLOAD_DEVICE5, PLAYBACK_OFFLOAD_DEVICE5},
+ {PLAYBACK_OFFLOAD_DEVICE5, PLAYBACK_OFFLOAD_DEVICE5,
+ MSM_FRONTEND_DAI_MULTIMEDIA20,
+ MSM_FRONTEND_DAI_MULTIMEDIA20},
[USECASE_AUDIO_PLAYBACK_OFFLOAD6] =
- {PLAYBACK_OFFLOAD_DEVICE6, PLAYBACK_OFFLOAD_DEVICE6},
+ {PLAYBACK_OFFLOAD_DEVICE6, PLAYBACK_OFFLOAD_DEVICE6,
+ MSM_FRONTEND_DAI_MULTIMEDIA21, MSM_FRONTEND_DAI_MULTIMEDIA21},
[USECASE_AUDIO_PLAYBACK_OFFLOAD7] =
- {PLAYBACK_OFFLOAD_DEVICE7, PLAYBACK_OFFLOAD_DEVICE7},
+ {PLAYBACK_OFFLOAD_DEVICE7, PLAYBACK_OFFLOAD_DEVICE7, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD8] =
- {PLAYBACK_OFFLOAD_DEVICE8, PLAYBACK_OFFLOAD_DEVICE8},
+ {PLAYBACK_OFFLOAD_DEVICE8, PLAYBACK_OFFLOAD_DEVICE8, -1, -1},
[USECASE_AUDIO_PLAYBACK_OFFLOAD9] =
- {PLAYBACK_OFFLOAD_DEVICE9, PLAYBACK_OFFLOAD_DEVICE9},
+ {PLAYBACK_OFFLOAD_DEVICE9, PLAYBACK_OFFLOAD_DEVICE9, -1, -1},
- [USECASE_AUDIO_RECORD] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_COMPRESS] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE},
- [USECASE_AUDIO_RECORD_COMPRESS2] = {-1, -1},
- [USECASE_AUDIO_RECORD_COMPRESS3] = {-1, -1},
- [USECASE_AUDIO_RECORD_COMPRESS4] = {-1, -1},
- [USECASE_AUDIO_RECORD_COMPRESS5] = {-1, -1},
- [USECASE_AUDIO_RECORD_COMPRESS6] = {-1, -1},
- [USECASE_AUDIO_RECORD_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE,
- LOWLATENCY_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_FM_VIRTUAL] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_HIFI] = {MULTIMEDIA2_PCM_DEVICE,
- MULTIMEDIA2_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_FM] = {FM_PLAYBACK_PCM_DEVICE, FM_CAPTURE_PCM_DEVICE},
- [USECASE_AUDIO_HFP_SCO] = {HFP_PCM_RX, HFP_SCO_RX},
- [USECASE_AUDIO_HFP_SCO_WB] = {HFP_PCM_RX, HFP_SCO_RX},
- [USECASE_AUDIO_HFP_SCO_DOWNLINK] = {HFP_ASM_RX_TX, HFP_ASM_RX_TX},
- [USECASE_AUDIO_HFP_SCO_WB_DOWNLINK] = {HFP_ASM_RX_TX, HFP_ASM_RX_TX},
- [USECASE_VOICE_CALL] = {VOICE_CALL_PCM_DEVICE, VOICE_CALL_PCM_DEVICE},
+ [USECASE_AUDIO_RECORD] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_RECORD2] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_RECORD3] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_RECORD_COMPRESS] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS2] = {COMPRESS_CAPTURE_DEVICE, COMPRESS_CAPTURE_DEVICE, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS3] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS4] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS5] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_COMPRESS6] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, LOWLATENCY_PCM_DEVICE,
+ MSM_FRONTEND_DAI_VOICEMMODE2, MSM_FRONTEND_DAI_VOICEMMODE2},
+ [USECASE_AUDIO_RECORD_FM_VIRTUAL] = {MULTIMEDIA2_PCM_DEVICE, MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
+ [USECASE_AUDIO_RECORD_HIFI] = {MULTIMEDIA2_PCM_DEVICE, MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
+ [USECASE_AUDIO_PLAYBACK_FM] = {FM_PLAYBACK_PCM_DEVICE, FM_CAPTURE_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_HFP_SCO] = {HFP_PCM_RX, HFP_SCO_RX,
+ MSM_FRONTEND_DAI_MULTIMEDIA6, MSM_FRONTEND_DAI_MULTIMEDIA6},
+ [USECASE_AUDIO_HFP_SCO_WB] = {HFP_PCM_RX, HFP_SCO_RX,
+ MSM_FRONTEND_DAI_MULTIMEDIA6, MSM_FRONTEND_DAI_MULTIMEDIA6},
+ [USECASE_AUDIO_HFP_SCO_DOWNLINK] = {HFP_ASM_RX_TX, HFP_ASM_RX_TX,
+ MSM_FRONTEND_DAI_MULTIMEDIA21, MSM_FRONTEND_DAI_MULTIMEDIA21},
+ [USECASE_AUDIO_HFP_SCO_WB_DOWNLINK] = {HFP_ASM_RX_TX, HFP_ASM_RX_TX,
+ MSM_FRONTEND_DAI_MULTIMEDIA21, MSM_FRONTEND_DAI_MULTIMEDIA21},
+ [USECASE_VOICE_CALL] = {VOICE_CALL_PCM_DEVICE, VOICE_CALL_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_PLAYBACK_MMAP] = {MMAP_PLAYBACK_PCM_DEVICE,
- MMAP_PLAYBACK_PCM_DEVICE},
+ MMAP_PLAYBACK_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_RECORD_MMAP] = {MMAP_RECORD_PCM_DEVICE,
- MMAP_RECORD_PCM_DEVICE},
- [USECASE_VOICE2_CALL] = {VOICE2_CALL_PCM_DEVICE, VOICE2_CALL_PCM_DEVICE},
- [USECASE_VOLTE_CALL] = {VOLTE_CALL_PCM_DEVICE, VOLTE_CALL_PCM_DEVICE},
- [USECASE_QCHAT_CALL] = {QCHAT_CALL_PCM_DEVICE, QCHAT_CALL_PCM_DEVICE},
- [USECASE_VOWLAN_CALL] = {VOWLAN_CALL_PCM_DEVICE, VOWLAN_CALL_PCM_DEVICE},
+ MMAP_RECORD_PCM_DEVICE, -1, -1},
+ [USECASE_VOICE2_CALL] = {VOICE2_CALL_PCM_DEVICE, VOICE2_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_VOLTE_CALL] = {VOLTE_CALL_PCM_DEVICE, VOLTE_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_QCHAT_CALL] = {QCHAT_CALL_PCM_DEVICE, QCHAT_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_VOWLAN_CALL] = {VOWLAN_CALL_PCM_DEVICE, VOWLAN_CALL_PCM_DEVICE, -1, -1},
[USECASE_VOICEMMODE1_CALL] = {VOICEMMODE1_CALL_PCM_DEVICE,
- VOICEMMODE1_CALL_PCM_DEVICE},
+ VOICEMMODE1_CALL_PCM_DEVICE, -1, -1},
[USECASE_VOICEMMODE2_CALL] = {VOICEMMODE2_CALL_PCM_DEVICE,
- VOICEMMODE2_CALL_PCM_DEVICE},
- [USECASE_COMPRESS_VOIP_CALL] = {COMPRESS_VOIP_CALL_PCM_DEVICE, COMPRESS_VOIP_CALL_PCM_DEVICE},
- [USECASE_INCALL_REC_UPLINK] = {AUDIO_RECORD_PCM_DEVICE,
- AUDIO_RECORD_PCM_DEVICE},
- [USECASE_INCALL_REC_DOWNLINK] = {AUDIO_RECORD_PCM_DEVICE,
- AUDIO_RECORD_PCM_DEVICE},
- [USECASE_INCALL_REC_UPLINK_AND_DOWNLINK] = {AUDIO_RECORD_PCM_DEVICE,
- AUDIO_RECORD_PCM_DEVICE},
+ VOICEMMODE2_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_COMPRESS_VOIP_CALL] = {COMPRESS_VOIP_CALL_PCM_DEVICE, COMPRESS_VOIP_CALL_PCM_DEVICE, -1, -1},
+ [USECASE_INCALL_REC_UPLINK] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_INCALL_REC_DOWNLINK] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_INCALL_REC_UPLINK_AND_DOWNLINK] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
[USECASE_INCALL_REC_UPLINK_COMPRESS] = {COMPRESS_CAPTURE_DEVICE,
- COMPRESS_CAPTURE_DEVICE},
+ COMPRESS_CAPTURE_DEVICE, -1, -1},
[USECASE_INCALL_REC_DOWNLINK_COMPRESS] = {COMPRESS_CAPTURE_DEVICE,
- COMPRESS_CAPTURE_DEVICE},
+ COMPRESS_CAPTURE_DEVICE, -1, -1},
[USECASE_INCALL_REC_UPLINK_AND_DOWNLINK_COMPRESS] = {COMPRESS_CAPTURE_DEVICE,
- COMPRESS_CAPTURE_DEVICE},
+ COMPRESS_CAPTURE_DEVICE, -1, -1},
[USECASE_INCALL_MUSIC_UPLINK] = {INCALL_MUSIC_UPLINK_PCM_DEVICE,
- INCALL_MUSIC_UPLINK_PCM_DEVICE},
+ INCALL_MUSIC_UPLINK_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_INCALL_MUSIC_UPLINK2] = {INCALL_MUSIC_UPLINK2_PCM_DEVICE,
- INCALL_MUSIC_UPLINK2_PCM_DEVICE},
- [USECASE_AUDIO_SPKR_CALIB_RX] = {SPKR_PROT_CALIB_RX_PCM_DEVICE, -1},
- [USECASE_AUDIO_SPKR_CALIB_TX] = {-1, SPKR_PROT_CALIB_TX_PCM_DEVICE},
+ INCALL_MUSIC_UPLINK2_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_SPKR_CALIB_RX] = {SPKR_PROT_CALIB_RX_PCM_DEVICE, -1, -1, -1},
+ [USECASE_AUDIO_SPKR_CALIB_TX] = {-1, SPKR_PROT_CALIB_TX_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_PLAYBACK_AFE_PROXY] = {AFE_PROXY_PLAYBACK_PCM_DEVICE,
- AFE_PROXY_RECORD_PCM_DEVICE},
+ AFE_PROXY_RECORD_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_RECORD_AFE_PROXY] = {AFE_PROXY_PLAYBACK_PCM_DEVICE,
- AFE_PROXY_RECORD_PCM_DEVICE},
+ AFE_PROXY_RECORD_PCM_DEVICE, -1, -1},
[USECASE_AUDIO_RECORD_AFE_PROXY2] = {AFE_PROXY_RECORD2_PCM_DEVICE,
- AFE_PROXY_RECORD2_PCM_DEVICE},
- [USECASE_AUDIO_DSM_FEEDBACK] = {QUAT_MI2S_PCM_DEVICE, QUAT_MI2S_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_SILENCE] = {MULTIMEDIA9_PCM_DEVICE, -1},
- [USECASE_AUDIO_TRANSCODE_LOOPBACK_RX] = {TRANSCODE_LOOPBACK_RX_DEV_ID, -1},
- [USECASE_AUDIO_TRANSCODE_LOOPBACK_TX] = {-1, TRANSCODE_LOOPBACK_TX_DEV_ID},
+ AFE_PROXY_RECORD2_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_DSM_FEEDBACK] = {QUAT_MI2S_PCM_DEVICE, QUAT_MI2S_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_PLAYBACK_SILENCE] = {MULTIMEDIA9_PCM_DEVICE, -1, -1, -1},
+ [USECASE_AUDIO_TRANSCODE_LOOPBACK_RX] = {TRANSCODE_LOOPBACK_RX_DEV_ID, -1, -1, -1},
+ [USECASE_AUDIO_TRANSCODE_LOOPBACK_TX] = {-1, TRANSCODE_LOOPBACK_TX_DEV_ID, -1, -1},
- [USECASE_AUDIO_PLAYBACK_VOIP] = {AUDIO_PLAYBACK_VOIP_PCM_DEVICE, AUDIO_PLAYBACK_VOIP_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_VOIP] = {AUDIO_RECORD_VOIP_PCM_DEVICE, AUDIO_RECORD_VOIP_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, LOWLATENCY_PCM_DEVICE},
+ [USECASE_AUDIO_PLAYBACK_VOIP] = {AUDIO_PLAYBACK_VOIP_PCM_DEVICE, AUDIO_PLAYBACK_VOIP_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_RECORD_VOIP] = {AUDIO_RECORD_VOIP_PCM_DEVICE, AUDIO_RECORD_VOIP_PCM_DEVICE, -1, -1},
+ [USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY] = {LOWLATENCY_PCM_DEVICE, LOWLATENCY_PCM_DEVICE,
+ MSM_FRONTEND_DAI_VOICEMMODE2,
+ MSM_FRONTEND_DAI_VOICEMMODE2},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM1] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE1, PLAYBACK_INTERACTIVE_STRM_DEVICE1},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE1, PLAYBACK_INTERACTIVE_STRM_DEVICE1,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM2] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE2, PLAYBACK_INTERACTIVE_STRM_DEVICE2},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE2, PLAYBACK_INTERACTIVE_STRM_DEVICE2,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM3] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE3, PLAYBACK_INTERACTIVE_STRM_DEVICE3},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE3, PLAYBACK_INTERACTIVE_STRM_DEVICE3, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM4] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE4, PLAYBACK_INTERACTIVE_STRM_DEVICE4},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE4, PLAYBACK_INTERACTIVE_STRM_DEVICE4, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM5] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE5, PLAYBACK_INTERACTIVE_STRM_DEVICE5},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE5, PLAYBACK_INTERACTIVE_STRM_DEVICE5, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM6] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE6, PLAYBACK_INTERACTIVE_STRM_DEVICE6},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE6, PLAYBACK_INTERACTIVE_STRM_DEVICE6, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM7] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE7, PLAYBACK_INTERACTIVE_STRM_DEVICE7},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE7, PLAYBACK_INTERACTIVE_STRM_DEVICE7, -1, -1},
[USECASE_AUDIO_PLAYBACK_INTERACTIVE_STREAM8] =
- {PLAYBACK_INTERACTIVE_STRM_DEVICE8, PLAYBACK_INTERACTIVE_STRM_DEVICE8},
+ {PLAYBACK_INTERACTIVE_STRM_DEVICE8, PLAYBACK_INTERACTIVE_STRM_DEVICE8, -1, -1},
[USECASE_AUDIO_EC_REF_LOOPBACK] = {-1, -1}, /* pcm id updated from platform info file */
- [USECASE_AUDIO_PLAYBACK_MEDIA] = {MEDIA_PCM_DEVICE,
- MEDIA_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION] = {SYS_NOTIFICATION_PCM_DEVICE,
- SYS_NOTIFICATION_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE] = {NAV_GUIDANCE_PCM_DEVICE,
- NAV_GUIDANCE_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_PHONE] = {PHONE_PCM_DEVICE,
- PHONE_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER] = {FRONT_PASSENGER_PCM_DEVICE,
- FRONT_PASSENGER_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_REAR_SEAT] = {REAR_SEAT_PCM_DEVICE,
- REAR_SEAT_PCM_DEVICE},
- [USECASE_AUDIO_FM_TUNER_EXT] = {-1, -1},
- [USECASE_ICC_CALL] = {ICC_PCM_DEVICE, ICC_PCM_DEVICE},
+ [USECASE_AUDIO_PLAYBACK_MEDIA] = {MEDIA_PCM_DEVICE, MEDIA_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION] = {SYS_NOTIFICATION_PCM_DEVICE, SYS_NOTIFICATION_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA5, MSM_FRONTEND_DAI_MULTIMEDIA5},
+ [USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE] = {NAV_GUIDANCE_PCM_DEVICE, NAV_GUIDANCE_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
+ [USECASE_AUDIO_PLAYBACK_PHONE] = {PHONE_PCM_DEVICE, PHONE_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA10, MSM_FRONTEND_DAI_MULTIMEDIA10},
+ [USECASE_AUDIO_PLAYBACK_ALERTS] = {ALERTS_PCM_DEVICE, ALERTS_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA31, MSM_FRONTEND_DAI_MULTIMEDIA31},
+ [USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER] = {FRONT_PASSENGER_PCM_DEVICE, FRONT_PASSENGER_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA23, MSM_FRONTEND_DAI_MULTIMEDIA23},
+ [USECASE_AUDIO_PLAYBACK_REAR_SEAT] = {REAR_SEAT_PCM_DEVICE, REAR_SEAT_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA22, MSM_FRONTEND_DAI_MULTIMEDIA22},
+ [USECASE_AUDIO_FM_TUNER_EXT] = {-1, -1, -1, -1},
+ [USECASE_ICC_CALL] = {ICC_PCM_DEVICE, ICC_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA9, MSM_FRONTEND_DAI_MULTIMEDIA9},
- [USECASE_AUDIO_RECORD_BUS] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER] = {FRONT_PASSENGER_PCM_DEVICE, FRONT_PASSENGER_PCM_DEVICE},
- [USECASE_AUDIO_RECORD_BUS_REAR_SEAT] = {REAR_SEAT_PCM_DEVICE, REAR_SEAT_PCM_DEVICE},
- [USECASE_AUDIO_PLAYBACK_SYNTHESIZER] = {-1, -1},
+ [USECASE_AUDIO_RECORD_BUS] = {AUDIO_RECORD_PCM_DEVICE, AUDIO_RECORD_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA1, MSM_FRONTEND_DAI_MULTIMEDIA1},
+ [USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER] = {FRONT_PASSENGER_PCM_DEVICE, FRONT_PASSENGER_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA23, MSM_FRONTEND_DAI_MULTIMEDIA23},
+ [USECASE_AUDIO_RECORD_BUS_REAR_SEAT] = {REAR_SEAT_PCM_DEVICE, REAR_SEAT_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA22, MSM_FRONTEND_DAI_MULTIMEDIA22},
+ [USECASE_AUDIO_PLAYBACK_SYNTHESIZER] = {-1, -1, -1, -1},
+ [USECASE_AUDIO_RECORD_ECHO_REF_EXT] = {MULTIMEDIA2_PCM_DEVICE, MULTIMEDIA2_PCM_DEVICE,
+ MSM_FRONTEND_DAI_MULTIMEDIA2, MSM_FRONTEND_DAI_MULTIMEDIA2},
};
/* Array to store sound devices */
@@ -643,6 +705,7 @@
[SND_DEVICE_OUT_BUS_SYS] = "bus-speaker",
[SND_DEVICE_OUT_BUS_NAV] = "bus-speaker",
[SND_DEVICE_OUT_BUS_PHN] = "bus-speaker",
+ [SND_DEVICE_OUT_BUS_ALR] = "bus-speaker",
[SND_DEVICE_OUT_BUS_PAX] = "bus-speaker",
[SND_DEVICE_OUT_BUS_RSE] = "bus-speaker",
[SND_DEVICE_OUT_CALL_PROXY] = "call-proxy",
@@ -802,6 +865,18 @@
[SND_DEVICE_IN_CALL_PROXY] = "call-proxy-in",
[SND_DEVICE_IN_ICC] = "speaker-mic",
[SND_DEVICE_IN_SYNTH_MIC] = "speaker-mic",
+ [SND_DEVICE_IN_ECHO_REFERENCE] = "echo-reference",
+ [SND_DEVICE_IN_HANDSET_GENERIC_DMIC] = "dmic-endfire",
+ [SND_DEVICE_IN_HANDSET_GENERIC_6MIC] = "handset-6mic",
+ [SND_DEVICE_IN_HANDSET_GENERIC_8MIC] = "handset-8mic",
+ [SND_DEVICE_IN_HANDSET_GENERIC_DMIC_AND_EC_REF_LOOPBACK] = "handset-dmic-and-ec-ref-loopback",
+ [SND_DEVICE_IN_HANDSET_GENERIC_QMIC_AND_EC_REF_LOOPBACK] = "handset-qmic-and-ec-ref-loopback",
+ [SND_DEVICE_IN_HANDSET_GENERIC_6MIC_AND_EC_REF_LOOPBACK] = "handset-6mic-and-ec-ref-loopback",
+ [SND_DEVICE_IN_HANDSET_GENERIC_8MIC_AND_EC_REF_LOOPBACK] = "handset-8mic-and-ec-ref-loopback",
+ [SND_DEVICE_IN_ECALL] = "handset-mic",
+ [SND_DEVICE_IN_SPEAKER_MIC2] = "speaker-mic2",
+ [SND_DEVICE_IN_SPEAKER_MIC3] = "speaker-mic3",
+ [SND_DEVICE_IN_HANDSET_GENERIC_6MIC_AND_SPEAKER_MIC2] = "handset-6mic-and-speaker-mic2",
};
// Platform specific backend bit width table
@@ -840,6 +915,12 @@
[GET_IN_DEVICE_INDEX(SND_DEVICE_IN_SPEAKER_MIC_NN)][EFFECT_NS] = {TX_VOICE_FLUENCE_SM_NN, 0x8000, 0x10EAF, 0x02},
[GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC_NN)][EFFECT_AEC] = {TX_VOICE_FLUENCE_SM_NN, 0x8000, 0x10EAF, 0x01},
[GET_IN_DEVICE_INDEX(SND_DEVICE_IN_HANDSET_MIC_NN)][EFFECT_NS] = {TX_VOICE_FLUENCE_SM_NN, 0x8000, 0x10EAF, 0x02},
+
+ [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_VOICE_REC_MIC)][EFFECT_AEC] = {TX_VOICE_FLUENCEV5_SM, 0x0, 0x10EAF, 0x01},
+ [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_VOICE_REC_MIC)][EFFECT_NS] = {TX_VOICE_FLUENCEV5_SM, 0x0, 0x10EAF, 0x02},
+
+ [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_VOICE_REC_DMIC_STEREO)][EFFECT_AEC] = {TX_VOICE_TM_FLUENCE_EF, 0x0, 0x10EAF, 0x01},
+ [GET_IN_DEVICE_INDEX(SND_DEVICE_IN_VOICE_REC_DMIC_STEREO)][EFFECT_NS] = {TX_VOICE_TM_FLUENCE_EF, 0x0, 0x10EAF, 0x02},
};
static struct audio_fluence_mmsecns_config fluence_mmsecns_table = {TOPOLOGY_ID_MM_HFP_ECNS, MODULE_ID_MM_HFP_ECNS,
@@ -943,6 +1024,7 @@
[SND_DEVICE_OUT_BUS_SYS] = 60,
[SND_DEVICE_OUT_BUS_NAV] = 14,
[SND_DEVICE_OUT_BUS_PHN] = 94,
+ [SND_DEVICE_OUT_BUS_ALR] = 60,
[SND_DEVICE_OUT_BUS_PAX] = 60,
[SND_DEVICE_OUT_BUS_RSE] = 60,
[SND_DEVICE_OUT_CALL_PROXY] = 32,
@@ -1039,6 +1121,7 @@
[SND_DEVICE_IN_USB_HEADSET_MULTI_CHANNEL_MIC_AEC] = 162,
[SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MULTI_CHANNEL_MIC] = 162,
[SND_DEVICE_IN_CAPTURE_FM] = 0,
+ [SND_DEVICE_IN_ECHO_REFERENCE] = 100,
[SND_DEVICE_IN_AANC_HANDSET_MIC] = 104,
[SND_DEVICE_IN_VOICE_FLUENCE_DMIC_AANC] = 105,
[SND_DEVICE_IN_QUAD_MIC] = 46,
@@ -1092,6 +1175,8 @@
[SND_DEVICE_IN_CALL_PROXY] = 33,
[SND_DEVICE_IN_ICC] = 46,
[SND_DEVICE_IN_SYNTH_MIC] = 11,
+ [SND_DEVICE_IN_SPEAKER_MIC2] = 11,
+ [SND_DEVICE_IN_SPEAKER_MIC3] = 11,
};
struct name_to_index {
@@ -1199,6 +1284,7 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_BUS_SYS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_BUS_NAV)},
{TO_NAME_INDEX(SND_DEVICE_OUT_BUS_PHN)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_BUS_ALR)},
{TO_NAME_INDEX(SND_DEVICE_OUT_BUS_PAX)},
{TO_NAME_INDEX(SND_DEVICE_OUT_BUS_RSE)},
{TO_NAME_INDEX(SND_DEVICE_OUT_CALL_PROXY)},
@@ -1293,6 +1379,7 @@
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_RECOG_USB_HEADSET_MULTI_CHANNEL_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_USB_HEADSET_MULTI_CHANNEL_MIC_AEC)},
{TO_NAME_INDEX(SND_DEVICE_IN_CAPTURE_FM)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_ECHO_REFERENCE)},
{TO_NAME_INDEX(SND_DEVICE_IN_AANC_HANDSET_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_VOICE_FLUENCE_DMIC_AANC)},
{TO_NAME_INDEX(SND_DEVICE_IN_QUAD_MIC)},
@@ -1356,6 +1443,16 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_ICC)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SYNTH_SPKR)},
{TO_NAME_INDEX(SND_DEVICE_IN_SYNTH_MIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_DMIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_6MIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_8MIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_DMIC_AND_EC_REF_LOOPBACK)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_QMIC_AND_EC_REF_LOOPBACK)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_6MIC_AND_EC_REF_LOOPBACK)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_8MIC_AND_EC_REF_LOOPBACK)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_MIC2)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SPEAKER_MIC3)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_6MIC_AND_SPEAKER_MIC2)},
};
static char * backend_tag_table[SND_DEVICE_MAX] = {0};
@@ -1381,6 +1478,8 @@
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_OFFLOAD9)},
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_MMAP)},
{TO_NAME_INDEX(USECASE_AUDIO_RECORD)},
+ {TO_NAME_INDEX(USECASE_AUDIO_RECORD2)},
+ {TO_NAME_INDEX(USECASE_AUDIO_RECORD3)},
{TO_NAME_INDEX(USECASE_AUDIO_RECORD_COMPRESS)},
{TO_NAME_INDEX(USECASE_AUDIO_RECORD_COMPRESS2)},
{TO_NAME_INDEX(USECASE_AUDIO_RECORD_COMPRESS3)},
@@ -1425,6 +1524,7 @@
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION)},
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_NAV_GUIDANCE)},
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_PHONE)},
+ {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_ALERTS)},
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER)},
{TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_REAR_SEAT)},
{TO_NAME_INDEX(USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY)},
@@ -2431,6 +2531,8 @@
backend_tag_table[SND_DEVICE_OUT_CALL_PROXY] = strdup("call-proxy");
backend_tag_table[SND_DEVICE_OUT_HAPTICS] = strdup("haptics");
backend_tag_table[SND_DEVICE_IN_CALL_PROXY] = strdup("call-proxy-in");
+ backend_tag_table[SND_DEVICE_IN_SPEAKER_MIC2] = strdup("speaker-mic2");
+ backend_tag_table[SND_DEVICE_IN_SPEAKER_MIC3] = strdup("speaker-mic3");
hw_interface_table[SND_DEVICE_OUT_HANDSET] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_SPEAKER] = strdup("SLIMBUS_0_RX");
@@ -2531,6 +2633,7 @@
hw_interface_table[SND_DEVICE_OUT_BUS_SYS] = strdup("TERT_TDM_RX_0");
hw_interface_table[SND_DEVICE_OUT_BUS_NAV] = strdup("TERT_TDM_RX_1");
hw_interface_table[SND_DEVICE_OUT_BUS_PHN] = strdup("TERT_TDM_RX_2");
+ hw_interface_table[SND_DEVICE_OUT_BUS_ALR] = strdup("TERT_TDM_RX_0");
hw_interface_table[SND_DEVICE_OUT_BUS_PAX] = strdup("QUAT_TDM_RX_0");
hw_interface_table[SND_DEVICE_OUT_BUS_RSE] = strdup("QUIN_TDM_RX_0");
hw_interface_table[SND_DEVICE_OUT_CALL_PROXY] = strdup("CALL_PROXY_RX");
@@ -2626,8 +2729,6 @@
hw_interface_table[SND_DEVICE_IN_CAPTURE_FM] = strdup("SLIMBUS_8_TX");
hw_interface_table[SND_DEVICE_IN_AANC_HANDSET_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_QUAD_MIC] = strdup("SLIMBUS_0_TX");
- hw_interface_table[SND_DEVICE_IN_HANDSET_DMIC_STEREO] = strdup("SLIMBUS_0_TX");
- hw_interface_table[SND_DEVICE_IN_SPEAKER_DMIC_STEREO] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_CAPTURE_VI_FEEDBACK] = strdup("SLIMBUS_4_TX");
hw_interface_table[SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_1] = strdup("SLIMBUS_4_TX");
hw_interface_table[SND_DEVICE_IN_CAPTURE_VI_FEEDBACK_MONO_2] = strdup("SLIMBUS_4_TX");
@@ -2679,6 +2780,9 @@
hw_interface_table[SND_DEVICE_OUT_ICC] = strdup("TERT_TDM_RX_0");
hw_interface_table[SND_DEVICE_OUT_SYNTH_SPKR] = strdup("TERT_TDM_RX_0");
hw_interface_table[SND_DEVICE_IN_SYNTH_MIC] = strdup("TERT_TDM_TX_0");
+ hw_interface_table[SND_DEVICE_IN_ECHO_REFERENCE] = strdup("SEC_TDM_TX_0");
+ hw_interface_table[SND_DEVICE_IN_SPEAKER_MIC2] = strdup("QUAT_TDM_TX_0");
+ hw_interface_table[SND_DEVICE_IN_SPEAKER_MIC3] = strdup("SEN_TDM_TX_0");
my_data->max_mic_count = PLATFORM_DEFAULT_MIC_COUNT;
/*remove ALAC & APE from DSP decoder list based on software decoder availability*/
@@ -3054,6 +3158,10 @@
{
// support max to mono, example if max count is 3, usecase supports Three, dual and mono mic
switch (my_data->max_mic_count) {
+ case 10:
+ my_data->source_mic_type |= SOURCE_DEC_MIC;
+ case 8:
+ my_data->source_mic_type |= SOURCE_OCT_MIC;
case 6:
my_data->source_mic_type |= SOURCE_HEX_MIC;
case 4:
@@ -3526,6 +3634,10 @@
sizeof("bengal-scubaqrd-snd-card"))) {
platform_info_init(get_xml_file_path(PLATFORM_INFO_XML_PATH_SCUBA_QRD),
my_data, PLATFORM);
+ } else if (!strncmp(snd_card_name, "sa8295-adp-star-snd-card",
+ sizeof("sa8295-adp-star-snd-card"))) {
+ platform_info_init(get_xml_file_path(PLATFORM_INFO_XML_PATH_SA8295_ADP),
+ my_data, PLATFORM);
} else if (my_data->is_internal_codec && (strstr(snd_card_name, "sdm429w") == NULL)) {
platform_info_init(get_xml_file_path(PLATFORM_INFO_XML_PATH_INTCODEC_NAME),
my_data, PLATFORM);
@@ -3562,18 +3674,25 @@
snd_split_handle->form_factor);
if (!audio_extn_utils_resolve_config_file(mixer_xml_file)) {
memset(mixer_xml_file, 0, sizeof(mixer_xml_file));
- snprintf(mixer_xml_file, sizeof(mixer_xml_file), "%s_%s.xml",
- MIXER_XML_BASE_STRING, snd_split_handle->variant);
+ snprintf(mixer_xml_file, sizeof(mixer_xml_file), "%s_%s_%s.xml",
+ MIXER_XML_BASE_STRING, snd_split_handle->device,
+ snd_split_handle->snd_card);
if (!audio_extn_utils_resolve_config_file(mixer_xml_file)) {
memset(mixer_xml_file, 0, sizeof(mixer_xml_file));
snprintf(mixer_xml_file, sizeof(mixer_xml_file), "%s_%s.xml",
- MIXER_XML_BASE_STRING, snd_split_handle->snd_card);
+ MIXER_XML_BASE_STRING, snd_split_handle->variant);
if (!audio_extn_utils_resolve_config_file(mixer_xml_file)) {
memset(mixer_xml_file, 0, sizeof(mixer_xml_file));
- strlcpy(mixer_xml_file, MIXER_XML_DEFAULT_PATH, MIXER_PATH_MAX_LENGTH);
- audio_extn_utils_resolve_config_file(mixer_xml_file);
+ snprintf(mixer_xml_file, sizeof(mixer_xml_file), "%s_%s.xml",
+ MIXER_XML_BASE_STRING, snd_split_handle->snd_card);
+
+ if (!audio_extn_utils_resolve_config_file(mixer_xml_file)) {
+ memset(mixer_xml_file, 0, sizeof(mixer_xml_file));
+ strlcpy(mixer_xml_file, MIXER_XML_DEFAULT_PATH, MIXER_PATH_MAX_LENGTH);
+ audio_extn_utils_resolve_config_file(mixer_xml_file);
+ }
}
}
}
@@ -3647,6 +3766,12 @@
ALOGE("%s: Could not find the symbol acdb_send_audio_cal_v4 from %s",
__func__, LIB_ACDB_LOADER);
+ my_data->acdb_send_audio_cal_v6 = (acdb_send_audio_cal_v6_t)dlsym(my_data->acdb_handle,
+ "acdb_loader_send_audio_cal_v6");
+ if (!my_data->acdb_send_audio_cal_v6)
+ ALOGE("%s: Could not find the symbol acdb_send_audio_cal_v6 from %s",
+ __func__, LIB_ACDB_LOADER);
+
my_data->acdb_set_audio_cal = (acdb_set_audio_cal_t)dlsym(my_data->acdb_handle,
"acdb_loader_set_audio_cal_v2");
if (!my_data->acdb_set_audio_cal)
@@ -3711,10 +3836,10 @@
ALOGE("%s: dlsym error %s for acdb_loader_init_v3", __func__, dlerror());
}
- my_data->acdb_init = (acdb_init_t)dlsym(my_data->acdb_handle,
- "acdb_loader_init_v3");
+ my_data->acdb_init = (acdb_init_v2_t)dlsym(my_data->acdb_handle,
+ "acdb_loader_init_v2");
if (my_data->acdb_init == NULL) {
- ALOGE("%s: dlsym error %s for acdb_loader_init_v3", __func__, dlerror());
+ ALOGE("%s: dlsym error %s for acdb_loader_init_v2", __func__, dlerror());
goto acdb_init_fail;
}
@@ -3724,6 +3849,18 @@
ALOGE("%s: dlsym error %s for acdb_loader_reload_acdb_files_v2", __func__, dlerror());
}
+ my_data->acdb_set_fluence_nn_state = (acdb_set_fluence_nn_state_t)dlsym(
+ my_data->acdb_handle,
+ "acdb_set_fluence_nn_state");
+ if (!my_data->acdb_set_fluence_nn_state)
+ ALOGE("%s: dlsym error %s for acdb_set_fluence_nn_state", __func__, dlerror());
+
+ my_data->acdb_get_fluence_nn_state = (acdb_get_fluence_nn_state_t)dlsym(
+ my_data->acdb_handle,
+ "acdb_get_fluence_nn_state");
+ if (!my_data->acdb_get_fluence_nn_state)
+ ALOGE("%s: dlsym error %s for acdb_get_fluence_nn_state", __func__, dlerror());
+
my_data->acdb_reload = (acdb_reload_t)dlsym(my_data->acdb_handle,
"acdb_loader_reload_acdb_files");
if (my_data->acdb_reload == NULL) {
@@ -4011,6 +4148,31 @@
strdup("QUAT_MI2S_TX Channels");
}
+ my_data->current_backend_cfg[SEC_MI2S_RX_BACKEND].samplerate_mixer_ctl =
+ strdup("SEC_MI2S_RX SampleRate");
+ my_data->current_backend_cfg[SEC_MI2S_RX_BACKEND].channels_mixer_ctl =
+ strdup("SEC_MI2S_RX Channels");
+ my_data->current_backend_cfg[TERT_MI2S_RX_BACKEND].bitwidth_mixer_ctl =
+ strdup("TERT_MI2S_RX Format");
+ my_data->current_backend_cfg[TERT_MI2S_RX_BACKEND].samplerate_mixer_ctl =
+ strdup("TERT_MI2S_RX SampleRate");
+ my_data->current_backend_cfg[TERT_MI2S_RX_BACKEND].channels_mixer_ctl =
+ strdup("TERT_MI2S_RX Channels");
+
+ my_data->current_backend_cfg[TERT_MI2S_TX_BACKEND].bitwidth_mixer_ctl =
+ strdup("TERT_MI2S_TX Format");
+ my_data->current_backend_cfg[TERT_MI2S_TX_BACKEND].samplerate_mixer_ctl =
+ strdup("TERT_MI2S_TX SampleRate");
+ my_data->current_backend_cfg[TERT_MI2S_TX_BACKEND].channels_mixer_ctl =
+ strdup("TERT_MI2S_TX Channels");
+
+ my_data->current_backend_cfg[QUAT_MI2S_RX_BACKEND].bitwidth_mixer_ctl =
+ strdup("QUAT_MI2S_RX Format");
+ my_data->current_backend_cfg[QUAT_MI2S_RX_BACKEND].samplerate_mixer_ctl =
+ strdup("QUAT_MI2S_RX SampleRate");
+ my_data->current_backend_cfg[QUAT_MI2S_RX_BACKEND].channels_mixer_ctl =
+ strdup("QUAT_MI2S_RX Channels");
+
my_data->current_backend_cfg[SPDIF_TX_BACKEND].bitwidth_mixer_ctl =
strdup("PRIM_SPDIF_TX Format");
my_data->current_backend_cfg[SPDIF_TX_BACKEND].samplerate_mixer_ctl =
@@ -4630,6 +4792,20 @@
return device_id;
}
+int platform_get_fe_id(audio_usecase_t usecase, int device_type)
+{
+ int fe_id = -1;
+
+ if ((usecase >= AUDIO_USECASE_MAX) || (usecase <= USECASE_INVALID)) {
+ ALOGE("%s: invalid usecase case idx %d", __func__, usecase);
+ return fe_id;
+ }
+
+ fe_id = pcm_device_table[usecase][device_type+FE_ID_TABLE_INDEX];
+
+ return fe_id;
+}
+
uint64_t getQtime()
{
uint64_t qTimerCount = 0;
@@ -5445,6 +5621,15 @@
port = HEADSET_TX_BACKEND;
else if (strcmp(backend_tag_table[snd_device], "call-proxy-in") == 0)
port = CALL_PROXY_TX_BACKEND;
+ else if (!strncmp(platform_get_snd_device_backend_interface(snd_device),
+ "QUAT_TDM_TX_0", sizeof("QUAT_TDM_TX_0")))
+ port = QUAT_TDM_TX_BACKEND;
+ else if (!strncmp(platform_get_snd_device_backend_interface(snd_device),
+ "SEN_TDM_TX_0", sizeof("SEN_TDM_TX_0")))
+ port = SEN_TDM_TX_BACKEND;
+ else if (!strncmp(platform_get_snd_device_backend_interface(snd_device),
+ "TERT_MI2S_TX", sizeof("TERT_MI2S_TX")))
+ port = TERT_MI2S_TX_BACKEND;
}
} else {
ALOGW("%s:napb: Invalid device - %d ", __func__, snd_device);
@@ -5458,17 +5643,17 @@
int app_type)
{
struct platform_data *my_data = (struct platform_data *)platform;
- int acdb_dev_id, acdb_dev_type;
+ int acdb_dev_id, acdb_dev_type, path;
int snd_device = SND_DEVICE_OUT_SPEAKER;
int new_snd_device[SND_DEVICE_OUT_END] = {0};
- int i, num_devices = 1;
+ int i, num_devices = 1, fe_id = -1;
bool is_incall_rec_usecase = false;
snd_device_t incall_rec_device;
int sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
struct audio_backend_cfg backend_cfg = {0};
bool is_bus_dev_usecase = false;
- if (voice_is_in_call_or_call_screen(my_data->adev))
+ if (voice_is_in_call_or_call_screen(my_data->adev) && (usecase->type == PCM_CAPTURE))
is_incall_rec_usecase = voice_is_in_call_rec_stream(usecase->stream.in);
if (compare_device_type(&usecase->device_list, AUDIO_DEVICE_OUT_BUS))
@@ -5476,7 +5661,7 @@
if (usecase->type == PCM_PLAYBACK)
snd_device = usecase->out_snd_device;
- else if ((usecase->type == PCM_CAPTURE) && is_incall_rec_usecase)
+ else if (is_incall_rec_usecase)
snd_device = voice_get_incall_rec_snd_device(usecase->in_snd_device);
else if ((usecase->type == PCM_HFP_CALL) || (usecase->type == PCM_CAPTURE)||
(usecase->type == ICC_CALL) || (usecase->type == SYNTH_LOOPBACK))
@@ -5574,6 +5759,26 @@
else
acdb_dev_type = ACDB_DEV_TYPE_IN;
+ path = acdb_dev_type-1;
+ fe_id = platform_get_fe_id(usecase->id, path);
+
+#ifdef PLATFORM_AUTO
+ if (my_data->acdb_send_audio_cal_v6 && (fe_id != -1) ) {
+ my_data->acdb_send_audio_cal_v6(acdb_dev_id, acdb_dev_type,
+ app_type, sample_rate, fe_id,
+ backend_cfg.sample_rate, CAL_MODE_SEND, CAL_OFFSET_ASM_TOP);
+ } else if (my_data->acdb_send_audio_cal_v4) {
+ my_data->acdb_send_audio_cal_v4(acdb_dev_id, acdb_dev_type,
+ app_type, sample_rate, path,
+ backend_cfg.sample_rate);
+ } else if (my_data->acdb_send_audio_cal_v3) {
+ my_data->acdb_send_audio_cal_v3(acdb_dev_id, acdb_dev_type,
+ app_type, sample_rate, i);
+ } else if (my_data->acdb_send_audio_cal) {
+ my_data->acdb_send_audio_cal(acdb_dev_id, acdb_dev_type, app_type,
+ sample_rate);
+ }
+#else
if (my_data->acdb_send_audio_cal_v4) {
my_data->acdb_send_audio_cal_v4(acdb_dev_id, acdb_dev_type,
app_type, sample_rate, i,
@@ -5585,6 +5790,7 @@
my_data->acdb_send_audio_cal(acdb_dev_id, acdb_dev_type, app_type,
sample_rate);
}
+#endif
}
/* send haptics audio calibration */
@@ -5595,11 +5801,11 @@
sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
if (my_data->acdb_send_audio_cal_v4) {
my_data->acdb_send_audio_cal_v4(acdb_dev_id, acdb_dev_type,
- app_type, sample_rate, i + 1,
+ app_type, sample_rate, i,
sample_rate);
} else if (my_data->acdb_send_audio_cal_v3) {
my_data->acdb_send_audio_cal_v3(acdb_dev_id, acdb_dev_type,
- app_type, sample_rate, i + 1);
+ app_type, sample_rate, i);
} else if (my_data->acdb_send_audio_cal) {
my_data->acdb_send_audio_cal(acdb_dev_id, acdb_dev_type, app_type,
sample_rate);
@@ -6276,6 +6482,31 @@
new_snd_devices[0] = SND_DEVICE_IN_HANDSET_8MIC;
new_snd_devices[1] = SND_DEVICE_IN_EC_REF_LOOPBACK;
ret = 0;
+ } else if (SND_DEVICE_IN_HANDSET_GENERIC_DMIC_AND_EC_REF_LOOPBACK == snd_device) {
+ *num_devices = 2;
+ new_snd_devices[0] = SND_DEVICE_IN_HANDSET_GENERIC_DMIC;
+ new_snd_devices[1] = SND_DEVICE_IN_EC_REF_LOOPBACK;
+ ret = 0;
+ } else if (SND_DEVICE_IN_HANDSET_GENERIC_QMIC_AND_EC_REF_LOOPBACK == snd_device) {
+ *num_devices = 2;
+ new_snd_devices[0] = SND_DEVICE_IN_HANDSET_GENERIC_QMIC;
+ new_snd_devices[1] = SND_DEVICE_IN_EC_REF_LOOPBACK;
+ ret = 0;
+ } else if (SND_DEVICE_IN_HANDSET_GENERIC_6MIC_AND_EC_REF_LOOPBACK == snd_device) {
+ *num_devices = 2;
+ new_snd_devices[0] = SND_DEVICE_IN_HANDSET_GENERIC_6MIC;
+ new_snd_devices[1] = SND_DEVICE_IN_EC_REF_LOOPBACK;
+ ret = 0;
+ } else if (SND_DEVICE_IN_HANDSET_GENERIC_8MIC_AND_EC_REF_LOOPBACK == snd_device) {
+ *num_devices = 2;
+ new_snd_devices[0] = SND_DEVICE_IN_HANDSET_GENERIC_8MIC;
+ new_snd_devices[1] = SND_DEVICE_IN_EC_REF_LOOPBACK;
+ ret = 0;
+ } else if (SND_DEVICE_IN_HANDSET_GENERIC_6MIC_AND_SPEAKER_MIC2 == snd_device) {
+ *num_devices = 2;
+ new_snd_devices[0] = SND_DEVICE_IN_HANDSET_GENERIC_6MIC;
+ new_snd_devices[1] = SND_DEVICE_IN_SPEAKER_MIC2;
+ ret = 0;
}
@@ -6831,9 +7062,8 @@
snd_device = SND_DEVICE_OUT_SPEAKER_VBAT;
else if (my_data->is_wsa_speaker)
snd_device = SND_DEVICE_OUT_SPEAKER_WSA;
- else {
+ else
snd_device = SND_DEVICE_OUT_SPEAKER;
- }
} else if (is_sco_out_device_type(&devices)) {
if (adev->swb_speech_mode != SPEECH_MODE_INVALID)
snd_device = SND_DEVICE_OUT_BT_SCO_SWB;
@@ -6887,6 +7117,7 @@
ALOGE("%s: Unknown device(s) %#x", __func__, get_device_types(&devices));
}
exit:
+ clear_devices(&devices);
ALOGV("%s: exit: snd_device(%s)", __func__, device_table[snd_device]);
return snd_device;
}
@@ -7338,7 +7569,7 @@
(my_data->source_mic_type & SOURCE_QUAD_MIC) && // AND 4mic is available
(compare_device_type(&in_devices, AUDIO_DEVICE_IN_BUILTIN_MIC) || // AND device is buit-in mic or back mic
compare_device_type(&in_devices, AUDIO_DEVICE_IN_BACK_MIC)) &&
- (my_data->fluence_in_audio_rec == true && // AND fluencepro is enabled
+ (my_data->fluence_in_audio_rec == true && (channel_count == 4) && // AND fluencepro is enabled
my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(source == AUDIO_SOURCE_CAMCORDER || // AND source is cam/mic/unprocessed
source == AUDIO_SOURCE_UNPROCESSED ||
@@ -7346,36 +7577,55 @@
snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC;
platform_set_echo_reference(adev, true, out_devices);
} else if (my_data->use_generic_handset == true && // System prop is enabled
- (my_data->ambisonic_capture == true) && // Enable Ambisonic capture
- (my_data->source_mic_type & SOURCE_QUAD_MIC) && // AND 4mic is available
- (compare_device_type(&in_devices, AUDIO_DEVICE_IN_BUILTIN_MIC) || // AND device is Built-in
- compare_device_type(&in_devices, AUDIO_DEVICE_IN_BACK_MIC)) && // OR Back-mic
+ (my_data->source_mic_type & SOURCE_QUAD_MIC) && // AND 4mic is available
+ (compare_device_type(&in_devices, AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_SPEAKER_MIC2) ||
+ compare_device_type(&in_devices, AUDIO_DEVICE_IN_BUILTIN_MIC) || // AND device is Built-in
+ compare_device_type(&in_devices, AUDIO_DEVICE_IN_BACK_MIC)) &&
+ // OR Back-mic
(source == AUDIO_SOURCE_MIC || // AND source is MIC for 16bit
source == AUDIO_SOURCE_UNPROCESSED || // OR unprocessed for 24bit
- source == AUDIO_SOURCE_CAMCORDER) && // OR camera usecase
- ((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) && // AND 4mic channel mask
- (sample_rate == 48000)) { // AND sample rate is 48Khz
+ source == AUDIO_SOURCE_CAMCORDER)) { // OR camera usecase
+
+ if ( my_data->ambisonic_capture == true )
+ {
snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC;
/* Below check is true only in LA build to set
- ambisonic profile. In LE hal client will set profile
- */
+ ambisonic profile. In LE hal client will set profile
+ */
if (my_data->ambisonic_profile == true &&
in != NULL)
strlcpy(in->profile, "record_ambisonic",
sizeof(in->profile));
if (in != NULL && !strncmp(in->profile, "record_ambisonic",
- strlen("record_ambisonic"))) {
+ strlen("record_ambisonic")))
+ {
/* Validate input stream configuration for
- Ambisonic capture.
- */
+ Ambisonic capture.
+ */
if (((int)channel_mask != (int)AUDIO_CHANNEL_INDEX_MASK_4) ||
- (sample_rate != 48000)) {
- snd_device = SND_DEVICE_NONE;
- ALOGW("Unsupported Input configuration for ambisonic capture");
- goto exit;
+ (sample_rate != 48000))
+ {
+ snd_device = SND_DEVICE_NONE;
}
}
+ }
+ else if (my_data->source_mic_type & SOURCE_DEC_MIC) {
+ if(compare_device_type(&in_devices, AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_SPEAKER_MIC2))
+ snd_device = SND_DEVICE_IN_HANDSET_GENERIC_6MIC_AND_SPEAKER_MIC2;
+ else if(channel_count == 6)
+ snd_device = SND_DEVICE_IN_HANDSET_GENERIC_6MIC;
+ } else if (my_data->source_mic_type & SOURCE_OCT_MIC) {
+ snd_device = SND_DEVICE_IN_HANDSET_GENERIC_8MIC;
+ } else if (my_data->source_mic_type & SOURCE_HEX_MIC) {
+ snd_device = SND_DEVICE_IN_HANDSET_GENERIC_6MIC;
+ } else if (my_data->source_mic_type & SOURCE_QUAD_MIC) {
+ snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC;
+ } else if (my_data->source_mic_type & SOURCE_DUAL_MIC) {
+ snd_device = SND_DEVICE_IN_HANDSET_GENERIC_DMIC;
+ } else
+ snd_device = SND_DEVICE_NONE;
+
} else if (source == AUDIO_SOURCE_CAMCORDER) {
if (compare_device_type(&in_devices, AUDIO_DEVICE_IN_BUILTIN_MIC) ||
compare_device_type(&in_devices, AUDIO_DEVICE_IN_BACK_MIC)) {
@@ -7522,10 +7772,11 @@
else if (compare_device_type(out_devices, AUDIO_DEVICE_OUT_USB_DEVICE))
reassign_device_list(&in_devices, AUDIO_DEVICE_IN_USB_DEVICE, address);
- if (list_empty(out_devices))
+ if (adev->bt_sco_on == true)
+ reassign_device_list(&in_devices, AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET, address);
+ else if (list_empty(out_devices))
reassign_device_list(&in_devices, AUDIO_DEVICE_IN_BUILTIN_MIC,
address);
-
if (in)
snd_device = get_snd_device_for_voice_comm(my_data, in, out_devices, &in_devices);
} else if (source == AUDIO_SOURCE_MIC) {
@@ -7565,6 +7816,9 @@
}
} else if (source == AUDIO_SOURCE_FM_TUNER) {
snd_device = SND_DEVICE_IN_CAPTURE_FM;
+ } else if ((source == AUDIO_SOURCE_ECHO_REFERENCE) &&
+ (uc_id == USECASE_AUDIO_RECORD_ECHO_REF_EXT)) {
+ snd_device = SND_DEVICE_IN_ECHO_REFERENCE;
} else if (source == AUDIO_SOURCE_DEFAULT) {
goto exit;
}
@@ -7638,6 +7892,9 @@
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC;
} else if (compare_device_type(&in_devices, AUDIO_DEVICE_IN_FM_TUNER)) {
snd_device = SND_DEVICE_IN_CAPTURE_FM;
+ } else if (compare_device_type(&in_devices, AUDIO_DEVICE_IN_ECHO_REFERENCE) &&
+ (uc_id == USECASE_AUDIO_RECORD_ECHO_REF_EXT)) {
+ snd_device = SND_DEVICE_IN_ECHO_REFERENCE;
} else if (audio_extn_usb_connected(NULL) &&
is_usb_in_device_type(&in_devices)) {
snd_device = fixup_usb_headset_mic_snd_device(platform,
@@ -7724,6 +7981,7 @@
}
}
exit:
+ clear_devices(&in_devices);
ALOGV("%s: exit: in_snd_device(%s)", __func__, device_table[snd_device]);
return snd_device;
}
@@ -8513,6 +8771,12 @@
}
}
+ err = str_parms_get_str(parms, "afe_loopback", value, len);
+ if (err >= 0) {
+ my_data->afe_loopback = atoi(value);
+ ALOGD("Updating afe_loopback as %d from platform XML" , my_data->afe_loopback);
+ }
+
err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_MONO_SPEAKER, value, len);
if (err >= 0) {
if (!strncmp("left", value, sizeof("left")))
@@ -9033,6 +9297,13 @@
/* Delay in Us */
int64_t platform_get_audio_source_delay(audio_source_t audio_source)
{
+ if (audio_source == AUDIO_SOURCE_ECHO_REFERENCE) {
+ /* return 0 because audio source delay is not
+ currently implemented on automotive in the
+ audio_platform_info.xml */
+ return 0;
+ }
+
if ((audio_source < AUDIO_SOURCE_DEFAULT) ||
(audio_source > AUDIO_SOURCE_MAX)) {
ALOGE("%s: Invalid audio_source = %d", __func__, audio_source);
@@ -9061,6 +9332,7 @@
case USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION:
case USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER:
case USECASE_AUDIO_PLAYBACK_PHONE:
+ case USECASE_AUDIO_PLAYBACK_ALERTS:
delay = LOW_LATENCY_PLATFORM_DELAY;
break;
case USECASE_AUDIO_PLAYBACK_OFFLOAD:
@@ -9516,7 +9788,9 @@
ALOGD("%s:becf: afe: %s mixer set to %d bit for %x format", __func__,
my_data->current_backend_cfg[backend_idx].bitwidth_mixer_ctl, bit_width, format);
for (int idx = 0; idx < MAX_CODEC_BACKENDS; idx++) {
- if (my_data->current_backend_cfg[idx].bitwidth_mixer_ctl) {
+ if (my_data->current_backend_cfg[idx].bitwidth_mixer_ctl
+ && strcmp(my_data->current_backend_cfg[idx].bitwidth_mixer_ctl,
+ my_data->current_backend_cfg[backend_idx].bitwidth_mixer_ctl) == 0) {
ctl = mixer_get_ctl_by_name(adev->mixer,
my_data->current_backend_cfg[idx].bitwidth_mixer_ctl);
id_string = platform_get_mixer_control(ctl);
@@ -9621,7 +9895,9 @@
ALOGD("%s:becf: afe: %s set to %s", __func__,
my_data->current_backend_cfg[backend_idx].samplerate_mixer_ctl, rate_str);
for (int idx = 0; idx < MAX_CODEC_BACKENDS; idx++) {
- if (my_data->current_backend_cfg[idx].samplerate_mixer_ctl) {
+ if (my_data->current_backend_cfg[idx].samplerate_mixer_ctl
+ && strcmp(my_data->current_backend_cfg[idx].samplerate_mixer_ctl,
+ my_data->current_backend_cfg[backend_idx].samplerate_mixer_ctl) == 0) {
ctl = mixer_get_ctl_by_name(adev->mixer,
my_data->current_backend_cfg[idx].samplerate_mixer_ctl);
id_string = platform_get_mixer_control(ctl);
@@ -9676,7 +9952,9 @@
ALOGD("%s:becf: afe: %s set to %s", __func__,
my_data->current_backend_cfg[backend_idx].channels_mixer_ctl, channel_cnt_str);
for (int idx = 0; idx < MAX_CODEC_BACKENDS; idx++) {
- if (my_data->current_backend_cfg[idx].channels_mixer_ctl) {
+ if (my_data->current_backend_cfg[idx].channels_mixer_ctl &&
+ strcmp(my_data->current_backend_cfg[idx].channels_mixer_ctl,
+ my_data->current_backend_cfg[backend_idx].channels_mixer_ctl) == 0) {
ctl = mixer_get_ctl_by_name(adev->mixer,
my_data->current_backend_cfg[idx].channels_mixer_ctl);
id_string = platform_get_mixer_control(ctl);
@@ -10532,6 +10810,11 @@
int backend_idx = platform_get_backend_index(snd_device);
int ret = 0;
struct audio_backend_cfg backend_cfg;
+ struct audio_custom_mtmx_in_params_info in_info = {0};
+ struct audio_custom_mtmx_in_params *in_params = NULL;
+ int new_snd_devices[SND_DEVICE_OUT_END] = {0};
+ int i, num_devices = 1;
+ struct platform_data *my_data = (struct platform_data *)adev->platform;
backend_cfg.passthrough_enabled = false;
@@ -10570,12 +10853,46 @@
backend_cfg.format,
backend_idx, usecase->id,
platform_get_snd_device_name(snd_device));
- if (platform_check_capture_codec_backend_cfg(adev, backend_idx,
- &backend_cfg, snd_device)) {
- ret = platform_set_codec_backend_cfg(adev, usecase, snd_device,
+
+ if (is_combo_audio_input_device(&usecase->stream.in->device_list) &&
+ platform_split_snd_device(my_data, snd_device, &num_devices,
+ new_snd_devices) == 0){
+
+ in_info.usecase_id[0] = usecase->id;
+ in_info.op_channels = backend_cfg.channels;
+ in_params = platform_get_custom_mtmx_in_params(adev->platform, &in_info);
+
+ for (i = 0; i < num_devices; i++) {
+ if (in_params) {
+ if(new_snd_devices[i] == SND_DEVICE_IN_SPEAKER_MIC2){
+ backend_cfg.channels = in_params->i2s_ch;
+ ALOGD("%s txbecf: set channels to %d from mtmx in params",__func__,in_params->i2s_ch);
+ } else {
+ ALOGD("%s: txbecf: set channels to %d from mtmx in params",
+ __func__, in_params->mic_ch);
+ backend_cfg.channels = in_params->mic_ch;
+ }
+ }
+ if (platform_check_capture_codec_backend_cfg(adev, platform_get_backend_index(new_snd_devices[i]),
+ &backend_cfg, new_snd_devices[i])) {
+ ret = platform_set_codec_backend_cfg(adev, usecase, new_snd_devices[i],
backend_cfg);
- if(!ret)
- return true;
+ if(!ret)
+ ret = true;
+ else
+ ret = false;
+ }
+ }
+ return ret;
+
+ } else {
+ if (platform_check_capture_codec_backend_cfg(adev, backend_idx,
+ &backend_cfg, snd_device)) {
+ ret = platform_set_codec_backend_cfg(adev, usecase, snd_device,
+ backend_cfg);
+ if(!ret)
+ return true;
+ }
}
return false;
@@ -10680,7 +10997,7 @@
return be_dai_id;
}
-int platform_set_usecase_pcm_id(audio_usecase_t usecase, int32_t type, int32_t pcm_id)
+int platform_set_usecase_pcm_id(audio_usecase_t usecase, int32_t type, int32_t pcm_id, int32_t fe_id)
{
int ret = 0;
if ((usecase <= USECASE_INVALID) || (usecase >= AUDIO_USECASE_MAX)) {
@@ -10695,6 +11012,10 @@
}
ALOGV("%s: pcm_device_table[%d][%d] = %d", __func__, usecase, type, pcm_id);
pcm_device_table[usecase][type] = pcm_id;
+
+ ALOGV("%s: pcm_device_table[%d][%d] = %d", __func__, usecase, type+2, fe_id);
+ pcm_device_table[usecase][type+FE_ID_TABLE_INDEX] = fe_id;
+
done:
return ret;
}
@@ -11495,6 +11816,12 @@
backend_idx, snd_device, 0, 0);
}
+int platform_get_is_afe_loopback_enabled(void *platform)
+{
+ struct platform_data *my_data = (struct platform_data *)platform;
+ return my_data->afe_loopback;
+}
+
int platform_set_edid_channels_configuration_v2(void *platform, int channels,
int backend_idx, snd_device_t snd_device,
int controller, int stream) {
@@ -11841,7 +12168,10 @@
if ((!strcmp(snd_card_name, "msm8953-snd-card-mtp")) ||
(!strcmp(snd_card_name, "msm8953-sku4-snd-card")) ||
(!strcmp(snd_card_name, "sdm439-sku1-snd-card")) ||
- (!strcmp(snd_card_name, "sdm439-snd-card-mtp")))
+ (!strcmp(snd_card_name, "sdm439-snd-card-mtp")) ||
+ (!strcmp(snd_card_name, "lahaina-yupikiot-snd-card")) ||
+ (!strcmp(snd_card_name, "bengal-qrd-snd-card")) ||
+ (!strcmp(snd_card_name, "bengal-scubaqrd-snd-card")))
return 1;
else
return 0;
@@ -12487,6 +12817,48 @@
return true;
}
+#ifdef SOFT_VOLUME
+int platform_get_soft_step_volume_params(struct soft_step_volume_params *volume_params, int uc_id)
+{
+ int ret = 0;
+
+ if (volume_params == NULL) {
+ ALOGE("%s: Invalid volume_params", __func__);
+ ret = -EINVAL;
+ goto done;
+ }
+
+ if ((usecase_volume_params[uc_id][0] < 0) || (usecase_volume_params[uc_id][1] < 0) || (usecase_volume_params[uc_id][2] < 0) ) {
+ ALOGE("%s: soft step volume params values are not set dynamically,will use default static values set through cal data",__func__);
+ ret = -EINVAL;
+ } else {
+ memcpy(volume_params,usecase_volume_params[uc_id],sizeof(struct soft_step_volume_params));
+ ALOGV("%s: usecase-id = %d, ramp period = %d, ramp step = %d, ramp curve = %d",
+ __func__, uc_id, volume_params->period, volume_params->step, volume_params->curve);
+ }
+done:
+ return ret;
+}
+
+int platform_set_soft_step_volume_params(int uc_id, int period, int step, int curve)
+{
+ int ret = 0;
+
+ ALOGV("%s: usecase-id = %d, ramp period = %d, ramp step = %d, ramp curve = %d",
+ __func__, uc_id, period, step, curve);
+ if ((uc_id < 0) || (uc_id >= AUDIO_USECASE_MAX)) {
+ ALOGE("%s : invalid usecase id", __func__);
+ ret = -EINVAL;
+ }
+
+ usecase_volume_params[uc_id][0] = period;
+ usecase_volume_params[uc_id][1] = step;
+ usecase_volume_params[uc_id][2] = curve;
+
+ return ret;
+}
+#endif
+
int platform_get_active_microphones(void *platform, unsigned int channels,
audio_usecase_t uc_id,
struct audio_microphone_characteristic_t *mic_array,
@@ -12560,3 +12932,37 @@
return true;
return false;
}
+
+bool platform_set_fluence_nn_state(void *platform, bool state) {
+ struct platform_data *my_data = (struct platform_data *)platform;
+
+ if (my_data->acdb_set_fluence_nn_state == NULL) {
+ ALOGE("%s: dlsym error for acdb_set_fluence_nn_state", __func__);
+ return false;
+ }
+
+ if (my_data->fluence_nn_enabled) {
+ my_data->acdb_set_fluence_nn_state(state);
+ ALOGD("%s: set fluence nn state %d", __func__, state);
+ return true;
+ }
+
+ return false;
+}
+
+int platform_get_fluence_nn_state(void *platform) {
+ struct platform_data *my_data = (struct platform_data *)platform;
+ int ret = -1;
+
+ if (my_data->acdb_get_fluence_nn_state == NULL) {
+ ALOGE("%s: dlsym error for acdb_get_fluence_nn_state", __func__);
+ return ret;
+ }
+
+ if (my_data->fluence_nn_enabled)
+ ret = my_data->acdb_get_fluence_nn_state();
+ else
+ ALOGD("fluence nn disabled");
+
+ return ret;
+}
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
old mode 100755
new mode 100644
index 5f67510..2b4191f
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2020, 2022, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -42,7 +42,9 @@
SOURCE_DUAL_MIC = 0x2, /* Target contains 2 mics */
SOURCE_THREE_MIC = 0x4, /* Target contains 3 mics */
SOURCE_QUAD_MIC = 0x8, /* Target contains 4 mics */
- SOURCE_HEX_MIC = 0x16, /* Target contains 6 mics */
+ SOURCE_HEX_MIC = 0x10, /* Target contains 6 mics */
+ SOURCE_OCT_MIC = 0x20, /* Target contains 8 mics */
+ SOURCE_DEC_MIC = 0x40,
};
enum {
@@ -201,6 +203,7 @@
SND_DEVICE_OUT_BUS_SYS,
SND_DEVICE_OUT_BUS_NAV,
SND_DEVICE_OUT_BUS_PHN,
+ SND_DEVICE_OUT_BUS_ALR,
SND_DEVICE_OUT_BUS_PAX,
SND_DEVICE_OUT_BUS_RSE,
SND_DEVICE_OUT_CALL_PROXY,
@@ -364,6 +367,19 @@
SND_DEVICE_IN_CALL_PROXY,
SND_DEVICE_IN_ICC,
SND_DEVICE_IN_SYNTH_MIC,
+ SND_DEVICE_IN_ECHO_REFERENCE,
+ SND_DEVICE_IN_HANDSET_GENERIC_DMIC,
+ SND_DEVICE_IN_HANDSET_GENERIC_6MIC,
+ SND_DEVICE_IN_HANDSET_GENERIC_8MIC,
+ SND_DEVICE_IN_HANDSET_GENERIC_DMIC_AND_EC_REF_LOOPBACK,
+ SND_DEVICE_IN_HANDSET_GENERIC_QMIC_AND_EC_REF_LOOPBACK,
+ SND_DEVICE_IN_HANDSET_GENERIC_6MIC_AND_EC_REF_LOOPBACK,
+ SND_DEVICE_IN_HANDSET_GENERIC_8MIC_AND_EC_REF_LOOPBACK,
+ SND_DEVICE_IN_HDMI_MIC_DSD,
+ SND_DEVICE_IN_ECALL,
+ SND_DEVICE_IN_SPEAKER_MIC2,
+ SND_DEVICE_IN_SPEAKER_MIC3,
+ SND_DEVICE_IN_HANDSET_GENERIC_6MIC_AND_SPEAKER_MIC2,
SND_DEVICE_IN_END,
SND_DEVICE_MAX = SND_DEVICE_IN_END,
@@ -403,6 +419,12 @@
HDMI_ARC_TX_BACKEND,
HEADSET_TX_BACKEND,
CALL_PROXY_TX_BACKEND,
+ SEC_MI2S_RX_BACKEND,
+ TERT_MI2S_RX_BACKEND,
+ TERT_MI2S_TX_BACKEND,
+ QUAT_MI2S_RX_BACKEND,
+ QUAT_TDM_TX_BACKEND,
+ SEN_TDM_TX_BACKEND,
MAX_CODEC_BACKENDS
};
@@ -492,6 +514,7 @@
#define MULTIMEDIA2_PCM_DEVICE 1
#define MULTIMEDIA3_PCM_DEVICE 4
#define MULTIMEDIA9_PCM_DEVICE 32
+#define MULTIMEDIA31_PCM_DEVICE 59
#define FM_PLAYBACK_PCM_DEVICE 5
#define FM_CAPTURE_PCM_DEVICE 6
@@ -702,6 +725,11 @@
#define HFP_ASM_RX_TX 18
#define HFP_SEC_SCO_RX -1
#define HFP_SEC_ASM_RX_TX -1
+#elif PLATFORM_MSMSTEPPE
+#define HFP_SCO_RX 12
+#define HFP_ASM_RX_TX 37
+#define HFP_SEC_SCO_RX -1
+#define HFP_SEC_ASM_RX_TX -1
#else
#define HFP_SCO_RX 23
#define HFP_ASM_RX_TX 24
@@ -725,6 +753,7 @@
#define SYS_NOTIFICATION_PCM_DEVICE 9
#define NAV_GUIDANCE_PCM_DEVICE MULTIMEDIA2_PCM_DEVICE
#define PHONE_PCM_DEVICE 12
+#define ALERTS_PCM_DEVICE MULTIMEDIA31_PCM_DEVICE
#define FRONT_PASSENGER_PCM_DEVICE 55
#define REAR_SEAT_PCM_DEVICE 54
@@ -759,6 +788,7 @@
#define TX_VOICE_FLUENCE_SM_SB 0x10F38
#define TX_VOICE_FLUENCE_MM_SB 0x10F39
#define TX_VOICE_FLUENCE_SM_NN 0x10B0F
+#define TX_VOICE_FLUENCEV5_SM 0x10F32
/* multi-mic surround ECNS zone control */
#define TOPOLOGY_ID_MM_HFP_ECNS 0x1FFF0002
@@ -834,4 +864,60 @@
char interface_name[100];
};
+enum {
+ MSM_FRONTEND_DAI_MULTIMEDIA1 = 0,
+ MSM_FRONTEND_DAI_MULTIMEDIA2,
+ MSM_FRONTEND_DAI_MULTIMEDIA3,
+ MSM_FRONTEND_DAI_MULTIMEDIA4,
+ MSM_FRONTEND_DAI_MULTIMEDIA5,
+ MSM_FRONTEND_DAI_MULTIMEDIA6,
+ MSM_FRONTEND_DAI_MULTIMEDIA7,
+ MSM_FRONTEND_DAI_MULTIMEDIA8,
+ MSM_FRONTEND_DAI_MULTIMEDIA9,
+ MSM_FRONTEND_DAI_MULTIMEDIA10,
+ MSM_FRONTEND_DAI_MULTIMEDIA11,
+ MSM_FRONTEND_DAI_MULTIMEDIA12,
+ MSM_FRONTEND_DAI_MULTIMEDIA13,
+ MSM_FRONTEND_DAI_MULTIMEDIA14,
+ MSM_FRONTEND_DAI_MULTIMEDIA15,
+ MSM_FRONTEND_DAI_MULTIMEDIA16,
+ MSM_FRONTEND_DAI_MULTIMEDIA17,
+ MSM_FRONTEND_DAI_MULTIMEDIA18,
+ MSM_FRONTEND_DAI_MULTIMEDIA19,
+ MSM_FRONTEND_DAI_MULTIMEDIA20,
+ MSM_FRONTEND_DAI_MULTIMEDIA21,
+ MSM_FRONTEND_DAI_MULTIMEDIA22,
+ MSM_FRONTEND_DAI_MULTIMEDIA23,
+ MSM_FRONTEND_DAI_MULTIMEDIA24,
+ MSM_FRONTEND_DAI_MULTIMEDIA25,
+ MSM_FRONTEND_DAI_MULTIMEDIA26,
+ MSM_FRONTEND_DAI_MULTIMEDIA27,
+ MSM_FRONTEND_DAI_MULTIMEDIA28,
+ MSM_FRONTEND_DAI_MULTIMEDIA29,
+ MSM_FRONTEND_DAI_MULTIMEDIA30,
+ MSM_FRONTEND_DAI_MULTIMEDIA31,
+ MSM_FRONTEND_DAI_MULTIMEDIA32,
+ MSM_FRONTEND_DAI_MULTIMEDIA33,
+ MSM_FRONTEND_DAI_MULTIMEDIA34,
+ MSM_FRONTEND_DAI_VOIP,
+ MSM_FRONTEND_DAI_AFE_RX,
+ MSM_FRONTEND_DAI_AFE_TX,
+ MSM_FRONTEND_DAI_VOICE_STUB,
+ MSM_FRONTEND_DAI_DTMF_RX,
+ MSM_FRONTEND_DAI_QCHAT,
+ MSM_FRONTEND_DAI_VOLTE_STUB,
+ MSM_FRONTEND_DAI_LSM1,
+ MSM_FRONTEND_DAI_LSM2,
+ MSM_FRONTEND_DAI_LSM3,
+ MSM_FRONTEND_DAI_LSM4,
+ MSM_FRONTEND_DAI_LSM5,
+ MSM_FRONTEND_DAI_LSM6,
+ MSM_FRONTEND_DAI_LSM7,
+ MSM_FRONTEND_DAI_LSM8,
+ MSM_FRONTEND_DAI_VOICE2_STUB,
+ MSM_FRONTEND_DAI_VOICEMMODE1,
+ MSM_FRONTEND_DAI_VOICEMMODE2,
+ MSM_FRONTEND_DAI_MAX,
+};
+
#endif // QCOM_AUDIO_PLATFORM_H
diff --git a/hal/platform_api.h b/hal/platform_api.h
index 922d61e..850f525 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -9,12 +9,47 @@
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
- *
+
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
+
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted (subject to the limitations in the
+ * disclaimer below) provided that the following conditions are met:
+
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+
+ * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+
+ * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+ * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+ * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
*/
#ifndef AUDIO_PLATFORM_API_H
@@ -133,6 +168,7 @@
struct audio_custom_mtmx_in_params_info in_info;
uint32_t ip_channels;
uint32_t mic_ch;
+ uint32_t i2s_ch;
uint32_t ec_ref_ch;
struct audio_custom_mtmx_params_in_ch_info in_ch_info[MAX_IN_CHANNELS];
};
@@ -257,6 +293,7 @@
/* From platform_info.c */
int platform_info_init(const char *filename, void *, caller_t);
+void platform_info_deinit();
void platform_snd_card_update(void *platform, card_status_t scard_status);
@@ -271,7 +308,7 @@
bool platform_check_and_set_capture_codec_backend_cfg(struct audio_device* adev,
struct audio_usecase *usecase, snd_device_t snd_device);
int platform_get_usecase_index(const char * usecase);
-int platform_set_usecase_pcm_id(audio_usecase_t usecase, int32_t type, int32_t pcm_id);
+int platform_set_usecase_pcm_id(audio_usecase_t usecase, int32_t type, int32_t pcm_id, int32_t fe_id);
void platform_set_echo_reference(struct audio_device *adev, bool enable,
struct listnode *out_devices);
int platform_check_and_set_swap_lr_channels(struct audio_device *adev, bool swap_channels);
@@ -333,6 +370,7 @@
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);
+int platform_get_is_afe_loopback_enabled(void *platform);
void platform_invalidate_hdmi_config(void *platform);
void platform_invalidate_backend_config(void * platform,snd_device_t snd_device);
bool platform_get_spkr_hph_single_be_native_concurrency_flag();
@@ -423,6 +461,8 @@
int platform_get_display_port_ctl_index(int controller, int stream);
bool platform_is_call_proxy_snd_device(snd_device_t snd_device);
void platform_set_audio_source_delay(audio_source_t audio_source, int delay_ms);
+bool platform_set_fluence_nn_state(void *platform, bool start);
+int platform_get_fluence_nn_state(void *platform);
int platform_get_audio_source_index(const char *audio_source_name);
bool platform_check_and_update_island_power_status(void *platform,
@@ -437,4 +477,8 @@
void platform_reset_island_power_status(void *platform, snd_device_t snd_device);
void platform_is_volume_boost_supported_device(void *platform, struct listnode *devices);
const char *platform_get_mixer_FM_RX_control(struct audio_device *adev);
+#ifdef SOFT_VOLUME
+int platform_set_soft_step_volume_params(int uc_id, int period, int step, int curve);
+int platform_get_soft_step_volume_params(struct soft_step_volume_params *volume_params, int uc_id);
+#endif
#endif // AUDIO_PLATFORM_API_H
diff --git a/hal/platform_info.c b/hal/platform_info.c
index 4ad5a5c..431ebe4 100644
--- a/hal/platform_info.c
+++ b/hal/platform_info.c
@@ -25,6 +25,40 @@
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ * Changes from Qualcomm Innovation Center are provided under the following license:
+
+ * Copyright (c) 2022, 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted (subject to the limitations in the
+ * disclaimer below) provided that the following conditions are met:
+
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+
+ * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+
+ * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+ * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+ * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#define LOG_TAG "platform_info"
@@ -42,6 +76,9 @@
#include "audio_extn.h"
#include <platform.h>
#include <math.h>
+#ifdef LINUX_ENABLED
+#include <float.h>
+#endif
#ifdef DYNAMIC_LOG_ENABLED
#include <log_xml_parser.h>
@@ -81,6 +118,9 @@
CUSTOM_MTMX_PARAM_IN_CH_INFO,
MMSECNS,
AUDIO_SOURCE_DELAY,
+#ifdef SOFT_VOLUME
+ SOFT_VOLUME_PARAMS,
+#endif
} section_t;
typedef void (* section_process_fn)(const XML_Char **attr);
@@ -118,6 +158,9 @@
static void process_custom_mtmx_param_in_ch_info(const XML_Char **attr);
static void process_fluence_mmsecns(const XML_Char **attr);
static void process_audio_source_delay(const XML_Char **attr);
+#ifdef SOFT_VOLUME
+static void process_soft_volume_params(const XML_Char **attr);
+#endif
static section_process_fn section_table[] = {
[ROOT] = process_root,
@@ -143,6 +186,9 @@
[CUSTOM_MTMX_PARAM_IN_CH_INFO] = process_custom_mtmx_param_in_ch_info,
[MMSECNS] = process_fluence_mmsecns,
[AUDIO_SOURCE_DELAY] = process_audio_source_delay,
+#ifdef SOFT_VOLUME
+ [SOFT_VOLUME_PARAMS] = process_soft_volume_params,
+#endif
};
static section_t section;
@@ -252,54 +298,59 @@
static struct audio_custom_mtmx_params_info mtmx_params_info;
static struct audio_custom_mtmx_in_params_info mtmx_in_params_info;
-/*
- * <audio_platform_info>
- * <acdb_ids>
- * <device name="???" acdb_id="???"/>
- * ...
- * ...
- * </acdb_ids>
- * <module_ids>
- * <device name="???" module_id="???"/>
- * ...
- * ...
- * </module_ids>
- * <backend_names>
- * <device name="???" backend="???"/>
- * ...
- * ...
- * </backend_names>
- * <pcm_ids>
- * <usecase name="???" type="in/out" id="???"/>
- * ...
- * ...
- * </pcm_ids>
- * <interface_names>
- * <device name="Use audio device name here, not sound device name" interface="PRIMARY_I2S" codec_type="external/internal"/>
- * ...
- * ...
- * </interface_names>
- * <config_params>
- * <param key="snd_card_name" value="msm8994-tomtom-mtp-snd-card"/>
- * <param key="operator_info" value="tmus;aa;bb;cc"/>
- * <param key="operator_info" value="sprint;xx;yy;zz"/>
- * ...
- * ...
- * </config_params>
- *
- * <operator_specific>
- * <device name="???" operator="???" mixer_path="???" acdb_id="???"/>
- * ...
- * ...
- * </operator_specific>
- *
- * </audio_platform_info>
- */
-
static void process_root(const XML_Char **attr __unused)
{
}
+#ifdef SOFT_VOLUME
+/**mapping usecase and soft volume params **/
+static void process_soft_volume_params(const XML_Char **attr)
+{
+ int index;
+
+ if (strcmp(attr[0], "name") != 0) {
+ ALOGE("%s: 'name' not found, no pcm_id set!", __func__);
+ goto done;
+ }
+
+ index = platform_get_usecase_index((char *)attr[1]);
+ if (index < 0) {
+ ALOGE("%s: usecase %s not found!",
+ __func__, attr[1]);
+ goto done;
+ }
+
+ if (strcmp(attr[2], "period") != 0) {
+ ALOGE("%s: ramp period not mentioned", __func__);
+ goto done;
+ }
+
+ int period = atoi((char *)attr[3]);
+
+ if (strcmp(attr[4], "step") != 0) {
+ ALOGE("%s: ramp period not mentioned", __func__);
+ goto done;
+ }
+ int step = atoi((char *)attr[5]);
+
+ if (strcmp(attr[6], "curve") != 0) {
+ ALOGE("%s: usecase id not mentioned", __func__);
+ goto done;
+ }
+
+ int curve = atoi((char *)attr[7]);
+
+ if (platform_set_soft_step_volume_params(index, period, step, curve) < 0) {
+ ALOGE("%s: usecase %s period %d step %d curve %d ",
+ __func__, attr[1], period, step, curve);
+ goto done;
+ }
+
+done:
+ return;
+}
+#endif
+
/* mapping from usecase to pcm dev id */
static void process_pcm_id(const XML_Char **attr)
{
@@ -338,14 +389,31 @@
goto done;
}
- int id = atoi((char *)attr[5]);
+ int pcm_id = atoi((char *)attr[5]);
- if (platform_set_usecase_pcm_id(index, type, id) < 0) {
- ALOGE("%s: usecase %s type %d id %d was not set!",
- __func__, attr[1], type, id);
+#ifdef PLATFORM_AUTO
+ if (strcmp(attr[6], "fe") != 0) {
+ ALOGE("%s: fe id not mentioned", __func__);
goto done;
}
+ int fe_id = atoi((char *)attr[7]);
+
+ if (platform_set_usecase_pcm_id(index, type, pcm_id, fe_id) < 0) {
+ ALOGE("%s: usecase %s type %d pcm_id %d fe_id %d was not set!",
+ __func__, attr[1], type, pcm_id, fe_id);
+ goto done;
+ }
+#else
+ int fe_id = -1;
+
+ if (platform_set_usecase_pcm_id(index, type, pcm_id, fe_id) < 0) {
+ ALOGE("%s: usecase %s type %d pcm_id %d fe_id %d was not set!",
+ __func__, attr[1], type, pcm_id, fe_id);
+ goto done;
+ }
+#endif
+
done:
return;
}
@@ -1174,6 +1242,10 @@
ENUM_TO_STRING(AUDIO_DEVICE_IN_LOOPBACK),
sizeof(mtmx_in_params->in_ch_info[in_ch_idx].device)))
mtmx_in_params->ec_ref_ch = mtmx_in_params->in_ch_info[in_ch_idx].ch_count;
+ else if (!strncmp(mtmx_in_params->in_ch_info[in_ch_idx].device,
+ ENUM_TO_STRING(AUDIO_DEVICE_IN_SPEAKER_MIC2),
+ sizeof(mtmx_in_params->in_ch_info[in_ch_idx].device)))
+ mtmx_in_params->i2s_ch = mtmx_in_params->in_ch_info[in_ch_idx].ch_count;
mtmx_in_params->ip_channels += mtmx_in_params->in_ch_info[in_ch_idx].ch_count;
}
@@ -1345,7 +1417,11 @@
section = MICROPHONE_CHARACTERISTIC;
} else if (strcmp(tag_name, "snd_devices") == 0) {
section = SND_DEVICES;
- } else if (strcmp(tag_name, "device") == 0) {
+#ifdef SOFT_VOLUME
+ } else if (strcmp(tag_name, "soft_vol_params") == 0) {
+ section = SOFT_VOLUME_PARAMS;
+#endif
+ } else if (strcmp(tag_name, "device") == 0) {
if ((section != ACDB) && (section != AEC) && (section != NS) && (section != MMSECNS) &&
(section != BACKEND_NAME) && (section != BITWIDTH) &&
(section != INTERFACE_NAME) && (section != OPERATOR_SPECIFIC)) {
@@ -1486,11 +1562,19 @@
return;
}
section = CUSTOM_MTMX_PARAM_IN_CH_INFO;
+ section_process_fn fn = section_table[section];
+ fn(attr);
} else if (strcmp(tag_name, "audio_input_source_delay") == 0) {
section = AUDIO_SOURCE_DELAY;
} else if (strcmp(tag_name, "audio_source_delay") == 0) {
section_process_fn fn = section_table[section];
fn(attr);
+#ifdef SOFT_VOLUME
+ } else if (strcmp(tag_name, "vol_params") == 0) {
+ section = SOFT_VOLUME_PARAMS;
+ section_process_fn fn = section_table[section];
+ fn(attr);
+#endif
}
} else {
if(strcmp(tag_name, "config_params") == 0) {
@@ -1524,6 +1608,10 @@
section = MODULE;
} else if (strcmp(tag_name, "pcm_ids") == 0) {
section = ROOT;
+#ifdef SOFT_VOLUME
+ } else if (strcmp(tag_name, "soft_volume_params") == 0) {
+ section = ROOT;
+#endif
} else if (strcmp(tag_name, "backend_names") == 0) {
section = ROOT;
} else if (strcmp(tag_name, "config_params") == 0) {
@@ -1600,7 +1688,9 @@
my_data.caller = caller_type;
my_data.platform = platform;
- my_data.kvpairs = str_parms_create();
+
+ if (!my_data.kvpairs)
+ my_data.kvpairs = str_parms_create();
XML_SetElementHandler(parser, start_tag, end_tag);
@@ -1639,3 +1729,11 @@
pthread_mutex_unlock(&parser_lock);
return ret;
}
+
+void platform_info_deinit()
+{
+ if (my_data.kvpairs) {
+ str_parms_destroy(my_data.kvpairs);
+ my_data.kvpairs = NULL;
+ }
+}
diff --git a/hal/voice.c b/hal/voice.c
index fdca74a..355dea7 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
* Not a contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -204,6 +204,7 @@
disable_snd_device(adev, uc_info->in_snd_device);
adev->voice.lte_call = false;
+ adev->voice.uc_active = false;
list_remove(&uc_info->list);
free(uc_info);
@@ -244,6 +245,8 @@
return -ENOMEM;
}
+ adev->voice.uc_active = true;
+
uc_info->id = usecase_id;
uc_info->type = VOICE_CALL;
uc_info->stream.out = adev->current_call_output;
@@ -253,6 +256,7 @@
if (is_in_call && list_length(&uc_info->device_list) == 2) {
ALOGE("%s: Invalid combo device(%#x) for voice call", __func__,
get_device_types(&uc_info->device_list));
+ adev->voice.in_call = false;
ret = -EIO;
goto error_start_voice;
}
@@ -263,7 +267,6 @@
if (is_sco_out_device_type(&uc_info->device_list) && !adev->bt_sco_on) {
ALOGE("start_call: couldn't find BT SCO, SCO is not ready");
- adev->voice.in_call = false;
ret = -EIO;
goto error_start_voice;
}
@@ -455,6 +458,11 @@
return in_call_rec;
}
+bool voice_is_uc_active(const struct audio_device *adev)
+{
+ return adev->voice.uc_active;
+}
+
uint32_t voice_get_active_session_id(struct audio_device *adev)
{
int ret = 0;
@@ -494,7 +502,7 @@
switch (in->source) {
case AUDIO_SOURCE_VOICE_UPLINK:
if (audio_extn_compr_cap_enabled() &&
- audio_extn_compr_cap_format_supported(in->config.format)) {
+ audio_extn_compr_cap_format_supported(pcm_format_to_audio_format(in->config.format))) {
in->usecase = USECASE_INCALL_REC_UPLINK_COMPRESS;
} else
in->usecase = USECASE_INCALL_REC_UPLINK;
@@ -502,7 +510,7 @@
break;
case AUDIO_SOURCE_VOICE_DOWNLINK:
if (audio_extn_compr_cap_enabled() &&
- audio_extn_compr_cap_format_supported(in->config.format)) {
+ audio_extn_compr_cap_format_supported(pcm_format_to_audio_format(in->config.format))) {
in->usecase = USECASE_INCALL_REC_DOWNLINK_COMPRESS;
} else
in->usecase = USECASE_INCALL_REC_DOWNLINK;
@@ -510,7 +518,7 @@
break;
case AUDIO_SOURCE_VOICE_CALL:
if (audio_extn_compr_cap_enabled() &&
- audio_extn_compr_cap_format_supported(in->config.format)) {
+ audio_extn_compr_cap_format_supported(pcm_format_to_audio_format(in->config.format))) {
in->usecase = USECASE_INCALL_REC_UPLINK_AND_DOWNLINK_COMPRESS;
} else
in->usecase = USECASE_INCALL_REC_UPLINK_AND_DOWNLINK;
@@ -836,6 +844,7 @@
adev->voice.mic_mute = false;
adev->voice.in_call = false;
adev->voice.lte_call = false;
+ adev->voice.uc_active = false;
for (i = 0; i < max_voice_sessions; i++) {
adev->voice.session[i].pcm_rx = NULL;
adev->voice.session[i].pcm_tx = NULL;
diff --git a/hal/voice.h b/hal/voice.h
index 290ca3d..da456f9 100644
--- a/hal/voice.h
+++ b/hal/voice.h
@@ -62,6 +62,7 @@
float volume;
bool in_call;
bool lte_call;
+ bool uc_active;
};
struct power_mode_cfg {
@@ -93,6 +94,7 @@
bool voice_is_in_call(const struct audio_device *adev);
bool voice_is_in_call_or_call_screen(const struct audio_device *adev);
bool voice_is_in_call_rec_stream(const struct stream_in *in);
+bool voice_is_uc_active(const struct audio_device *adev);
int voice_set_mic_mute(struct audio_device *dev, bool state);
bool voice_is_lte_call_active(struct audio_device *adev);
bool voice_get_mic_mute(struct audio_device *dev);
diff --git a/mm-audio/aenc-aac/qdsp6/Android.mk b/mm-audio/aenc-aac/qdsp6/Android.mk
index 45ddf22..d8bcf05 100644
--- a/mm-audio/aenc-aac/qdsp6/Android.mk
+++ b/mm-audio/aenc-aac/qdsp6/Android.mk
@@ -50,7 +50,11 @@
LOCAL_HEADER_LIBRARIES := libomxcore_headers
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/$(BOARD_OPENSOURCE_DIR)/audio-kernel/include
+ else
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ endif # BOARD_OPENSOURCE_DIR
endif
ifneq ($(filter kona lahaina holi,$(TARGET_BOARD_PLATFORM)),)
diff --git a/mm-audio/aenc-amrnb/qdsp6/Android.mk b/mm-audio/aenc-amrnb/qdsp6/Android.mk
index 7ccc7db..648d932 100644
--- a/mm-audio/aenc-amrnb/qdsp6/Android.mk
+++ b/mm-audio/aenc-amrnb/qdsp6/Android.mk
@@ -51,7 +51,11 @@
LOCAL_HEADER_LIBRARIES := libomxcore_headers
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/$(BOARD_OPENSOURCE_DIR)/audio-kernel/include
+ else
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ endif # BOARD_OPENSOURCE_DIR
endif
ifneq ($(filter kona lahaina holi,$(TARGET_BOARD_PLATFORM)),)
diff --git a/mm-audio/aenc-evrc/qdsp6/Android.mk b/mm-audio/aenc-evrc/qdsp6/Android.mk
index 3971470..5022ea1 100644
--- a/mm-audio/aenc-evrc/qdsp6/Android.mk
+++ b/mm-audio/aenc-evrc/qdsp6/Android.mk
@@ -51,7 +51,11 @@
LOCAL_HEADER_LIBRARIES := libomxcore_headers
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/$(BOARD_OPENSOURCE_DIR)/audio-kernel/include
+ else
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ endif # BOARD_OPENSOURCE_DIR
endif
ifneq ($(filter kona lahaina holi,$(TARGET_BOARD_PLATFORM)),)
diff --git a/mm-audio/aenc-g711/qdsp6/Android.mk b/mm-audio/aenc-g711/qdsp6/Android.mk
index a1a59e3..7b23221 100644
--- a/mm-audio/aenc-g711/qdsp6/Android.mk
+++ b/mm-audio/aenc-g711/qdsp6/Android.mk
@@ -52,7 +52,11 @@
LOCAL_HEADER_LIBRARIES := libomxcore_headers
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/$(BOARD_OPENSOURCE_DIR)/audio-kernel/include
+ else
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ endif # BOARD_OPENSOURCE_DIR
endif
diff --git a/mm-audio/aenc-qcelp13/qdsp6/Android.mk b/mm-audio/aenc-qcelp13/qdsp6/Android.mk
index f071d23..8b7ee03 100644
--- a/mm-audio/aenc-qcelp13/qdsp6/Android.mk
+++ b/mm-audio/aenc-qcelp13/qdsp6/Android.mk
@@ -51,7 +51,11 @@
LOCAL_HEADER_LIBRARIES := libomxcore_headers
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/$(BOARD_OPENSOURCE_DIR)/audio-kernel/include
+ else
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ endif # BOARD_OPENSOURCE_DIR
endif
diff --git a/mm-audio/configure.ac b/mm-audio/configure.ac
index 6eabd87..c8140e6 100644
--- a/mm-audio/configure.ac
+++ b/mm-audio/configure.ac
@@ -26,6 +26,16 @@
[Specify the location of the sanitized Linux headers]),
[CPPFLAGS="$CPPFLAGS -idirafter $withval"])
+AC_ARG_WITH(sanitized-audio-headers,
+ AS_HELP_STRING([--with-sanitized-headers-audio=DIR],
+ [Specify the location of the sanitized Linux audio headers]),
+ [CPPFLAGS="$CPPFLAGS -idirafter $withval"])
+
+AC_ARG_WITH(audio-kernel-headers,
+ AS_HELP_STRING([--with-audio-kernel-headers=DIR],
+ [Specify the location of the sanitized Linux headers]),
+ [CPPFLAGS="$CPPFLAGS -idirafter $withval"])
+
AC_ARG_WITH([glib],
AC_HELP_STRING([--with-glib],
[enable glib, Build against glib. Use this when building for HLOS systems which use glib]))
diff --git a/post_proc/Android.mk b/post_proc/Android.mk
index 774198d..43cd094 100644
--- a/post_proc/Android.mk
+++ b/post_proc/Android.mk
@@ -82,16 +82,25 @@
LOCAL_C_INCLUDES := \
external/tinyalsa/include \
- vendor/qcom/opensource/audio-hal/primary-hal/hal \
$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include \
$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio \
- $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include \
- $(call include-path-for, audio-effects) \
- vendor/qcom/opensource/audio-hal/primary-hal/hal/audio_extn/
+ $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include \
+ $(call include-path-for, audio-effects)
+ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(BOARD_OPENSOURCE_DIR)/audio-hal/primary-hal/hal \
+ $(BOARD_OPENSOURCE_DIR)/audio-hal/primary-hal/hal/audio_extn/
+else
+ LOCAL_C_INCLUDES += vendor/qcom/opensource/audio-hal/primary-hal/hal \
+ vendor/qcom/opensource/audio-hal/primary-hal/hal/audio_extn/
+endif # BOARD_OPENSOURCE_DIR
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/$(BOARD_OPENSOURCE_DIR)/audio-kernel/include
+ else
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ endif # BOARD_OPENSOURCE_DIR
endif
ifeq ($(TARGET_COMPILE_WITH_MSM_KERNEL),true)
@@ -99,6 +108,10 @@
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
endif
+ifeq ($(ENABLE_AUDIO_LEGACY_TECHPACK),true)
+LOCAL_HEADER_LIBRARIES += qti_legacy_audio_kernel_uapi
+endif
+
ifneq ($(filter kona lahaina holi,$(TARGET_BOARD_PLATFORM)),)
LOCAL_SANITIZE := integer_overflow
endif
@@ -195,20 +208,29 @@
LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
LOCAL_C_INCLUDES := \
- vendor/qcom/opensource/audio-hal/primary-hal/hal \
$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include \
$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include/audio \
$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/techpack/audio/include \
external/tinyalsa/include \
$(call include-path-for, audio-effects) \
$(call include-path-for, audio-route) \
- vendor/qcom/opensource/audio-hal/primary-hal/hal/audio_extn \
external/tinycompress/include \
system/media/audio_utils/include
+ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(BOARD_OPENSOURCE_DIR)/audio-hal/primary-hal/hal \
+ $(BOARD_OPENSOURCE_DIR)/audio-hal/primary-hal/hal/audio_extn
+else
+ LOCAL_C_INCLUDES += vendor/qcom/opensource/audio-hal/primary-hal/hal \
+ vendor/qcom/opensource/audio-hal/primary-hal/hal/audio_extn
+endif # BOARD_OPENSOURCE_DIR
ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
- LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ ifneq ($(BOARD_OPENSOURCE_DIR), )
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/$(BOARD_OPENSOURCE_DIR)/audio-kernel/include
+ else
+ LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
+ endif # BOARD_OPENSOURCE_DIR
endif
ifeq ($(TARGET_COMPILE_WITH_MSM_KERNEL),true)
diff --git a/post_proc/Makefile.am b/post_proc/Makefile.am
index 8bd41ae..993058e 100644
--- a/post_proc/Makefile.am
+++ b/post_proc/Makefile.am
@@ -14,6 +14,8 @@
AM_CFLAGS += -DAFE_PROXY_ENABLED
endif
+AM_CFLAGS += -DAUDIO_GKI_ENABLED
+
if HW_ACC_EFFECT
AM_CFLAGS += -DHW_ACCELERATED_EFFECTS
c_sources += hw_accelerator.c
diff --git a/post_proc/bundle.c b/post_proc/bundle.c
index 0dbf27b..a9f95b9 100644
--- a/post_proc/bundle.c
+++ b/post_proc/bundle.c
@@ -2,6 +2,8 @@
* Copyright (c) 2013-2017, 2019, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -847,7 +849,8 @@
pReplyData == NULL ||
*replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + sizeof(uint16_t)) ||
// constrain memcpy below
- ((effect_param_t *)pCmdData)->psize > *replySize - sizeof(effect_param_t)) {
+ ((effect_param_t *)pCmdData)->psize > *replySize - sizeof(effect_param_t) ||
+ ((effect_param_t *)pCmdData)->psize > cmdSize - sizeof(effect_param_t)) {
status = -EINVAL;
ALOGW("EFFECT_CMD_GET_PARAM invalid command cmdSize %d *replySize %d",
cmdSize, *replySize);
diff --git a/post_proc/volume_listener.c b/post_proc/volume_listener.c
index 65575bc..cb8b02b 100644
--- a/post_proc/volume_listener.c
+++ b/post_proc/volume_listener.c
@@ -1,5 +1,7 @@
/*
* Copyright (c) 2015-2017, 2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ *
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -559,7 +561,7 @@
bool recompute_gain_dep_cal_Level = false;
ALOGV("cmd called EFFECT_CMD_SET_DEVICE ");
- if (p_cmd_data == NULL) {
+ if (p_cmd_data == NULL || cmd_size < sizeof(uint32_t)) {
ALOGE("%s: EFFECT_CMD_SET_DEVICE: cmd data NULL", __func__);
status = -EINVAL;
goto exit;
diff --git a/qahw/inc/qahw.h b/qahw/inc/qahw.h
index dd920e2..0950c92 100644
--- a/qahw/inc/qahw.h
+++ b/qahw/inc/qahw.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2011 The Android Open Source Project *
@@ -364,6 +364,12 @@
* Stop input stream. Returns zero on success.
*/
int qahw_in_stop_l(qahw_stream_handle_t *in_handle);
+
+/* API to set capture stream specific config parameters */
+int qahw_in_set_param_data_l(qahw_stream_handle_t *in_handle,
+ qahw_param_id param_id,
+ qahw_param_payload *payload);
+
/*
* Return the amount of input frames lost in the audio driver since the
* last call of this function.
@@ -467,6 +473,11 @@
const struct audio_port_config *sinks,
audio_patch_handle_t *handle);
+int qahw_create_audio_patch_v2_l(qahw_module_handle_t *hw_module,
+ qahw_source_port_config_t *source_port_config,
+ qahw_sink_port_config_t *sink_port_config,
+ audio_patch_handle_t *handle);
+
/* Release an audio patch */
int qahw_release_audio_patch_l(qahw_module_handle_t *hw_module,
audio_patch_handle_t handle);
diff --git a/qahw/inc/qahw_defs.h b/qahw/inc/qahw_defs.h
index b0eb332..87389b4 100644
--- a/qahw/inc/qahw_defs.h
+++ b/qahw/inc/qahw_defs.h
@@ -176,6 +176,9 @@
#define QAHW_AUDIO_FLAG_HPCM_TX 0x00020000
#define QAHW_AUDIO_FLAG_HPCM_RX 0x00040000
+/* audio output flag for timestamp mode */
+#define QAHW_OUTPUT_FLAG_TIMESTAMP 0x20000000
+
/* Query fm volume */
#define QAHW_PARAMETER_KEY_FM_VOLUME "fm_volume"
@@ -223,6 +226,19 @@
#define QAHW_AUDIO_DEVICE_OUT_SPEAKER2 0x10000000
#define QAHW_AUDIO_DEVICE_OUT_SPEAKER3 0x20000000
+#define QAHW_AUDIO_DEVICE_OUT_OPTICAL 0x40000
+
+#define QAHW_AUDIO_DEVICE_IN_SPEAKER_MIC2 0x10000000
+#define QAHW_AUDIO_DEVICE_IN_SPEAKER_MIC3 0x20000000
+
+#define QAHW_PCM_CUSTOM_CHANNEL_MAP_12 59
+#define QAHW_PCM_CUSTOM_CHANNEL_MAP_13 60
+#define QAHW_PCM_CUSTOM_CHANNEL_MAP_14 61
+#define QAHW_PCM_CUSTOM_CHANNEL_MAP_15 62
+#define QAHW_PCM_CUSTOM_CHANNEL_MAP_16 63
+
+/* Adapt update_device_list API */
+#define QAHW_UPDATE_DEVICE_LIST_ENABLED
/* type of asynchronous write callback events. Mutually exclusive */
typedef enum {
@@ -240,6 +256,11 @@
void *param,
void *cookie);
+struct qahw_stream_callback_param {
+ qahw_stream_callback_t *cb; /* callback function */
+ void *cookie; /* callback context */
+};
+
/* type of drain requested to audio_stream_out->drain(). Mutually exclusive */
typedef enum {
QAHW_DRAIN_ALL, /* drain() returns when all data has been played */
@@ -252,6 +273,8 @@
/*TBD: Extend this based on stb requirement*/
typedef enum {
QAHW_META_DATA_FLAGS_NONE = 0,
+ QAHW_META_DATA_FLAGS_TIMESTAMP_VALID,
+ QAHW_META_DATA_FLAGS_TIMESTAMP_CONTINUE,
} qahw_meta_data_flags_t;
typedef struct {
@@ -358,6 +381,7 @@
typedef enum {
QAHW_STREAM_PP_EVENT = 0,
QAHW_STREAM_ENCDEC_EVENT = 1,
+ QAHW_STREAM_IEC_61937_FMT_UPDATE_EVENT = 2,
} qahw_event_id;
/* payload format for HAL parameter
@@ -369,6 +393,11 @@
void *payload; /* the actual payload */
};
+struct qahw_in_channel_map_param {
+ uint8_t channels; /* Input Channels */
+ uint8_t channel_map[AUDIO_CHANNEL_COUNT_MAX]; /* Input Channel Map */
+};
+
struct qahw_out_channel_map_param {
uint8_t channels; /* Input Channels */
uint8_t channel_map[AUDIO_CHANNEL_COUNT_MAX]; /* Input Channel Map */
@@ -439,6 +468,21 @@
qahw_hpcm_direction direction;
} qahw_hpcm_params_t;
+struct qahw_in_ttp_offset_param {
+ uint64_t ttp_offset; /* TTP value is derived from ttp offset*/
+};
+
+struct qahw_out_channel_status_info {
+ /* Channel status is 192 bits each for CH A and CH B*/
+ char channel_status[48];
+};
+
+struct qahw_device_channel_bit_mask {
+ audio_devices_t device;
+ /* Channel status bit mask is 192 bits each for CH A and CH B*/
+ char bit_mask[48];
+};
+
typedef union {
struct qahw_source_tracking_param st_params;
struct qahw_sound_focus_param sf_params;
@@ -449,6 +493,7 @@
struct qahw_out_enable_drift_correction drift_enable_param;
struct qahw_out_correct_drift drift_correction_param;
struct qahw_adsp_event adsp_event_params;
+ struct qahw_in_channel_map_param in_channel_map_params;
struct qahw_out_channel_map_param channel_map_params;
struct qahw_device_cfg_param device_cfg_params;
struct qahw_mix_matrix_params mix_matrix_params;
@@ -457,6 +502,9 @@
struct qahw_dtmf_gen_params dtmf_gen_params;
struct qahw_tty_params tty_mode_params;
struct qahw_hpcm_params hpcm_params;
+ struct qahw_in_ttp_offset_param ttp_offset;
+ struct qahw_out_channel_status_info ch_status_info;
+ struct qahw_device_channel_bit_mask ch_bit_mask;
} qahw_param_payload;
typedef enum {
@@ -480,16 +528,34 @@
QAHW_PARAM_DTMF_GEN,
QAHW_PARAM_TTY_MODE,
QAHW_PARAM_HPCM,
+ QAHW_PARAM_IN_TTP_OFFSET,
+ QAHW_PARAM_IN_CHANNEL_MAP, /* PARAM to set i/p channel map */
+ QAHW_PARAM_CHANNEL_STATUS_INFO,
+ QAHW_PARAM_CHANNEL_BIT_MASK,
} qahw_param_id;
typedef union {
struct qahw_out_render_window_param render_window_params;
+ struct qahw_stream_callback_param stream_callback_params;
} qahw_loopback_param_payload;
typedef enum {
- QAHW_PARAM_LOOPBACK_RENDER_WINDOW /* PARAM to set render window */
+ QAHW_PARAM_LOOPBACK_RENDER_WINDOW, /* PARAM to set render window */
+ QAHW_PARAM_LOOPBACK_SET_CALLBACK
} qahw_loopback_param_id;
+typedef struct {
+ uint32_t num_sources;
+ audio_input_flags_t flags;
+ struct audio_port_config *source_config;
+} qahw_source_port_config_t;
+
+typedef struct {
+ uint32_t num_sinks;
+ audio_output_flags_t flags;
+ struct audio_port_config *sink_config;
+} qahw_sink_port_config_t;
+
/** stream direction enumeration */
typedef enum {
QAHW_STREAM_INPUT,
diff --git a/qahw/src/qahw.c b/qahw/src/qahw.c
index 2ae6906..0502f2f 100644
--- a/qahw/src/qahw.c
+++ b/qahw/src/qahw.c
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
+* Copyright (c) 2016-2021, 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
@@ -80,6 +80,15 @@
qahw_loopback_param_id param_id,
qahw_loopback_param_payload *payload);
+typedef int (*qahwi_create_audio_patch_v2_t)(const audio_hw_device_t *,
+ qahw_source_port_config_t *source_port_config,
+ qahw_sink_port_config_t *sink_port_config,
+ audio_patch_handle_t *);
+
+typedef int (*qahwi_in_set_param_data_t)(struct audio_stream_in *in,
+ qahw_param_id param_id,
+ qahw_param_payload *payload);
+
typedef struct {
audio_hw_device_t *audio_device;
char module_name[MAX_MODULE_NAME_LENGTH];
@@ -92,6 +101,7 @@
qahwi_get_param_data_t qahwi_get_param_data;
qahwi_set_param_data_t qahwi_set_param_data;
qahwi_loopback_set_param_data_t qahwi_loopback_set_param_data;
+ qahwi_create_audio_patch_v2_t qahwi_create_audio_patch_v2;
} qahw_module_t;
typedef struct {
@@ -117,6 +127,7 @@
pthread_mutex_t lock;
qahwi_in_read_v2_t qahwi_in_read_v2;
qahwi_in_stop_t qahwi_in_stop;
+ qahwi_in_set_param_data_t qahwi_in_set_param_data;
} qahw_stream_in_t;
typedef enum {
@@ -1001,6 +1012,39 @@
return str_param;
}
+/* API to get capture stream specific config parameters */
+int qahw_in_set_param_data_l(qahw_stream_handle_t *in_handle,
+ qahw_param_id param_id,
+ qahw_param_payload *payload)
+{
+ int rc = -EINVAL;
+ qahw_stream_in_t *qahw_stream_in = (qahw_stream_in_t *)in_handle;
+ audio_stream_in_t *in = NULL;
+
+ if (!payload) {
+ ALOGE("%s::Invalid param", __func__);
+ goto exit;
+ }
+
+ if (!is_valid_qahw_stream_l((void *)qahw_stream_in, STREAM_DIR_IN)) {
+ ALOGE("%s::Invalid in handle %p", __func__, in_handle);
+ goto exit;
+ }
+
+ pthread_mutex_lock(&qahw_stream_in->lock);
+ in = qahw_stream_in->stream;
+ if (qahw_stream_in->qahwi_in_set_param_data) {
+ rc = qahw_stream_in->qahwi_in_set_param_data(in, param_id, payload);
+ } else {
+ rc = -ENOSYS;
+ ALOGW("%s not supported", __func__);
+ }
+ pthread_mutex_unlock(&qahw_stream_in->lock);
+
+exit:
+ return rc;
+}
+
/*
* Read audio buffer in from audio driver. Returns number of bytes read, or a
* negative status_t. If at least one frame was read prior to the error,
@@ -1445,6 +1489,38 @@
return ret;
}
+int qahw_create_audio_patch_v2_l(qahw_module_handle_t *hw_module,
+ qahw_source_port_config_t *source_port_config,
+ qahw_sink_port_config_t *sink_port_config,
+ audio_patch_handle_t *handle)
+{
+ int ret = 0;
+ qahw_module_t *qahw_module = (qahw_module_t *)hw_module;
+ qahw_module_t *qahw_module_temp;
+
+ pthread_mutex_lock(&qahw_module_init_lock);
+ qahw_module_temp = get_qahw_module_by_ptr_l(qahw_module);
+ pthread_mutex_unlock(&qahw_module_init_lock);
+ if (qahw_module_temp == NULL) {
+ ALOGE("%s:: invalid hw module %p", __func__, qahw_module);
+ goto exit;
+ }
+
+ pthread_mutex_lock(&qahw_module->lock);
+
+ if (qahw_module->qahwi_create_audio_patch_v2){
+ ret = qahw_module->qahwi_create_audio_patch_v2(qahw_module->audio_device,
+ source_port_config, sink_port_config, handle);
+ } else {
+ ret = -ENOSYS;
+ ALOGE("%s not supported\n",__func__);
+ }
+ pthread_mutex_unlock(&qahw_module->lock);
+
+exit:
+ return ret;
+}
+
/* Release an audio patch */
int qahw_release_audio_patch_l(qahw_module_handle_t *hw_module,
audio_patch_handle_t handle)
@@ -1805,6 +1881,17 @@
/* clear any existing errors */
dlerror();
+ qahw_stream_in->qahwi_in_set_param_data = (qahwi_in_set_param_data_t)
+ dlsym(qahw_module->module->dso,
+ "qahwi_in_set_param_data");
+ if ((error = dlerror()) != NULL) {
+ ALOGI("%s: dlsym error %s for qahwi_in_set_param_data",
+ __func__, error);
+ qahw_stream_in->qahwi_in_set_param_data = NULL;
+ }
+
+ /* clear any existing errors */
+ dlerror();
qahw_stream_in->qahwi_in_stop = (qahwi_in_stop_t)
dlsym(qahw_module->module->dso, "qahwi_in_stop");
if ((error = dlerror()) != NULL) {
@@ -1971,6 +2058,11 @@
if (!qahw_module->qahwi_loopback_set_param_data)
ALOGD("%s::qahwi_loopback_set_param_data api is not defined\n", __func__);
+ qahw_module->qahwi_create_audio_patch_v2 = (qahwi_create_audio_patch_v2_t) dlsym (module->dso,
+ "qahwi_create_audio_patch_v2");
+ if (!qahw_module->qahwi_create_audio_patch_v2)
+ ALOGD("%s::qahwi_create_audio_patch_v2 api is not defined\n",__func__);
+
if (!qahw_list_count)
list_init(&qahw_module_list);
qahw_list_count++;
diff --git a/qahw_api/Makefile.am b/qahw_api/Makefile.am
index e4cbdb5..5fc0849 100644
--- a/qahw_api/Makefile.am
+++ b/qahw_api/Makefile.am
@@ -5,7 +5,8 @@
inc/qahw_effect_equalizer.h \
inc/qahw_effect_presetreverb.h \
inc/qahw_effect_virtualizer.h \
- inc/qahw_effect_visualizer.h
+ inc/qahw_effect_visualizer.h \
+ inc/qahw_effect_trumpet.h
AM_CPPFLAGS := -I $(top_srcdir)/qahw_api/inc/
AM_CPPFLAGS += -I $(PKG_CONFIG_SYSROOT_DIR)/usr/include/mm-audio/audio-hal-server
diff --git a/qahw_api/inc/qahw_api.h b/qahw_api/inc/qahw_api.h
index 80d9c64..bfeefea 100644
--- a/qahw_api/inc/qahw_api.h
+++ b/qahw_api/inc/qahw_api.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2011 The Android Open Source Project *
@@ -386,6 +386,11 @@
int qahw_in_get_capture_position(const qahw_stream_handle_t *in_handle,
int64_t *frames, int64_t *time);
+/* API to set capture stream specific config parameters */
+int qahw_in_set_param_data(qahw_stream_handle_t *in_handle,
+ qahw_param_id param_id,
+ qahw_param_payload *payload);
+
/* Module specific APIs */
/* convenience API for opening and closing an audio HAL module */
@@ -460,6 +465,11 @@
const struct audio_port_config *sinks,
audio_patch_handle_t *handle);
+int qahw_create_audio_patch_v2(qahw_module_handle_t *hw_module,
+ qahw_source_port_config_t *source_port_config,
+ qahw_sink_port_config_t *sink_port_config,
+ audio_patch_handle_t *handle);
+
/* Release an audio patch */
int qahw_release_audio_patch(qahw_module_handle_t *hw_module,
audio_patch_handle_t handle);
diff --git a/qahw_api/inc/qahw_defs.h b/qahw_api/inc/qahw_defs.h
index f979013..227a875 100644
--- a/qahw_api/inc/qahw_defs.h
+++ b/qahw_api/inc/qahw_defs.h
@@ -202,6 +202,9 @@
#define QAHW_PCM_CHANNEL_RLC 15 /* Rear left of center. */
#define QAHW_PCM_CHANNEL_RRC 16 /* Rear right of center. */
+/* Adapt update_device_list API */
+#define QAHW_UPDATE_DEVICE_LIST_ENABLED
+
/* type of asynchronous write callback events. Mutually exclusive */
typedef enum {
QAHW_STREAM_CBK_EVENT_WRITE_READY, /* non blocking write completed */
@@ -470,6 +473,18 @@
QAHW_PARAM_LOOPBACK_RENDER_WINDOW /* PARAM to set render window */
} qahw_loopback_param_id;
+typedef struct {
+ uint32_t num_sources;
+ audio_input_flags_t flags;
+ struct audio_port_config *source_config;
+} qahw_source_port_config_t;
+
+typedef struct {
+ uint32_t num_sinks;
+ audio_output_flags_t flags;
+ struct audio_port_config *sink_config;
+} qahw_sink_port_config_t;
+
/** stream direction enumeration */
typedef enum {
QAHW_STREAM_INPUT,
diff --git a/qahw_api/inc/qahw_effect_trumpet.h b/qahw_api/inc/qahw_effect_trumpet.h
new file mode 100644
index 0000000..ba81f7d
--- /dev/null
+++ b/qahw_api/inc/qahw_effect_trumpet.h
@@ -0,0 +1,114 @@
+/* Copyright (c) 2018-2019,2021, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of The Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef QAHW_EFFECT_TRUMPET_H_
+#define QAHW_EFFECT_TRUMPET_H_
+
+#include <qahw_effect_api.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define QAHW_EFFECT_TRUMPET_LIBRARY "libtrumpet.so"
+
+static const qahw_effect_uuid_t SL_IID_TRUMPET_ = {0x5e46f50b, 0xcc86, 0x4d6e, 0x9610, {0x54, 0x72, 0x76, 0x1d, 0xd0, 0xe2}};
+static const qahw_effect_uuid_t * const SL_IID_TRUMPET = &SL_IID_TRUMPET_;
+
+static const qahw_effect_uuid_t SL_IID_TRUMPET_UUID_ = {0xa52a402b, 0xe254, 0x4fb9, 0xab7a, {0x7c, 0xf5, 0x83, 0x44, 0xe3, 0xf3}};
+static const qahw_effect_uuid_t * const SL_IID_TRUMPET_UUID = &SL_IID_TRUMPET_UUID_;
+
+/* enumerated parameter settings for trumpet effect used by both set and get*/
+typedef enum {
+ TRUMPET_PARAM_ENABLE,
+ TRUMPET_PARAM_PREGAIN,
+ TRUMPET_PARAM_POSTGAIN,
+ TRUMPET_PARAM_SYSTEMGAIN,
+ TRUMPET_PARAM_MI_DV_LEVELER_STEERING,
+ TRUMPET_PARAM_MI_DIALOG_ENHANCER,
+ TRUMPET_PARAM_MI_SURROUND_COMPRESSOR,
+ TRUMPET_PARAM_MI_IEQ_STEERING,
+ TRUMPET_PARAM_DIALOG_AMOUNT,
+ TRUMPET_PARAM_DIALOG_DUCKING,
+ TRUMPET_PARAM_DIALOG_ENABLE,
+ TRUMPET_PARAM_VOLUME_LEVELER_AMOUNT,
+ TRUMPET_PARAM_VOLUME_LEVELER_IN_TARGET,
+ TRUMPET_PARAM_VOLUME_LEVELER_OUT_TARGET,
+ TRUMPET_PARAM_VOLUME_LEVELER_ENABLE,
+ TRUMPET_PARAM_VOLUME_MODELER_CALIBRATION,
+ TRUMPET_PARAM_VOLUME_MODELER_ENABLE,
+ TRUMPET_PARAM_VOLMAX_BOOST,
+ TRUMPET_PARAM_BASS_BOOST,
+ TRUMPET_PARAM_BASS_CUTOFF_FREQ,
+ TRUMPET_PARAM_BASS_WIDTH,
+ TRUMPET_PARAM_BASS_ENABLE,
+ TRUMPET_PARAM_BASS_EXTRACT_CUTOFF_FREQ,
+ TRUMPET_PARAM_BASS_EXTRACT_ENABLE,
+ TRUMPET_PARAM_REGULATOR_SET,
+ TRUMPET_PARAM_REGULATOR_OVERDRIVE,
+ TRUMPET_PARAM_REGULATOR_TIMBRE_PRESERVE,
+ TRUMPET_PARAM_REGULATOR_RELAXATION_AMT,
+ TRUMPET_PARAM_REGULATOR_SPKR_DIST_ENABLE,
+ TRUMPET_PARAM_REGULATOR_ENABLE,
+ TRUMPET_PARAM_VIRTUAL_BASS_MODE,
+ TRUMPET_PARAM_VIRTUAL_BASS_SRC_FREQ,
+ TRUMPET_PARAM_VIRTUAL_BASS_MIX_FREQ,
+ TRUMPET_PARAM_VIRTUAL_BASS_OVERALL_GAIN,
+ TRUMPET_PARAM_VIRTUAL_BASS_SUBGAINS,
+ TRUMPET_PARAM_VIRTUAL_BASS_SLOPE_GAIN,
+ TRUMPET_PARAM_FRONT_SPK_ANG,
+ TRUMPET_PARAM_SURROUND_SPK_ANG,
+ TRUMPET_PARAM_HEIGHT_SPK_ANG,
+ TRUMPET_PARAM_HEIGHT_FILTER_MODE,
+ TRUMPET_PARAM_SURROUND_BOOST,
+ TRUMPET_PARAM_SURROUND_DECODER_ENABLE,
+ TRUMPET_PARAM_CALIBRATION,
+ TRUMPET_PARAM_GRAPHICS_ENABLE,
+ TRUMPET_PARAM_GRAPHICS_SET,
+ TRUMPET_PARAM_AUDIO_OPTIMIZER_ENABLE,
+ TRUMPET_PARAM_AUDIO_OPTIMIZER_SET,
+ TRUMPET_PARAM_PROCESS_OPTIMIZER_ENABLE,
+ TRUMPET_PARAM_PROCESS_OPTIMIZER_SET,
+ TRUMPET_PARAM_IEQ_ENABLE,
+ TRUMPET_PARAM_IEQ_AMOUNT,
+ TRUMPET_PARAM_IEQ_SET,
+ TRUMPET_PARAM_OP_MODE,
+ TRUMPET_PARAM_DYNAMIC_PARAMETER,
+ TRUMPET_PARAM_INIT_INFO,
+ TRUMPET_PARAM_CENTER_SPREADING,
+ TRUMPET_PARAM_METADATA_PARAM,
+ TRUMPET_PARAM_CIDK_VALIDATE = 100,
+} qahw_trumpet_params_t;
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+
+#endif /*QAHW_EFFECT_TRUMPET_H_*/
diff --git a/qahw_api/src/qahw_api.cpp b/qahw_api/src/qahw_api.cpp
index 07d2678..a56387f 100644
--- a/qahw_api/src/qahw_api.cpp
+++ b/qahw_api/src/qahw_api.cpp
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
+* Copyright (c) 2016-2021, 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
@@ -714,6 +714,17 @@
}
}
+int qahw_in_set_param_data(qahw_stream_handle_t *in_handle,
+ qahw_param_id param_id,
+ qahw_param_payload *payload)
+{
+ ALOGV("%d:%s",__LINE__, __func__);
+ if (g_binder_enabled)
+ return -ENODEV;
+ else
+ return qahw_in_set_param_data_l(in_handle, param_id, payload);
+}
+
int qahw_in_set_parameters(qahw_stream_handle_t *in_handle, const char *kv_pairs)
{
ALOGV("%d:%s",__LINE__, __func__);
@@ -1001,6 +1012,16 @@
}
}
+int qahw_create_audio_patch_v2(qahw_module_handle_t *hw_module,
+ qahw_source_port_config_t *source_port_config,
+ qahw_sink_port_config_t *sink_port_config,
+ audio_patch_handle_t *handle)
+{
+ ALOGV("%d:%s",__LINE__, __func__);
+ return qahw_create_audio_patch_v2_l(hw_module, source_port_config,
+ sink_port_config, handle);
+}
+
int qahw_release_audio_patch(qahw_module_handle_t *hw_module,
audio_patch_handle_t handle)
{
@@ -1666,6 +1687,14 @@
return qahw_in_get_capture_position_l(in_handle, frames, time);
}
+int qahw_in_set_param_data(qahw_stream_handle_t *in_handle,
+ qahw_param_id param_id,
+ qahw_param_payload *payload)
+{
+ ALOGV("%d:%s",__LINE__, __func__);
+ return qahw_in_set_param_data_l(in_handle, param_id, payload);
+}
+
int qahw_init_check(const qahw_module_handle_t *hw_module)
{
ALOGV("%d:%s start",__LINE__, __func__);
@@ -1812,6 +1841,16 @@
handle);
}
+int qahw_create_audio_patch_v2(qahw_module_handle_t *hw_module,
+ qahw_source_port_config_t *source_port_config,
+ qahw_sink_port_config_t *sink_port_config,
+ audio_patch_handle_t *handle)
+{
+ ALOGV("%d:%s",__LINE__, __func__);
+ return qahw_create_audio_patch_v2_l(hw_module, source_port_config,
+ sink_port_config, handle);
+}
+
int qahw_release_audio_patch(qahw_module_handle_t *hw_module,
audio_patch_handle_t handle)
{
diff --git a/qahw_api/test/qahw_multi_record_test.c b/qahw_api/test/qahw_multi_record_test.c
index e033921..63f5e22 100644
--- a/qahw_api/test/qahw_multi_record_test.c
+++ b/qahw_api/test/qahw_multi_record_test.c
@@ -280,6 +280,9 @@
case 4:
params->config.channel_mask = AUDIO_CHANNEL_INDEX_MASK_4;
break;
+ case 6:
+ params->config.channel_mask = AUDIO_CHANNEL_INDEX_MASK_6;
+ break;
case 8:
params->config.channel_mask = AUDIO_CHANNEL_INDEX_MASK_8;
break;
diff --git a/qahw_api/test/qahw_playback_test.c b/qahw_api/test/qahw_playback_test.c
old mode 100644
new mode 100755
index 12be83d..b52b647
--- a/qahw_api/test/qahw_playback_test.c
+++ b/qahw_api/test/qahw_playback_test.c
@@ -2117,6 +2117,7 @@
{"ec-ref", no_argument, 0, 'L'},
{"help", no_argument, 0, 'h'},
{"bt-wbs", no_argument, 0, 'z'},
+ {"HFP-call", no_argument, 0, 'H'},
{0, 0, 0, 0}
};
@@ -2139,13 +2140,67 @@
while ((opt = getopt_long(argc,
argv,
- "-f:r:c:b:d:s:v:V:l:t:a:w:k:PD:KF:Ee:A:u:m:S:C:p::x:y:qQzLh:i:h:g:O:",
+ "-f:r:c:b:d:s:v:V:l:t:a:w:k:PD:KF:Ee:A:u:m:S:C:p::x:y:qQzLh:i:h:g:H:O:",
long_options,
&option_index)) != -1) {
fprintf(log_file, "for argument %c, value is %s\n", opt, optarg);
switch (opt) {
+ case 'H':
+ {
+ int hfp_test_rc;
+ qahw_module_handle_t* qap_out_hal_handle = NULL;
+ qahw_stream_handle_t* out_handle;
+ const char* hfp_set_sampling_rate = "hfp_set_sampling_rate=16000";
+ const char* hfp_volume = "hfp_volume=15";
+ const char* hfp_enable = "hfp_enable=true";
+ const char* hfp_disable = "hfp_enable=false";
+ audio_config_t config;
+ config.sample_rate = 48000;
+ config.channel_mask = 0x3;
+ config.format = 1;
+ config.frame_count = 0;
+ config.offload_info.version = AUDIO_OFFLOAD_INFO_VERSION_CURRENT;
+ config.offload_info.size = sizeof(audio_offload_info_t);
+
+ wakelock_acquired = request_wake_lock(wakelock_acquired, true);
+
+ qap_out_hal_handle = load_hal(AUDIO_DEVICE_NONE);
+
+ hfp_test_rc = qahw_open_output_stream(qap_out_hal_handle,
+ 0x999,
+ AUDIO_DEVICE_OUT_BUS,
+ AUDIO_OUTPUT_FLAG_PRIMARY,
+ &config,
+ &out_handle,
+ "BUS00_MEDIA");
+ fprintf(stderr, "hfp_test: qahw_open_output_stream result %d\n", hfp_test_rc);
+
+ hfp_test_rc = qahw_set_parameters(qap_out_hal_handle, hfp_set_sampling_rate);
+ fprintf(stderr, "hfp_test: hfp_set_sampling_rate result %d\n", hfp_test_rc);
+
+ hfp_test_rc = qahw_set_parameters(qap_out_hal_handle, hfp_volume);
+ fprintf(stderr, "hfp_test: hfp_volume result %d\n", hfp_test_rc);
+
+ hfp_test_rc = qahw_set_parameters(qap_out_hal_handle, hfp_enable);
+ fprintf(stderr, "hfp_test: hfp_enable result %d\n", hfp_test_rc);
+
+ sleep(10);
+
+ hfp_test_rc = qahw_set_parameters(qap_out_hal_handle, hfp_disable);
+ fprintf(stderr, "hfp_test: hfp_disable result %d\n", hfp_test_rc);
+
+ hfp_test_rc = qahw_close_output_stream(out_handle);
+
+ unload_hals();
+
+ wakelock_acquired = request_wake_lock(wakelock_acquired, false);
+
+ fprintf(stderr, "\nADL: BYE BYE\n");
+
+ return 0;
+ }
case 'f':
stream_param[i].filename = optarg;
break;
diff --git a/visualizer/offload_visualizer.c b/visualizer/offload_visualizer.c
index 65b5938..e2b6f59 100644
--- a/visualizer/offload_visualizer.c
+++ b/visualizer/offload_visualizer.c
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2013 The Android Open Source Project
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1321,7 +1322,10 @@
if (pCmdData == NULL ||
cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t)) ||
pReplyData == NULL ||
- *replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + sizeof(uint32_t))) {
+ *replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + sizeof(uint32_t)) ||
+ // constrain memcpy below
+ ((effect_param_t *)pCmdData)->psize > *replySize - sizeof(effect_param_t) ||
+ ((effect_param_t *)pCmdData)->psize > cmdSize - sizeof(effect_param_t)) {
status = -EINVAL;
goto exit;
}
diff --git a/voice_processing/voice_processing.c b/voice_processing/voice_processing.c
index 50cb7af..2847c90 100644
--- a/voice_processing/voice_processing.c
+++ b/voice_processing/voice_processing.c
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2013 The Android Open Source Project
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -582,7 +583,8 @@
pReplyData == NULL ||
*replySize < (int)sizeof(effect_param_t) ||
// constrain memcpy below
- ((effect_param_t *)pCmdData)->psize > *replySize - sizeof(effect_param_t)) {
+ ((effect_param_t *)pCmdData)->psize > *replySize - sizeof(effect_param_t) ||
+ ((effect_param_t *)pCmdData)->psize > cmdSize - sizeof(effect_param_t)) {
ALOGV("fx_command() EFFECT_CMD_GET_PARAM invalid args");
return -EINVAL;
}