Merge "configs: add support for voip record low latency path for bt"
diff --git a/configs/atoll/atoll.mk b/configs/atoll/atoll.mk
index 7b056bb..faad074 100644
--- a/configs/atoll/atoll.mk
+++ b/configs/atoll/atoll.mk
@@ -43,7 +43,7 @@
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
-AUDIO_FEATURE_ENABLED_AHAL_EXT := true
+AUDIO_FEATURE_ENABLED_AHAL_EXT := false
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
endif
@@ -185,8 +185,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/atoll/mixer_paths_wcd937x.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wcd937x.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/atoll/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/atoll/mixer_paths_wcd937xqrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wcd937xqrd.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/atoll/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/atoll/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs_stock.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml
@@ -420,10 +418,7 @@
android.hardware.audio.common@4.0-util \
android.hardware.audio@4.0-impl \
android.hardware.audio.effect@4.0 \
- android.hardware.audio.effect@4.0-impl \
- vendor.qti.hardware.audiohalext@1.0 \
- vendor.qti.hardware.audiohalext@1.0-impl \
- vendor.qti.hardware.audiohalext-utils
+ android.hardware.audio.effect@4.0-impl
# enable audio hidl hal 5.0
PRODUCT_PACKAGES += \
diff --git a/configs/atoll/audio_configs.xml b/configs/atoll/audio_configs.xml
deleted file mode 100644
index 8e3cda2..0000000
--- a/configs/atoll/audio_configs.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- APM Configs -->
- <property name="audio.deep_buffer.media" value="true"/>
- <property name="audio.offload.disable" value="false"/>
- <property name="audio.offload.min.duration.secs" value="30"/>
- <property name="audio.offload.video" value="true"/>
- <property name="persist.vendor.audio.sva.conc.enabled" value="false"/>
- <property name="persist.vendor.audio.va_concurrency_enabled" value="false"/>
- <property name="vendor.audio.av.streaming.offload.enable" value="false"/>
- <property name="vendor.audio.offload.track.enable" value="true"/>
- <property name="vendor.audio.offload.multiple.enabled" value="false"/>
- <property name="vendor.audio.rec.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.conc.fallbackpath" value=""/>
- <property name="vendor.voice.dsd.playback.conc.disabled" value="true"/>
- <property name="vendor.voice.path.for.pcm.voip" value="true"/>
- <property name="vendor.voice.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.record.conc.disabled" value="false"/>
- <property name="vendor.voice.voip.conc.disabled" value="false"/>
- <flag name="audio_extn_formats_enabled" value="true" />
- <flag name="audio_extn_hdmi_spk_enabled" value="true" />
- <flag name="use_xml_audio_policy_conf" value="true" />
- <flag name="voice_concurrency" value="false" />
- <flag name="afe_proxy_enabled" value="true" />
- <flag name="compress_voip_enabled" value="false" />
- <flag name="fm_power_opt" value="true" />
- <flag name="record_play_concurrency" value="false" />
-
- <!-- AV Configs -->
- <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
- <property name="vendor.audio.use.sw.ape.decoder" value="true"/>
- <property name="vendor.audio.use.sw.mpegh.decoder" value="false"/>
- <property name="vendor.audio.flac.sw.decoder.24bit" value="true"/>
- <property name="vendor.audio.hw.aac.encoder" value="true"/>
- <flag name="aac_adts_offload_enabled" value="true" />
- <flag name="alac_offload_enabled" value="true" />
- <flag name="ape_offload_enabled" value="true" />
- <flag name="flac_offload_enabled" value="true" />
- <flag name="pcm_offload_enabled_16" value="true" />
- <flag name="pcm_offload_enabled_24" value="true" />
- <flag name="qti_flac_decoder" value="true" />
- <flag name="vorbis_offload_enabled" value="true" />
- <flag name="wma_offload_enabled" value="true" />
-</configs>
diff --git a/configs/atoll/audio_configs_stock.xml b/configs/atoll/audio_configs_stock.xml
deleted file mode 100644
index dd0c3b4..0000000
--- a/configs/atoll/audio_configs_stock.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- AHAL Configs -->
-</configs>
diff --git a/configs/bengal/audio_configs.xml b/configs/bengal/audio_configs.xml
deleted file mode 100644
index 01b2e8c..0000000
--- a/configs/bengal/audio_configs.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019-2020, 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.
--->
-<configs>
- <!-- APM Configs -->
- <property name="audio.deep_buffer.media" value="true"/>
- <property name="audio.offload.disable" value="false"/>
- <property name="audio.offload.min.duration.secs" value="30"/>
- <property name="audio.offload.video" value="true"/>
- <property name="persist.vendor.audio.sva.conc.enabled" value="false"/>
- <property name="persist.vendor.audio.va_concurrency_enabled" value="false"/>
- <property name="vendor.audio.av.streaming.offload.enable" value="false"/>
- <property name="vendor.audio.offload.track.enable" value="true"/>
- <property name="vendor.audio.offload.multiple.enabled" value="false"/>
- <property name="vendor.audio.rec.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.conc.fallbackpath" value=""/>
- <property name="vendor.voice.dsd.playback.conc.disabled" value="true"/>
- <property name="vendor.voice.path.for.pcm.voip" value="true"/>
- <property name="vendor.voice.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.record.conc.disabled" value="false"/>
- <property name="vendor.voice.voip.conc.disabled" value="false"/>
- <flag name="audio_extn_formats_enabled" value="true" />
- <flag name="audio_extn_hdmi_spk_enabled" value="true" />
- <flag name="use_xml_audio_policy_conf" value="true" />
- <flag name="voice_concurrency" value="false" />
- <flag name="afe_proxy_enabled" value="true" />
- <flag name="compress_voip_enabled" value="false" />
- <flag name="fm_power_opt" value="true" />
- <flag name="record_play_concurrency" value="false" />
-
- <!-- AV Configs -->
- <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
- <property name="vendor.audio.use.sw.ape.decoder" value="true"/>
- <property name="vendor.audio.use.sw.mpegh.decoder" value="true"/>
- <property name="vendor.audio.flac.sw.decoder.24bit" value="true"/>
- <property name="vendor.audio.hw.aac.encoder" value="true"/>
- <flag name="aac_adts_offload_enabled" value="true" />
- <flag name="alac_offload_enabled" value="true" />
- <flag name="ape_offload_enabled" value="true" />
- <flag name="flac_offload_enabled" value="true" />
- <flag name="pcm_offload_enabled_16" value="true" />
- <flag name="pcm_offload_enabled_24" value="true" />
- <flag name="qti_flac_decoder" value="true" />
- <flag name="vorbis_offload_enabled" value="true" />
- <flag name="wma_offload_enabled" value="true" />
-</configs>
diff --git a/configs/bengal/audio_configs_stock.xml b/configs/bengal/audio_configs_stock.xml
deleted file mode 100644
index dd0c3b4..0000000
--- a/configs/bengal/audio_configs_stock.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- AHAL Configs -->
-</configs>
diff --git a/configs/bengal/bengal.mk b/configs/bengal/bengal.mk
index 4c7641b..81ba0b8 100644
--- a/configs/bengal/bengal.mk
+++ b/configs/bengal/bengal.mk
@@ -44,7 +44,7 @@
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
-AUDIO_FEATURE_ENABLED_AHAL_EXT := true
+AUDIO_FEATURE_ENABLED_AHAL_EXT := false
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
endif
@@ -185,8 +185,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/bengal/mixer_paths_scubaidp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_scubaidp.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/bengal/mixer_paths_scubaqrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_scubaqrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/bengal/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/bengal/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/bengal/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs_stock.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml
@@ -437,10 +435,7 @@
android.hardware.audio.common@4.0-util \
android.hardware.audio@4.0-impl \
android.hardware.audio.effect@4.0 \
- android.hardware.audio.effect@4.0-impl \
- vendor.qti.hardware.audiohalext@1.0 \
- vendor.qti.hardware.audiohalext@1.0-impl \
- vendor.qti.hardware.audiohalext-utils
+ android.hardware.audio.effect@4.0-impl
# enable audio hidl hal 5.0
PRODUCT_PACKAGES += \
diff --git a/configs/bengal/sound_trigger_platform_info.xml b/configs/bengal/sound_trigger_platform_info.xml
index 4850d2b..a0e9c23 100644
--- a/configs/bengal/sound_trigger_platform_info.xml
+++ b/configs/bengal/sound_trigger_platform_info.xml
@@ -259,6 +259,7 @@
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
+ <param get_module_version="false" />
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
@@ -277,6 +278,7 @@
<param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
<param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
@@ -291,6 +293,7 @@
<param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
<param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
diff --git a/configs/common/default.mk b/configs/common/default.mk
index a115af4..05c18d1 100644
--- a/configs/common/default.mk
+++ b/configs/common/default.mk
@@ -1,9 +1,5 @@
# for HIDL related packages
-PRODUCT_PACKAGES += \
- android.hardware.audio@2.0-service \
- vendor.qti.hardware.audiohalext@1.0 \
- vendor.qti.hardware.audiohalext@1.0-impl \
- vendor.qti.hardware.audiohalext-utils
+PRODUCT_PACKAGES += android.hardware.audio@2.0-service
# enable audio hidl hal 5.0
PRODUCT_PACKAGES += \
@@ -27,3 +23,6 @@
PRODUCT_PACKAGES += \
android.hardware.soundtrigger@2.2-impl \
+# enable sound trigger hidl hal 2.3
+PRODUCT_PACKAGES += \
+ android.hardware.soundtrigger@2.3-impl \
diff --git a/configs/common_au/audio_policy_configuration.xml b/configs/common_au/audio_policy_configuration.xml
index 2dc3b04..01fa0de 100644
--- a/configs/common_au/audio_policy_configuration.xml
+++ b/configs/common_au/audio_policy_configuration.xml
@@ -61,6 +61,9 @@
<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>
</attachedDevices>
<defaultOutputDevice>Media Bus</defaultOutputDevice>
<mixPorts>
@@ -254,6 +257,30 @@
</devicePort>
<devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source">
</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>
</devicePorts>
<routes>
<route type="mix" sink="Media Bus"
@@ -283,7 +310,7 @@
<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"/>
+ 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="fast input"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="voice_rx"
diff --git a/configs/common_au/car_audio_configuration.xml b/configs/common_au/car_audio_configuration.xml
index 28060ac..edf3600 100644
--- a/configs/common_au/car_audio_configuration.xml
+++ b/configs/common_au/car_audio_configuration.xml
@@ -61,6 +61,9 @@
</device>
</group>
</volumeGroups>
+ <inputDevices>
+ <inputDevice address="BUS04_INPUT"/>
+ </inputDevices>
<displays>
<display port="0"/>
</displays>
@@ -91,6 +94,9 @@
</device>
</group>
</volumeGroups>
+ <inputDevices>
+ <inputDevice address="BUS09_INPUT_FRONT_PASSENGER"/>
+ </inputDevices>
<displays>
<display port="1"/>
</displays>
@@ -114,6 +120,9 @@
</device>
</group>
</volumeGroups>
+ <inputDevices>
+ <inputDevice address="BUS17_INPUT_REAR_SEAT"/>
+ </inputDevices>
<displays>
<display port="2"/>
</displays>
diff --git a/configs/holi/audio_configs.xml b/configs/holi/audio_configs.xml
deleted file mode 100644
index bc2b171..0000000
--- a/configs/holi/audio_configs.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2020, 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.
--->
-<configs>
- <!-- APM Configs -->
- <property name="audio.deep_buffer.media" value="true"/>
- <property name="audio.offload.disable" value="false"/>
- <property name="audio.offload.min.duration.secs" value="30"/>
- <property name="audio.offload.video" value="true"/>
- <property name="persist.vendor.audio.sva.conc.enabled" value="false"/>
- <property name="persist.vendor.audio.va_concurrency_enabled" value="false"/>
- <property name="vendor.audio.av.streaming.offload.enable" value="false"/>
- <property name="vendor.audio.offload.track.enable" value="true"/>
- <property name="vendor.audio.offload.multiple.enabled" value="false"/>
- <property name="vendor.audio.rec.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.conc.fallbackpath" value=""/>
- <property name="vendor.voice.dsd.playback.conc.disabled" value="true"/>
- <property name="vendor.voice.path.for.pcm.voip" value="true"/>
- <property name="vendor.voice.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.record.conc.disabled" value="false"/>
- <property name="vendor.voice.voip.conc.disabled" value="false"/>
- <flag name="audio_extn_formats_enabled" value="true" />
- <flag name="audio_extn_hdmi_spk_enabled" value="true" />
- <flag name="use_xml_audio_policy_conf" value="true" />
- <flag name="voice_concurrency" value="false" />
- <flag name="afe_proxy_enabled" value="true" />
- <flag name="compress_voip_enabled" value="false" />
- <flag name="fm_power_opt" value="true" />
- <flag name="record_play_concurrency" value="false" />
-
- <!-- AV Configs -->
- <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
- <property name="vendor.audio.use.sw.ape.decoder" value="true"/>
- <property name="vendor.audio.use.sw.mpegh.decoder" value="true"/>
- <property name="vendor.audio.flac.sw.decoder.24bit" value="true"/>
- <property name="vendor.audio.hw.aac.encoder" value="true"/>
- <flag name="aac_adts_offload_enabled" value="true" />
- <flag name="alac_offload_enabled" value="true" />
- <flag name="ape_offload_enabled" value="true" />
- <flag name="flac_offload_enabled" value="true" />
- <flag name="pcm_offload_enabled_16" value="true" />
- <flag name="pcm_offload_enabled_24" value="true" />
- <flag name="qti_flac_decoder" value="true" />
- <flag name="vorbis_offload_enabled" value="true" />
- <flag name="wma_offload_enabled" value="true" />
-</configs>
diff --git a/configs/holi/audio_configs_stock.xml b/configs/holi/audio_configs_stock.xml
deleted file mode 100644
index dd0c3b4..0000000
--- a/configs/holi/audio_configs_stock.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- AHAL Configs -->
-</configs>
diff --git a/configs/holi/audio_io_policy.conf b/configs/holi/audio_io_policy.conf
index 996cdfe..8141490 100755
--- a/configs/holi/audio_io_policy.conf
+++ b/configs/holi/audio_io_policy.conf
@@ -123,4 +123,18 @@
bit_width 32
app_type 69949
}
+ voip_tx {
+ flags AUDIO_INPUT_FLAG_VOIP_TX
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 8000|16000|32000|48000
+ bit_width 16
+ app_type 69946
+ }
+ low_latency_voip_tx {
+ flags AUDIO_INPUT_FLAG_FAST|AUDIO_INPUT_FLAG_VOIP_TX
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 48000
+ bit_width 16
+ app_type
+ }
}
diff --git a/configs/holi/audio_platform_info.xml b/configs/holi/audio_platform_info.xml
index bb3673d..fe127d3 100644
--- a/configs/holi/audio_platform_info.xml
+++ b/configs/holi/audio_platform_info.xml
@@ -104,6 +104,7 @@
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY2" type="in" id="42"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="23" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
@@ -133,6 +134,10 @@
<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"/>
+ <!-- In the below value string, the value indicates whether the -->
+ <!-- target does not supports speaker and headphone working on -->
+ <!-- different fractional and integer sampling rate -->
+ <param key="spkr_hph_single_be_native_concurrency" value="true"/>
</config_params>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
diff --git a/configs/holi/audio_platform_info_intcodec.xml b/configs/holi/audio_platform_info_intcodec.xml
index 33b1d0a..2c9fde1 100644
--- a/configs/holi/audio_platform_info_intcodec.xml
+++ b/configs/holi/audio_platform_info_intcodec.xml
@@ -84,6 +84,7 @@
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY2" type="in" id="42"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="23" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
@@ -110,6 +111,10 @@
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="hfp_pcm_dev_id" value="39"/>
<param key="input_mic_max_count" value="4"/>
+ <!-- In the below value string, the value indicates whether the -->
+ <!-- target does not supports speaker and headphone working on -->
+ <!-- different fractional and integer sampling rate -->
+ <param key="spkr_hph_single_be_native_concurrency" value="true"/>
</config_params>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
diff --git a/configs/holi/audio_platform_info_qrd.xml b/configs/holi/audio_platform_info_qrd.xml
index 2d51fc3..05614f7 100644
--- a/configs/holi/audio_platform_info_qrd.xml
+++ b/configs/holi/audio_platform_info_qrd.xml
@@ -84,6 +84,7 @@
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY2" type="in" id="42"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="23" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
@@ -110,6 +111,10 @@
<param key="native_audio_mode" value="multiple_mix_dsp"/>
<param key="hfp_pcm_dev_id" value="39"/>
<param key="input_mic_max_count" value="2"/>
+ <!-- In the below value string, the value indicates whether the -->
+ <!-- target does not supports speaker and headphone working on -->
+ <!-- different fractional and integer sampling rate -->
+ <param key="spkr_hph_single_be_native_concurrency" value="true"/>
</config_params>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
diff --git a/configs/holi/holi.mk b/configs/holi/holi.mk
index d60a9d4..069f8f8 100644
--- a/configs/holi/holi.mk
+++ b/configs/holi/holi.mk
@@ -44,7 +44,7 @@
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
-AUDIO_FEATURE_ENABLED_AHAL_EXT := true
+AUDIO_FEATURE_ENABLED_AHAL_EXT := false
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
endif
@@ -127,8 +127,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/mixer_paths_usbc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_usbc.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrdsku1.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs_stock.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
vendor/qcom/opensource/audio-hal/primary-hal/configs/common/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
@@ -170,8 +168,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/mixer_paths_usbc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_usbc.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_qrdsku1.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs_stock.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/holi/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_tuning_mixer.txt
# Audio configuration xml's common to Holi family
@@ -192,10 +188,6 @@
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
-# Reduce client buffer size for fast audio output tracks
-PRODUCT_PROPERTY_OVERRIDES += \
- af.fast_track_multiplier=1
-
# Low latency audio buffer size in frames
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio_hal.period_size=192
@@ -246,18 +238,10 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.offload.buffer.size.kb=32
-#Enable offload audio video playback by default
-PRODUCT_PROPERTY_OVERRIDES += \
-audio.offload.video=true
-
#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
@@ -334,18 +318,6 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.hw.aac.encoder=true
-#audio becoming noisy intent broadcast delay
-PRODUCT_PROPERTY_OVERRIDES += \
-audio.sys.noisy.broadcast.delay=600
-
-#offload pausetime out duration to 3 secs to inline with other outputs
-PRODUCT_PROPERTY_OVERRIDES += \
-audio.sys.offload.pstimeout.secs=3
-
-#Set AudioFlinger client heap size
-PRODUCT_PROPERTY_OVERRIDES += \
-ro.af.client_heap_size_kbyte=7168
-
#Set HAL buffer size to samples equal to 3 ms
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio_hal.in_period_size=144
@@ -463,10 +435,7 @@
android.hardware.audio.common@4.0-util \
android.hardware.audio@4.0-impl \
android.hardware.audio.effect@4.0 \
- android.hardware.audio.effect@4.0-impl \
- vendor.qti.hardware.audiohalext@1.0 \
- vendor.qti.hardware.audiohalext@1.0-impl \
- vendor.qti.hardware.audiohalext-utils
+ android.hardware.audio.effect@4.0-impl
# enable audio hidl hal 5.0
PRODUCT_PACKAGES += \
diff --git a/configs/holi/mixer_paths.xml b/configs/holi/mixer_paths.xml
index f836bdf..0af5d80 100644
--- a/configs/holi/mixer_paths.xml
+++ b/configs/holi/mixer_paths.xml
@@ -64,6 +64,7 @@
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -283,7 +284,6 @@
<!-- 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-->
@@ -335,6 +335,7 @@
<!-- 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="ADC1_MIXER Switch" value="0" />
<ctl name="ADC2_MIXER Switch" value="0" />
<ctl name="ADC2 MUX" value="ZERO" />
<ctl name="DEC0_BCS Switch" value="0" />
@@ -346,6 +347,14 @@
<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_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF2_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" />
@@ -372,6 +381,10 @@
<ctl name="TX SMIC MUX7" value="ZERO" />
<!-- Volume controls -->
+ <ctl name="ADC1 ChMap" value="ZERO" />
+ <ctl name="ADC2 ChMap" value="ZERO" />
+ <ctl name="MBHC ChMap" value="ZERO" />
+
<ctl name="WSA_RX0 Digital Volume" value="84" />
<ctl name="WSA_RX1 Digital Volume" value="84" />
<ctl name="RX_RX0 Digital Volume" value="84" />
@@ -512,6 +525,34 @@
<path name="echo-reference bt-sco" />
</path>
+ <path name="echo-reference-voip-low-latency">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_1" />
+ <ctl name="EC Reference Channels" value="One"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency handset">
+ <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 headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency bt-sco">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="SLIM_7_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>
+
+ <path name="echo-reference-voip-low-latency bt-sco-swb">
+ <path name="echo-reference-voip-low-latency bt-sco" />
+ </path>
+
<path name="echo-reference-voip">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_1" />
<ctl name="EC Reference Channels" value="One"/>
@@ -589,7 +630,6 @@
</path>
<path name="deep-buffer-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="deep-buffer-playback bt-sco" />
</path>
@@ -696,7 +736,6 @@
</path>
<path name="low-latency-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="low-latency-playback bt-sco" />
</path>
@@ -845,7 +884,6 @@
</path>
<path name="audio-ull-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-ull-playback bt-sco" />
</path>
@@ -965,7 +1003,6 @@
</path>
<path name="compress-offload-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback bt-sco" />
</path>
@@ -1092,7 +1129,6 @@
</path>
<path name="compress-offload-playback2 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback2 bt-sco" />
</path>
@@ -1220,7 +1256,6 @@
</path>
<path name="compress-offload-playback3 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback3 bt-sco" />
</path>
@@ -1347,7 +1382,6 @@
</path>
<path name="compress-offload-playback4 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback4 bt-sco" />
</path>
@@ -1474,7 +1508,6 @@
</path>
<path name="compress-offload-playback5 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback5 bt-sco" />
</path>
@@ -1601,7 +1634,6 @@
</path>
<path name="compress-offload-playback6 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback6 bt-sco" />
</path>
@@ -1728,7 +1760,6 @@
</path>
<path name="compress-offload-playback7 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback7 bt-sco" />
</path>
@@ -1855,7 +1886,6 @@
</path>
<path name="compress-offload-playback8 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback8 bt-sco" />
</path>
@@ -1982,7 +2012,6 @@
</path>
<path name="compress-offload-playback9 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback9 bt-sco" />
</path>
@@ -2101,7 +2130,6 @@
</path>
<path name="audio-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record bt-sco" />
</path>
@@ -2126,7 +2154,6 @@
</path>
<path name="audio-record-compress bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-compress bt-sco" />
</path>
@@ -2151,7 +2178,6 @@
</path>
<path name="audio-record-compress2 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-compress2 bt-sco" />
</path>
@@ -2176,7 +2202,6 @@
</path>
<path name="low-latency-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="low-latency-record bt-sco" />
</path>
@@ -2450,7 +2475,6 @@
</path>
<path name="compress-voip-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-voip-call bt-sco" />
</path>
@@ -2509,7 +2533,6 @@
</path>
<path name="voicemmode1-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="voicemmode1-call bt-sco" />
</path>
@@ -2578,7 +2601,6 @@
</path>
<path name="voicemmode2-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="voicemmode2-call bt-sco" />
</path>
@@ -2653,7 +2675,6 @@
</path>
<path name="audio-playback-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-playback-voip bt-sco" />
</path>
@@ -2704,15 +2725,35 @@
<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" />
+ </path>
+
+ <path name="audio-record-voip-low-latency usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-wb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-swb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency headset-mic">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="audio-record-voip">
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="1" />
<ctl name="TX_DEC2 Volume" value="84" />
</path>
- <path name="audio-record-voip headset-mic">
- <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="1" />
- </path>
-
<path name="audio-record-voip usb-headset-mic">
<ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="1" />
</path>
@@ -2722,7 +2763,6 @@
</path>
<path name="audio-record-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-voip bt-sco" />
</path>
@@ -3627,7 +3667,6 @@
</path>
<path name="mmap-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="mmap-playback bt-sco" />
</path>
@@ -3712,7 +3751,6 @@
</path>
<path name="mmap-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="mmap-record bt-sco" />
</path>
diff --git a/configs/holi/mixer_paths_qrd.xml b/configs/holi/mixer_paths_qrd.xml
index c328d66..47ab0c2 100644
--- a/configs/holi/mixer_paths_qrd.xml
+++ b/configs/holi/mixer_paths_qrd.xml
@@ -64,6 +64,7 @@
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -282,7 +283,6 @@
<!-- 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-->
@@ -334,6 +334,7 @@
<!-- 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="ADC1_MIXER Switch" value="0" />
<ctl name="ADC2_MIXER Switch" value="0" />
<ctl name="ADC2 MUX" value="ZERO" />
<ctl name="DEC0_BCS Switch" value="0" />
@@ -345,6 +346,14 @@
<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_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF2_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" />
@@ -369,7 +378,9 @@
<ctl name="TX DEC7 MUX" value="MSM_DMIC" />
<ctl name="TX DMIC MUX7" value="ZERO" />
<ctl name="TX SMIC MUX7" value="ZERO" />
-
+ <ctl name="ADC1 ChMap" value="ZERO" />
+ <ctl name="ADC2 ChMap" value="ZERO" />
+ <ctl name="MBHC ChMap" value="ZERO" />
<!-- Volume controls -->
<ctl name="WSA_RX0 Digital Volume" value="84" />
<ctl name="WSA_RX1 Digital Volume" value="84" />
@@ -515,6 +526,34 @@
<path name="echo-reference bt-sco" />
</path>
+ <path name="echo-reference-voip-low-latency">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_1" />
+ <ctl name="EC Reference Channels" value="One"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency handset">
+ <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 headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency bt-sco">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="SLIM_7_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>
+
+ <path name="echo-reference-voip-low-latency bt-sco-swb">
+ <path name="echo-reference-voip-low-latency bt-sco" />
+ </path>
+
<path name="echo-reference-voip">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_1" />
<ctl name="EC Reference Channels" value="One"/>
@@ -592,7 +631,6 @@
</path>
<path name="deep-buffer-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="deep-buffer-playback bt-sco" />
</path>
@@ -699,7 +737,6 @@
</path>
<path name="low-latency-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="low-latency-playback bt-sco" />
</path>
@@ -848,7 +885,6 @@
</path>
<path name="audio-ull-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-ull-playback bt-sco" />
</path>
@@ -968,7 +1004,6 @@
</path>
<path name="compress-offload-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback bt-sco" />
</path>
@@ -1095,7 +1130,6 @@
</path>
<path name="compress-offload-playback2 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback2 bt-sco" />
</path>
@@ -1223,7 +1257,6 @@
</path>
<path name="compress-offload-playback3 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback3 bt-sco" />
</path>
@@ -1350,7 +1383,6 @@
</path>
<path name="compress-offload-playback4 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback4 bt-sco" />
</path>
@@ -1477,7 +1509,6 @@
</path>
<path name="compress-offload-playback5 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback5 bt-sco" />
</path>
@@ -1604,7 +1635,6 @@
</path>
<path name="compress-offload-playback6 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback6 bt-sco" />
</path>
@@ -1731,7 +1761,6 @@
</path>
<path name="compress-offload-playback7 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback7 bt-sco" />
</path>
@@ -1858,7 +1887,6 @@
</path>
<path name="compress-offload-playback8 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback8 bt-sco" />
</path>
@@ -1985,7 +2013,6 @@
</path>
<path name="compress-offload-playback9 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback9 bt-sco" />
</path>
@@ -2104,7 +2131,6 @@
</path>
<path name="audio-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record bt-sco" />
</path>
@@ -2129,7 +2155,6 @@
</path>
<path name="audio-record-compress bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-compress bt-sco" />
</path>
@@ -2154,7 +2179,6 @@
</path>
<path name="audio-record-compress2 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-compress2 bt-sco" />
</path>
@@ -2179,7 +2203,6 @@
</path>
<path name="low-latency-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="low-latency-record bt-sco" />
</path>
@@ -2453,7 +2476,6 @@
</path>
<path name="compress-voip-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-voip-call bt-sco" />
</path>
@@ -2512,7 +2534,6 @@
</path>
<path name="voicemmode1-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="voicemmode1-call bt-sco" />
</path>
@@ -2581,7 +2602,6 @@
</path>
<path name="voicemmode2-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="voicemmode2-call bt-sco" />
</path>
@@ -2656,7 +2676,6 @@
</path>
<path name="audio-playback-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-playback-voip bt-sco" />
</path>
@@ -2707,15 +2726,35 @@
<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" />
+ </path>
+
+ <path name="audio-record-voip-low-latency usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-wb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-swb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency headset-mic">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="audio-record-voip">
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="1" />
<ctl name="TX_DEC2 Volume" value="84" />
</path>
- <path name="audio-record-voip headset-mic">
- <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="1" />
- </path>
-
<path name="audio-record-voip usb-headset-mic">
<ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="1" />
</path>
@@ -2725,7 +2764,6 @@
</path>
<path name="audio-record-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-voip bt-sco" />
</path>
@@ -3341,6 +3379,7 @@
<ctl name="ADC2 MUX" value="INP2" />
<ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="MBHC ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="BCS Channel" value="CH5" />
</path>
<path name="amic3">
diff --git a/configs/holi/mixer_paths_usbc.xml b/configs/holi/mixer_paths_usbc.xml
index d8759a0..a05f1fd 100644
--- a/configs/holi/mixer_paths_usbc.xml
+++ b/configs/holi/mixer_paths_usbc.xml
@@ -64,6 +64,7 @@
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -283,7 +284,6 @@
<!-- 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-->
@@ -517,6 +517,34 @@
<path name="echo-reference bt-sco" />
</path>
+ <path name="echo-reference-voip-low-latency">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_1" />
+ <ctl name="EC Reference Channels" value="One"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency handset">
+ <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 headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency bt-sco">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="SLIM_7_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>
+
+ <path name="echo-reference-voip-low-latency bt-sco-swb">
+ <path name="echo-reference-voip-low-latency bt-sco" />
+ </path>
+
<path name="echo-reference-voip">
<ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_1" />
<ctl name="EC Reference Channels" value="One"/>
@@ -594,7 +622,6 @@
</path>
<path name="deep-buffer-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="deep-buffer-playback bt-sco" />
</path>
@@ -701,7 +728,6 @@
</path>
<path name="low-latency-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="low-latency-playback bt-sco" />
</path>
@@ -850,7 +876,6 @@
</path>
<path name="audio-ull-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-ull-playback bt-sco" />
</path>
@@ -970,7 +995,6 @@
</path>
<path name="compress-offload-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback bt-sco" />
</path>
@@ -1097,7 +1121,6 @@
</path>
<path name="compress-offload-playback2 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback2 bt-sco" />
</path>
@@ -1225,7 +1248,6 @@
</path>
<path name="compress-offload-playback3 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback3 bt-sco" />
</path>
@@ -1352,7 +1374,6 @@
</path>
<path name="compress-offload-playback4 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback4 bt-sco" />
</path>
@@ -1479,7 +1500,6 @@
</path>
<path name="compress-offload-playback5 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback5 bt-sco" />
</path>
@@ -1606,7 +1626,6 @@
</path>
<path name="compress-offload-playback6 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback6 bt-sco" />
</path>
@@ -1733,7 +1752,6 @@
</path>
<path name="compress-offload-playback7 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback7 bt-sco" />
</path>
@@ -1860,7 +1878,6 @@
</path>
<path name="compress-offload-playback8 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback8 bt-sco" />
</path>
@@ -1987,7 +2004,6 @@
</path>
<path name="compress-offload-playback9 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-offload-playback9 bt-sco" />
</path>
@@ -2106,7 +2122,6 @@
</path>
<path name="audio-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record bt-sco" />
</path>
@@ -2131,7 +2146,6 @@
</path>
<path name="audio-record-compress bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-compress bt-sco" />
</path>
@@ -2156,7 +2170,6 @@
</path>
<path name="audio-record-compress2 bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-compress2 bt-sco" />
</path>
@@ -2181,7 +2194,6 @@
</path>
<path name="low-latency-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="low-latency-record bt-sco" />
</path>
@@ -2455,7 +2467,6 @@
</path>
<path name="compress-voip-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="compress-voip-call bt-sco" />
</path>
@@ -2514,7 +2525,6 @@
</path>
<path name="voicemmode1-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="voicemmode1-call bt-sco" />
</path>
@@ -2583,7 +2593,6 @@
</path>
<path name="voicemmode2-call bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="voicemmode2-call bt-sco" />
</path>
@@ -2658,7 +2667,6 @@
</path>
<path name="audio-playback-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-playback-voip bt-sco" />
</path>
@@ -2709,15 +2717,35 @@
<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" />
+ </path>
+
+ <path name="audio-record-voip-low-latency usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-wb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-swb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency headset-mic">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="audio-record-voip">
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="1" />
<ctl name="TX_DEC2 Volume" value="84" />
</path>
- <path name="audio-record-voip headset-mic">
- <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="1" />
- </path>
-
<path name="audio-record-voip usb-headset-mic">
<ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="1" />
</path>
@@ -2727,7 +2755,6 @@
</path>
<path name="audio-record-voip bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="audio-record-voip bt-sco" />
</path>
@@ -3633,7 +3660,6 @@
</path>
<path name="mmap-playback bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="mmap-playback bt-sco" />
</path>
@@ -3718,7 +3744,6 @@
</path>
<path name="mmap-record bt-sco-wb">
- <ctl name="BT SampleRate" value="KHZ_16" />
<path name="mmap-record bt-sco" />
</path>
diff --git a/configs/holi/sound_trigger_platform_info.xml b/configs/holi/sound_trigger_platform_info.xml
index 4f13869..7e49bf2 100644
--- a/configs/holi/sound_trigger_platform_info.xml
+++ b/configs/holi/sound_trigger_platform_info.xml
@@ -308,6 +308,7 @@
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
+ <param get_module_version="false" />
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
@@ -333,6 +334,7 @@
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</module_params>
</lsm_usecase>
<lsm_usecase>
@@ -360,6 +362,7 @@
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</module_params>
</lsm_usecase>
<lsm_usecase>
@@ -374,6 +377,7 @@
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</module_params>
</lsm_usecase>
diff --git a/configs/kona/audio_configs.xml b/configs/kona/audio_configs.xml
deleted file mode 100644
index f5ea583..0000000
--- a/configs/kona/audio_configs.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- APM Configs -->
- <property name="audio.deep_buffer.media" value="true"/>
- <property name="audio.offload.disable" value="false"/>
- <property name="audio.offload.min.duration.secs" value="30"/>
- <property name="audio.offload.video" value="true"/>
- <property name="persist.vendor.audio.sva.conc.enabled" value="false"/>
- <property name="persist.vendor.audio.va_concurrency_enabled" value="false"/>
- <property name="vendor.audio.av.streaming.offload.enable" value="false"/>
- <property name="vendor.audio.offload.track.enable" value="true"/>
- <property name="vendor.audio.offload.multiple.enabled" value="false"/>
- <property name="vendor.audio.rec.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.conc.fallbackpath" value=""/>
- <property name="vendor.voice.dsd.playback.conc.disabled" value="true"/>
- <property name="vendor.voice.path.for.pcm.voip" value="true"/>
- <property name="vendor.voice.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.record.conc.disabled" value="false"/>
- <property name="vendor.voice.voip.conc.disabled" value="false"/>
- <flag name="audio_extn_formats_enabled" value="true" />
- <flag name="audio_extn_hdmi_spk_enabled" value="true" />
- <flag name="use_xml_audio_policy_conf" value="true" />
- <flag name="voice_concurrency" value="false" />
- <flag name="afe_proxy_enabled" value="true" />
- <flag name="compress_voip_enabled" value="false" />
- <flag name="fm_power_opt" value="true" />
- <flag name="record_play_concurrency" value="false" />
-
- <!-- AV Configs -->
- <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
- <property name="vendor.audio.use.sw.ape.decoder" value="true"/>
- <property name="vendor.audio.use.sw.mpegh.decoder" value="true"/>
- <property name="vendor.audio.flac.sw.decoder.24bit" value="true"/>
- <property name="vendor.audio.hw.aac.encoder" value="true"/>
- <flag name="aac_adts_offload_enabled" value="true" />
- <flag name="alac_offload_enabled" value="true" />
- <flag name="ape_offload_enabled" value="true" />
- <flag name="flac_offload_enabled" value="true" />
- <flag name="pcm_offload_enabled_16" value="true" />
- <flag name="pcm_offload_enabled_24" value="true" />
- <flag name="qti_flac_decoder" value="true" />
- <flag name="vorbis_offload_enabled" value="true" />
- <flag name="wma_offload_enabled" value="true" />
-</configs>
diff --git a/configs/kona/audio_configs_stock.xml b/configs/kona/audio_configs_stock.xml
deleted file mode 100644
index dd0c3b4..0000000
--- a/configs/kona/audio_configs_stock.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- AHAL Configs -->
-</configs>
diff --git a/configs/kona/kona.mk b/configs/kona/kona.mk
index bcef4e1..7de107a 100644
--- a/configs/kona/kona.mk
+++ b/configs/kona/kona.mk
@@ -44,7 +44,7 @@
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
-AUDIO_FEATURE_ENABLED_AHAL_EXT := true
+AUDIO_FEATURE_ENABLED_AHAL_EXT := false
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
endif
@@ -186,8 +186,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/mixer_paths_cdp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_cdp.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs_stock.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/kona/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
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
@@ -431,10 +429,7 @@
android.hardware.audio.common@4.0-util \
android.hardware.audio@4.0-impl \
android.hardware.audio.effect@4.0 \
- android.hardware.audio.effect@4.0-impl \
- vendor.qti.hardware.audiohalext@1.0 \
- vendor.qti.hardware.audiohalext@1.0-impl \
- vendor.qti.hardware.audiohalext-utils
+ android.hardware.audio.effect@4.0-impl
# enable audio hidl hal 5.0
PRODUCT_PACKAGES += \
diff --git a/configs/kona/sound_trigger_platform_info.xml b/configs/kona/sound_trigger_platform_info.xml
index 0f1cc9e..c24a560 100644
--- a/configs/kona/sound_trigger_platform_info.xml
+++ b/configs/kona/sound_trigger_platform_info.xml
@@ -260,6 +260,7 @@
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
+ <param get_module_version="false" />
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
@@ -284,6 +285,7 @@
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</lsm_usecase>
<lsm_usecase>
<param capture_device="HANDSET" />
@@ -309,6 +311,7 @@
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
@@ -321,6 +324,7 @@
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
diff --git a/configs/lahaina/audio_configs.xml b/configs/lahaina/audio_configs.xml
deleted file mode 100644
index f5ea583..0000000
--- a/configs/lahaina/audio_configs.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- APM Configs -->
- <property name="audio.deep_buffer.media" value="true"/>
- <property name="audio.offload.disable" value="false"/>
- <property name="audio.offload.min.duration.secs" value="30"/>
- <property name="audio.offload.video" value="true"/>
- <property name="persist.vendor.audio.sva.conc.enabled" value="false"/>
- <property name="persist.vendor.audio.va_concurrency_enabled" value="false"/>
- <property name="vendor.audio.av.streaming.offload.enable" value="false"/>
- <property name="vendor.audio.offload.track.enable" value="true"/>
- <property name="vendor.audio.offload.multiple.enabled" value="false"/>
- <property name="vendor.audio.rec.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.conc.fallbackpath" value=""/>
- <property name="vendor.voice.dsd.playback.conc.disabled" value="true"/>
- <property name="vendor.voice.path.for.pcm.voip" value="true"/>
- <property name="vendor.voice.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.record.conc.disabled" value="false"/>
- <property name="vendor.voice.voip.conc.disabled" value="false"/>
- <flag name="audio_extn_formats_enabled" value="true" />
- <flag name="audio_extn_hdmi_spk_enabled" value="true" />
- <flag name="use_xml_audio_policy_conf" value="true" />
- <flag name="voice_concurrency" value="false" />
- <flag name="afe_proxy_enabled" value="true" />
- <flag name="compress_voip_enabled" value="false" />
- <flag name="fm_power_opt" value="true" />
- <flag name="record_play_concurrency" value="false" />
-
- <!-- AV Configs -->
- <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
- <property name="vendor.audio.use.sw.ape.decoder" value="true"/>
- <property name="vendor.audio.use.sw.mpegh.decoder" value="true"/>
- <property name="vendor.audio.flac.sw.decoder.24bit" value="true"/>
- <property name="vendor.audio.hw.aac.encoder" value="true"/>
- <flag name="aac_adts_offload_enabled" value="true" />
- <flag name="alac_offload_enabled" value="true" />
- <flag name="ape_offload_enabled" value="true" />
- <flag name="flac_offload_enabled" value="true" />
- <flag name="pcm_offload_enabled_16" value="true" />
- <flag name="pcm_offload_enabled_24" value="true" />
- <flag name="qti_flac_decoder" value="true" />
- <flag name="vorbis_offload_enabled" value="true" />
- <flag name="wma_offload_enabled" value="true" />
-</configs>
diff --git a/configs/lahaina/audio_configs_stock.xml b/configs/lahaina/audio_configs_stock.xml
deleted file mode 100644
index dd0c3b4..0000000
--- a/configs/lahaina/audio_configs_stock.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- AHAL Configs -->
-</configs>
diff --git a/configs/lahaina/audio_platform_info_hdk.xml b/configs/lahaina/audio_platform_info_hdk.xml
index a5b0e17..0a34ae2 100644
--- a/configs/lahaina/audio_platform_info_hdk.xml
+++ b/configs/lahaina/audio_platform_info_hdk.xml
@@ -123,13 +123,13 @@
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<acdb_ids>
- <device name="SND_DEVICE_OUT_SPEAKER" acdb_id="15"/>
+ <device name="SND_DEVICE_OUT_SPEAKER" acdb_id="14"/>
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" acdb_id="15"/>
- <device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="124"/>
+ <device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="101"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" acdb_id="101"/>
- <device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" acdb_id="124"/>
+ <device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" acdb_id="101"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" acdb_id="101"/>
- <device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="102"/>
+ <device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="151"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED" acdb_id="150"/>
<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"/>
diff --git a/configs/lahaina/audio_platform_info_shimaidp.xml b/configs/lahaina/audio_platform_info_shimaidp.xml
index 89a6f28..4dbe324 100644
--- a/configs/lahaina/audio_platform_info_shimaidp.xml
+++ b/configs/lahaina/audio_platform_info_shimaidp.xml
@@ -106,6 +106,7 @@
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY2" type="in" id="42"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="23" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
diff --git a/configs/lahaina/audio_platform_info_shimaqrd.xml b/configs/lahaina/audio_platform_info_shimaqrd.xml
index 6154ffc..e3f4a25 100644
--- a/configs/lahaina/audio_platform_info_shimaqrd.xml
+++ b/configs/lahaina/audio_platform_info_shimaqrd.xml
@@ -107,6 +107,7 @@
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY2" type="in" id="42"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="23" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
diff --git a/configs/lahaina/lahaina.mk b/configs/lahaina/lahaina.mk
index 9e159b1..ced863d 100644
--- a/configs/lahaina/lahaina.mk
+++ b/configs/lahaina/lahaina.mk
@@ -44,7 +44,7 @@
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
-AUDIO_FEATURE_ENABLED_AHAL_EXT := true
+AUDIO_FEATURE_ENABLED_AHAL_EXT := false
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
endif
@@ -132,8 +132,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_cdp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_cdp.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_hdk.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_hdk.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs_stock.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
vendor/qcom/opensource/audio-hal/primary-hal/configs/common/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
@@ -176,8 +174,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_cdp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_cdp.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_hdk.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_hdk.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs_stock.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_tuning_mixer.txt \
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/default_volume_tables.xml \
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/r_submix_audio_policy_configuration.xml \
@@ -209,9 +205,11 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_shimaidp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_shimaidp.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_shimaidps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_shimaidps.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/mixer_paths_shimaqrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/mixer_paths_shimaqrd.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_configs_stock.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_tuning_mixer.txt
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_tuning_mixer.txt \
+ frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/default_volume_tables.xml \
+ frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/r_submix_audio_policy_configuration.xml \
+ frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)/audio_policy_volumes.xml
+
#Copy generic APM XML file to common folder for runtime copy
PRODUCT_COPY_FILES += \
@@ -222,10 +220,6 @@
$(foreach DEVICE_SKU, $(QCV_FAMILY_SKUS), \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lahaina/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_$(DEVICE_SKU)_qssi/audio_policy_configuration.xml)
-# Reduce client buffer size for fast audio output tracks
-PRODUCT_PROPERTY_OVERRIDES += \
- af.fast_track_multiplier=1
-
# Low latency audio buffer size in frames
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio_hal.period_size=192
@@ -252,6 +246,11 @@
persist.vendor.audio.spv4.enable=true\
persist.vendor.audio.avs.afe_api_version=9
+##bcl aka vbat monitor feature enable by default
+PRODUCT_PROPERTY_OVERRIDES += \
+persist.vendor.audio.vbat.enabled=true\
+persist.vendor.audio.bcl.enabled=true\
+
#disable tunnel encoding
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.tunnel.encode=false
@@ -264,18 +263,10 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.offload.buffer.size.kb=32
-#Enable offload audio video playback by default
-PRODUCT_PROPERTY_OVERRIDES += \
-audio.offload.video=true
-
#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
@@ -352,10 +343,6 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.hw.aac.encoder=true
-#Set AudioFlinger client heap size
-PRODUCT_PROPERTY_OVERRIDES += \
-ro.af.client_heap_size_kbyte=7168
-
#Set HAL buffer size to samples equal to 3 ms
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio_hal.in_period_size=144
@@ -474,10 +461,7 @@
android.hardware.audio.common@4.0-util \
android.hardware.audio@4.0-impl \
android.hardware.audio.effect@4.0 \
- android.hardware.audio.effect@4.0-impl \
- vendor.qti.hardware.audiohalext@1.0 \
- vendor.qti.hardware.audiohalext@1.0-impl \
- vendor.qti.hardware.audiohalext-utils
+ android.hardware.audio.effect@4.0-impl
# enable audio hidl hal 5.0
PRODUCT_PACKAGES += \
diff --git a/configs/lahaina/mixer_paths_shimaidp.xml b/configs/lahaina/mixer_paths_shimaidp.xml
index 64982cf..8aa38e1 100644
--- a/configs/lahaina/mixer_paths_shimaidp.xml
+++ b/configs/lahaina/mixer_paths_shimaidp.xml
@@ -66,6 +66,7 @@
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -338,6 +339,11 @@
<ctl name="RX_EAR Mode" value="OFF" />
<!-- TX Controls -->
+ <ctl name="ADC1_MIXER Switch" value="0" />
+ <ctl name="ADC2_MIXER Switch" value="0" />
+ <ctl name="ADC3_MIXER Switch" value="0" />
+ <ctl name="ADC4_MIXER Switch" value="0" />
+
<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" />
@@ -351,6 +357,15 @@
<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_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC7" value="0" />
<ctl name="TX DEC0 MUX" value="SWR_MIC" />
<ctl name="TX DMIC MUX0" value="ZERO" />
<ctl name="TX SMIC MUX0" value="ZERO" />
@@ -375,6 +390,14 @@
<ctl name="TX DEC7 MUX" value="SWR_MIC" />
<ctl name="TX DMIC MUX7" value="ZERO" />
<ctl name="TX SMIC MUX7" value="ZERO" />
+ <ctl name="ADC1 ChMap" value="ZERO" />
+ <ctl name="ADC2 ChMap" value="ZERO" />
+ <ctl name="ADC3 ChMap" value="ZERO" />
+ <ctl name="ADC4 ChMap" value="ZERO" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="MBHC ChMap" value="ZERO" />
+ <ctl name="BCS Channel" value="CH6" />
<!-- Volume controls -->
<ctl name="WSA_RX0 Digital Volume" value="84" />
@@ -523,6 +546,34 @@
<path name="echo-reference bt-sco" />
</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="Two"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency handset">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="WSA_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="One"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency bt-sco">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="SLIM_7_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>
+
+ <path name="echo-reference-voip-low-latency bt-sco-swb">
+ <path name="echo-reference-voip-low-latency bt-sco" />
+ </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"/>
@@ -2328,6 +2379,30 @@
</path>
<!-- VoIP Tx settings -->
+ <path name="audio-record-voip-low-latency">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-wb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-swb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency headset-mic">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="audio-record-voip">
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="1" />
</path>
diff --git a/configs/lahaina/mixer_paths_shimaidps.xml b/configs/lahaina/mixer_paths_shimaidps.xml
index 1008f2d..135e02c 100644
--- a/configs/lahaina/mixer_paths_shimaidps.xml
+++ b/configs/lahaina/mixer_paths_shimaidps.xml
@@ -65,6 +65,7 @@
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -345,6 +346,15 @@
<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_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF2_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" />
@@ -375,6 +385,8 @@
<ctl name="ADC4 ChMap" value="ZERO" />
<ctl name="HDR12 MUX" value="NO_HDR12" />
<ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="MBHC ChMap" value="ZERO" />
+ <ctl name="BCS Channel" value="CH6" />
<ctl name="SWR_MIC0 HIFI PortMap" value="ZERO" />
<ctl name="SWR_MIC1 HIFI PortMap" value="ZERO" />
<ctl name="SWR_MIC2 HIFI PortMap" value="ZERO" />
@@ -527,6 +539,34 @@
<path name="echo-reference bt-sco" />
</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="Two"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency handset">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="WSA_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="One"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency headphones">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="RX_CDC_DMA_RX_0" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency bt-sco">
+ <ctl name="AUDIO_REF_EC_UL8 MUX" value="SLIM_7_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>
+
+ <path name="echo-reference-voip-low-latency bt-sco-swb">
+ <path name="echo-reference-voip-low-latency bt-sco" />
+ </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"/>
@@ -2188,6 +2228,30 @@
</path>
<!-- VoIP Tx settings -->
+ <path name="audio-record-voip-low-latency">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-wb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-swb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency headset-mic">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="audio-record-voip">
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="1" />
</path>
diff --git a/configs/lahaina/mixer_paths_shimaqrd.xml b/configs/lahaina/mixer_paths_shimaqrd.xml
index 8b7353c..57acb4f 100644
--- a/configs/lahaina/mixer_paths_shimaqrd.xml
+++ b/configs/lahaina/mixer_paths_shimaqrd.xml
@@ -66,6 +66,7 @@
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="0" />
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -548,6 +549,21 @@
<path name="echo-reference bt-sco" />
</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"/>
+ </path>
+
+ <path name="echo-reference-voip-low-latency handset">
+ <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 headphones">
+ <ctl name="AUDIO_REF_EC_UL8 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="One"/>
@@ -2420,6 +2436,30 @@
</path>
<!-- VoIP Tx settings -->
+ <path name="audio-record-voip-low-latency">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-wb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency bt-sco-swb">
+ <path name="audio-record-voip-low-latency bt-sco" />
+ </path>
+
+ <path name="audio-record-voip-low-latency headset-mic">
+ <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="audio-record-voip">
<ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="1" />
</path>
@@ -2593,7 +2633,7 @@
<ctl name="ADC2 MUX" value="INP2" />
<ctl name="ADC2 ChMap" value="SWRM_TX1_CH2" />
<ctl name="MBHC ChMap" value="SWRM_TX2_CH3" />
- <ctl name="BCS Channel" value="CH2" />
+ <ctl name="BCS Channel" value="CH6" />
<ctl name="HDR12 MUX" value="NO_HDR12" />
</path>
diff --git a/configs/lahaina/sound_trigger_platform_info.xml b/configs/lahaina/sound_trigger_platform_info.xml
index 595e54e..dd8465a 100644
--- a/configs/lahaina/sound_trigger_platform_info.xml
+++ b/configs/lahaina/sound_trigger_platform_info.xml
@@ -308,6 +308,7 @@
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
+ <param get_module_version="false"/>
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
@@ -333,6 +334,7 @@
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</module_params>
</lsm_usecase>
<lsm_usecase>
@@ -360,6 +362,7 @@
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</module_params>
</lsm_usecase>
<lsm_usecase>
@@ -374,6 +377,7 @@
<param unload_sound_model_ids="0x18000001, 0x0, 0x00012C15" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
<param lab_dam_cfg_ids="0x00012C08, 0x0, 0x000102C4" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</module_params>
</lsm_usecase>
diff --git a/configs/lito/audio_configs.xml b/configs/lito/audio_configs.xml
deleted file mode 100644
index f5ea583..0000000
--- a/configs/lito/audio_configs.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- APM Configs -->
- <property name="audio.deep_buffer.media" value="true"/>
- <property name="audio.offload.disable" value="false"/>
- <property name="audio.offload.min.duration.secs" value="30"/>
- <property name="audio.offload.video" value="true"/>
- <property name="persist.vendor.audio.sva.conc.enabled" value="false"/>
- <property name="persist.vendor.audio.va_concurrency_enabled" value="false"/>
- <property name="vendor.audio.av.streaming.offload.enable" value="false"/>
- <property name="vendor.audio.offload.track.enable" value="true"/>
- <property name="vendor.audio.offload.multiple.enabled" value="false"/>
- <property name="vendor.audio.rec.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.conc.fallbackpath" value=""/>
- <property name="vendor.voice.dsd.playback.conc.disabled" value="true"/>
- <property name="vendor.voice.path.for.pcm.voip" value="true"/>
- <property name="vendor.voice.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.record.conc.disabled" value="false"/>
- <property name="vendor.voice.voip.conc.disabled" value="false"/>
- <flag name="audio_extn_formats_enabled" value="true" />
- <flag name="audio_extn_hdmi_spk_enabled" value="true" />
- <flag name="use_xml_audio_policy_conf" value="true" />
- <flag name="voice_concurrency" value="false" />
- <flag name="afe_proxy_enabled" value="true" />
- <flag name="compress_voip_enabled" value="false" />
- <flag name="fm_power_opt" value="true" />
- <flag name="record_play_concurrency" value="false" />
-
- <!-- AV Configs -->
- <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
- <property name="vendor.audio.use.sw.ape.decoder" value="true"/>
- <property name="vendor.audio.use.sw.mpegh.decoder" value="true"/>
- <property name="vendor.audio.flac.sw.decoder.24bit" value="true"/>
- <property name="vendor.audio.hw.aac.encoder" value="true"/>
- <flag name="aac_adts_offload_enabled" value="true" />
- <flag name="alac_offload_enabled" value="true" />
- <flag name="ape_offload_enabled" value="true" />
- <flag name="flac_offload_enabled" value="true" />
- <flag name="pcm_offload_enabled_16" value="true" />
- <flag name="pcm_offload_enabled_24" value="true" />
- <flag name="qti_flac_decoder" value="true" />
- <flag name="vorbis_offload_enabled" value="true" />
- <flag name="wma_offload_enabled" value="true" />
-</configs>
diff --git a/configs/lito/audio_configs_stock.xml b/configs/lito/audio_configs_stock.xml
deleted file mode 100644
index dd0c3b4..0000000
--- a/configs/lito/audio_configs_stock.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- AHAL Configs -->
-</configs>
diff --git a/configs/lito/lito.mk b/configs/lito/lito.mk
index d850473..7e20f8c 100644
--- a/configs/lito/lito.mk
+++ b/configs/lito/lito.mk
@@ -48,7 +48,7 @@
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
-AUDIO_FEATURE_ENABLED_AHAL_EXT := true
+AUDIO_FEATURE_ENABLED_AHAL_EXT := false
ifneq ($(GENERIC_ODM_IMAGE),true)
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
else
@@ -201,8 +201,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/mixer_paths_lagoonqrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_lagoonqrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/mixer_paths_cdp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_cdp.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs_stock.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml
@@ -505,10 +503,7 @@
android.hardware.audio.common@4.0-util \
android.hardware.audio@4.0-impl \
android.hardware.audio.effect@4.0 \
- android.hardware.audio.effect@4.0-impl \
- vendor.qti.hardware.audiohalext@1.0 \
- vendor.qti.hardware.audiohalext@1.0-impl \
- vendor.qti.hardware.audiohalext-utils
+ android.hardware.audio.effect@4.0-impl
# enable audio hidl hal 5.0
PRODUCT_PACKAGES += \
diff --git a/configs/lito/sound_trigger_platform_info.xml b/configs/lito/sound_trigger_platform_info.xml
index 4850d2b..a0e9c23 100644
--- a/configs/lito/sound_trigger_platform_info.xml
+++ b/configs/lito/sound_trigger_platform_info.xml
@@ -259,6 +259,7 @@
<param sample_rate="16000" />
<param bit_width="16" />
<param out_channels="1"/> <!-- Module output channels -->
+ <param get_module_version="false" />
<lsm_usecase>
<param capture_device="HANDSET" />
<!-- adm_cfg_profile should match with the one defined under adm_config -->
@@ -277,6 +278,7 @@
<param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
<param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</lsm_usecase>
<lsm_usecase>
<param capture_device="HEADSET" />
@@ -291,6 +293,7 @@
<param operation_mode_ids="0x18000001, 0x0, 0x00012C02" />
<param polling_enable_ids="0x18000001, 0x0, 0x00012C1B" />
<param custom_config_ids="0x18000001, 0x0, 0x00012C20" />
+ <param version_ids="0x18000001, 0x0, 0x18000101" />
</lsm_usecase>
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
diff --git a/configs/msmnile/audio_configs.xml b/configs/msmnile/audio_configs.xml
deleted file mode 100644
index 8e3cda2..0000000
--- a/configs/msmnile/audio_configs.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- APM Configs -->
- <property name="audio.deep_buffer.media" value="true"/>
- <property name="audio.offload.disable" value="false"/>
- <property name="audio.offload.min.duration.secs" value="30"/>
- <property name="audio.offload.video" value="true"/>
- <property name="persist.vendor.audio.sva.conc.enabled" value="false"/>
- <property name="persist.vendor.audio.va_concurrency_enabled" value="false"/>
- <property name="vendor.audio.av.streaming.offload.enable" value="false"/>
- <property name="vendor.audio.offload.track.enable" value="true"/>
- <property name="vendor.audio.offload.multiple.enabled" value="false"/>
- <property name="vendor.audio.rec.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.conc.fallbackpath" value=""/>
- <property name="vendor.voice.dsd.playback.conc.disabled" value="true"/>
- <property name="vendor.voice.path.for.pcm.voip" value="true"/>
- <property name="vendor.voice.playback.conc.disabled" value="false"/>
- <property name="vendor.voice.record.conc.disabled" value="false"/>
- <property name="vendor.voice.voip.conc.disabled" value="false"/>
- <flag name="audio_extn_formats_enabled" value="true" />
- <flag name="audio_extn_hdmi_spk_enabled" value="true" />
- <flag name="use_xml_audio_policy_conf" value="true" />
- <flag name="voice_concurrency" value="false" />
- <flag name="afe_proxy_enabled" value="true" />
- <flag name="compress_voip_enabled" value="false" />
- <flag name="fm_power_opt" value="true" />
- <flag name="record_play_concurrency" value="false" />
-
- <!-- AV Configs -->
- <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
- <property name="vendor.audio.use.sw.ape.decoder" value="true"/>
- <property name="vendor.audio.use.sw.mpegh.decoder" value="false"/>
- <property name="vendor.audio.flac.sw.decoder.24bit" value="true"/>
- <property name="vendor.audio.hw.aac.encoder" value="true"/>
- <flag name="aac_adts_offload_enabled" value="true" />
- <flag name="alac_offload_enabled" value="true" />
- <flag name="ape_offload_enabled" value="true" />
- <flag name="flac_offload_enabled" value="true" />
- <flag name="pcm_offload_enabled_16" value="true" />
- <flag name="pcm_offload_enabled_24" value="true" />
- <flag name="qti_flac_decoder" value="true" />
- <flag name="vorbis_offload_enabled" value="true" />
- <flag name="wma_offload_enabled" value="true" />
-</configs>
diff --git a/configs/msmnile/audio_configs_stock.xml b/configs/msmnile/audio_configs_stock.xml
deleted file mode 100644
index dd0c3b4..0000000
--- a/configs/msmnile/audio_configs_stock.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-Copyright (c) 2019, 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.
--->
-<configs>
- <!-- AHAL Configs -->
-</configs>
diff --git a/configs/msmnile/msmnile.mk b/configs/msmnile/msmnile.mk
index d8bc03f..a4accae 100644
--- a/configs/msmnile/msmnile.mk
+++ b/configs/msmnile/msmnile.mk
@@ -42,7 +42,7 @@
AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
AUDIO_FEATURE_ENABLED_A2DP_OFFLOAD := true
AUDIO_FEATURE_ENABLED_3D_AUDIO := true
-AUDIO_FEATURE_ENABLED_AHAL_EXT := true
+AUDIO_FEATURE_ENABLED_AHAL_EXT := false
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
DOLBY_ENABLE := false
endif
@@ -177,8 +177,6 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile/audio_platform_info_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile/mixer_paths_pahu.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_pahu.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile/audio_configs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs.xml \
- vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile/audio_configs_stock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_configs_stock.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml
@@ -457,10 +455,7 @@
android.hardware.audio.common@4.0-util \
android.hardware.audio@4.0-impl \
android.hardware.audio.effect@4.0 \
- android.hardware.audio.effect@4.0-impl \
- vendor.qti.hardware.audiohalext@1.0 \
- vendor.qti.hardware.audiohalext@1.0-impl \
- vendor.qti.hardware.audiohalext-utils
+ android.hardware.audio.effect@4.0-impl
# enable audio hidl hal 5.0
PRODUCT_PACKAGES += \
diff --git a/configs/msmnile_au/audio_io_policy.conf b/configs/msmnile_au/audio_io_policy.conf
index 848f3f9..9f19dc3 100644
--- a/configs/msmnile_au/audio_io_policy.conf
+++ b/configs/msmnile_au/audio_io_policy.conf
@@ -120,6 +120,7 @@
inputs {
primary {
+ flags AUDIO_INPUT_FLAG_PRIMARY|AUDIO_INPUT_FLAG_FRONT_PASSENGER|AUDIO_INPUT_FLAG_REAR_SEAT
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|44100|48000|88200|96000|176400|192000
bit_width 16
diff --git a/configs/msmnile_au/audio_platform_info.xml b/configs/msmnile_au/audio_platform_info.xml
index d642138..febe5dd 100644
--- a/configs/msmnile_au/audio_platform_info.xml
+++ b/configs/msmnile_au/audio_platform_info.xml
@@ -43,9 +43,12 @@
<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_OUT_ICC" acdb_id="16"/>
<device name="SND_DEVICE_IN_HANDSET_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_BUS" acdb_id="11"/>
+ <device name="SND_DEVICE_IN_BUS_PAX" acdb_id="11"/>
+ <device name="SND_DEVICE_IN_BUS_RSE" acdb_id="11"/>
<device name="SND_DEVICE_IN_HEADSET_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" acdb_id="95"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="95"/>
@@ -57,6 +60,7 @@
<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"/>
+ <device name="SND_DEVICE_IN_ICC" acdb_id="46"/>
</acdb_ids>
<module_ids>
@@ -118,6 +122,9 @@
<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" />
@@ -126,6 +133,8 @@
<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" />
</pcm_ids>
<config_params>
@@ -170,9 +179,13 @@
<device name="SND_DEVICE_OUT_BUS_PHN" interface="TERT_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_OUT_ICC" interface="TERT_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"/>
@@ -182,6 +195,7 @@
<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"/>
+ <device name="SND_DEVICE_IN_ICC" 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>
diff --git a/configs/msmnile_au/mixer_paths_adp.xml b/configs/msmnile_au/mixer_paths_adp.xml
index 826ee15..74be328 100644
--- a/configs/msmnile_au/mixer_paths_adp.xml
+++ b/configs/msmnile_au/mixer_paths_adp.xml
@@ -1328,10 +1328,20 @@
</path>
<path name="audio-record">
- <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <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">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
@@ -1597,9 +1607,8 @@
</path>
<path name="icc-call">
- <ctl name="SEC_TDM_RX_0 SampleRate" value="KHZ_16" />
- <ctl name="SEC_TDM_RX_0 Channels" value="Four" />
- <ctl name="SEC_TDM_RX_0 Audio Mixer MultiMedia9" value="1" />
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_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>
@@ -1956,6 +1965,10 @@
<!--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>
diff --git a/configs/msmnile_au/mixer_paths_custom.xml b/configs/msmnile_au/mixer_paths_custom.xml
index c9b8eba..0f6f6bb 100644
--- a/configs/msmnile_au/mixer_paths_custom.xml
+++ b/configs/msmnile_au/mixer_paths_custom.xml
@@ -1595,9 +1595,8 @@
</path>
<path name="icc-call">
- <ctl name="SEC_TDM_RX_0 SampleRate" value="KHZ_16" />
- <ctl name="SEC_TDM_RX_0 Channels" value="Four" />
- <ctl name="SEC_TDM_RX_0 Audio Mixer MultiMedia9" value="1" />
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_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>
diff --git a/configs/msmnile_au/msmnile_au.mk b/configs/msmnile_au/msmnile_au.mk
index 4c00300..87a93b2 100644
--- a/configs/msmnile_au/msmnile_au.mk
+++ b/configs/msmnile_au/msmnile_au.mk
@@ -92,6 +92,7 @@
AUDIO_FEATURE_ENABLED_AUTO_AUDIOD := true
endif
AUDIO_FEATURE_ENABLED_FM_TUNER_EXT := true
+AUDIO_FEATURE_ENABLED_ICC := true
##AUTOMOTIVE_AUDIO_FEATURE_FLAGS
ifneq ($(strip $(TARGET_USES_RRO)), true)
@@ -360,6 +361,7 @@
vendor.audio.feature.hdmi_edid.enable=false \
vendor.audio.feature.hdmi_passthrough.enable=false \
vendor.audio.feature.hfp.enable=true \
+vendor.audio.feature.icc.enable=true \
vendor.audio.feature.hifi_audio.enable=false \
vendor.audio.feature.hwdep_cal.enable=false \
vendor.audio.feature.incall_music.enable=true \
@@ -405,6 +407,7 @@
vendor.audio.feature.hdmi_edid.enable=true \
vendor.audio.feature.hdmi_passthrough.enable=true \
vendor.audio.feature.hfp.enable=true \
+vendor.audio.feature.icc.enable=true \
vendor.audio.feature.hifi_audio.enable=false \
vendor.audio.feature.hwdep_cal.enable=false \
vendor.audio.feature.incall_music.enable=true \
diff --git a/configs/msmsteppe_au/audio_io_policy.conf b/configs/msmsteppe_au/audio_io_policy.conf
index 0ecd592..e45b296 100644
--- a/configs/msmsteppe_au/audio_io_policy.conf
+++ b/configs/msmsteppe_au/audio_io_policy.conf
@@ -119,6 +119,13 @@
}
inputs {
+ primary {
+ flags AUDIO_INPUT_FLAG_PRIMARY|AUDIO_INPUT_FLAG_FRONT_PASSENGER|AUDIO_INPUT_FLAG_REAR_SEAT
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 8000|16000|32000|44100|48000|88200|96000|176400|192000
+ bit_width 16
+ app_type 69938
+ }
record_16bit {
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|44100|48000|88200|96000|176400|192000
diff --git a/configs/msmsteppe_au/audio_platform_info.xml b/configs/msmsteppe_au/audio_platform_info.xml
index c46f47e..61b4482 100644
--- a/configs/msmsteppe_au/audio_platform_info.xml
+++ b/configs/msmsteppe_au/audio_platform_info.xml
@@ -43,9 +43,12 @@
<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_OUT_ICC" acdb_id="16"/>
<device name="SND_DEVICE_IN_HANDSET_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_BUS" acdb_id="11"/>
+ <device name="SND_DEVICE_IN_BUS_PAX" acdb_id="11"/>
+ <device name="SND_DEVICE_IN_BUS_RSE" acdb_id="11"/>
<device name="SND_DEVICE_IN_HEADSET_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" acdb_id="95"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="95"/>
@@ -57,6 +60,7 @@
<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"/>
+ <device name="SND_DEVICE_IN_ICC" acdb_id="46"/>
</acdb_ids>
<module_ids>
@@ -118,6 +122,9 @@
<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" />
@@ -126,6 +133,8 @@
<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" />
</pcm_ids>
<config_params>
@@ -170,9 +179,13 @@
<device name="SND_DEVICE_OUT_BUS_PHN" interface="TERT_TDM_RX_2"/>
<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"/>
<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="QUAT_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"/>
@@ -182,6 +195,7 @@
<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"/>
+ <device name="SND_DEVICE_IN_ICC" 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>
diff --git a/configs/msmsteppe_au/mixer_paths_adp.xml b/configs/msmsteppe_au/mixer_paths_adp.xml
index b6db9c5..8f8d551 100644
--- a/configs/msmsteppe_au/mixer_paths_adp.xml
+++ b/configs/msmsteppe_au/mixer_paths_adp.xml
@@ -1170,10 +1170,20 @@
</path>
<path name="audio-record">
- <ctl name="TERT_TDM_TX_0 Channels" value="One" />
+ <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="QUAT_TDM_TX_0 Channels" value="Eight" />
+ <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>
@@ -1373,9 +1383,8 @@
</path>
<path name="icc-call">
- <ctl name="SEC_TDM_RX_0 SampleRate" value="KHZ_16" />
- <ctl name="SEC_TDM_RX_0 Channels" value="Four" />
- <ctl name="SEC_TDM_RX_0 Audio Mixer MultiMedia9" value="1" />
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_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>
@@ -1693,6 +1702,10 @@
<!--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>
diff --git a/configs/msmsteppe_au/mixer_paths_custom.xml b/configs/msmsteppe_au/mixer_paths_custom.xml
index 848b62e..3360fa7 100644
--- a/configs/msmsteppe_au/mixer_paths_custom.xml
+++ b/configs/msmsteppe_au/mixer_paths_custom.xml
@@ -1366,9 +1366,8 @@
</path>
<path name="icc-call">
- <ctl name="SEC_TDM_RX_0 SampleRate" value="KHZ_16" />
- <ctl name="SEC_TDM_RX_0 Channels" value="Four" />
- <ctl name="SEC_TDM_RX_0 Audio Mixer MultiMedia9" value="1" />
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_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>
diff --git a/configs/msmsteppe_au/msmsteppe_au.mk b/configs/msmsteppe_au/msmsteppe_au.mk
index 3c64129..f1b03e5 100644
--- a/configs/msmsteppe_au/msmsteppe_au.mk
+++ b/configs/msmsteppe_au/msmsteppe_au.mk
@@ -78,6 +78,7 @@
AUDIO_FEATURE_ENABLED_AUTO_AUDIOD := true
endif
AUDIO_FEATURE_ENABLED_FM_TUNER_EXT := true
+AUDIO_FEATURE_ENABLED_ICC := true
##AUTOMOTIVE_AUDIO_FEATURE_FLAGS
ifneq ($(strip $(TARGET_USES_RRO)), true)
@@ -325,7 +326,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=false \
vendor.audio.feature.custom_stereo.enable=false \
vendor.audio.feature.display_port.enable=false \
vendor.audio.feature.dsm_feedback.enable=false \
@@ -339,6 +340,7 @@
vendor.audio.feature.hdmi_edid.enable=false \
vendor.audio.feature.hdmi_passthrough.enable=false \
vendor.audio.feature.hfp.enable=true \
+vendor.audio.feature.icc.enable=true \
vendor.audio.feature.hifi_audio.enable=false \
vendor.audio.feature.hwdep_cal.enable=false \
vendor.audio.feature.incall_music.enable=true \
@@ -370,7 +372,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=true \
+vendor.audio.feature.concurrent_capture.enable=false \
vendor.audio.feature.custom_stereo.enable=true \
vendor.audio.feature.display_port.enable=true \
vendor.audio.feature.dsm_feedback.enable=false \
@@ -384,6 +386,7 @@
vendor.audio.feature.hdmi_edid.enable=true \
vendor.audio.feature.hdmi_passthrough.enable=true \
vendor.audio.feature.hfp.enable=true \
+vendor.audio.feature.icc.enable=true \
vendor.audio.feature.hifi_audio.enable=false \
vendor.audio.feature.hwdep_cal.enable=false \
vendor.audio.feature.incall_music.enable=true \
diff --git a/configs/sdm660/mixer_paths.xml b/configs/sdm660/mixer_paths.xml
index 9f1b3e1..9e6ffeb 100644
--- a/configs/sdm660/mixer_paths.xml
+++ b/configs/sdm660/mixer_paths.xml
@@ -175,6 +175,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 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" />
@@ -428,13 +429,38 @@
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="INT4_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference headphones">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="INT0_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
</path>
<path name="echo-reference headphones-44.1">
+ <path name="echo-reference headphones" />
+ </path>
+
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="INT4_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="INT0_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headset">
+ <path name="echo-reference-voip headphones" />
+ </path>
+
+ <path name="echo-reference-voip headphones-44.1">
+ <path name="echo-reference-voip headphones" />
</path>
<path name="deep-buffer-playback">
diff --git a/configs/sdm660/mixer_paths_mtp.xml b/configs/sdm660/mixer_paths_mtp.xml
index 373fc02..fba65eb 100644
--- a/configs/sdm660/mixer_paths_mtp.xml
+++ b/configs/sdm660/mixer_paths_mtp.xml
@@ -174,6 +174,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 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" />
@@ -427,13 +428,38 @@
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="INT4_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference headphones">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="INT0_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
</path>
<path name="echo-reference headphones-44.1">
+ <path name="echo-reference headphones" />
+ </path>
+
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="INT4_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="INT0_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headset">
+ <path name="echo-reference-voip headphones" />
+ </path>
+
+ <path name="echo-reference-voip headphones-44.1">
+ <path name="echo-reference-voip headphones" />
</path>
<path name="deep-buffer-playback">
diff --git a/configs/sdm660/mixer_paths_skush.xml b/configs/sdm660/mixer_paths_skush.xml
index 83a9d24..8f58fcb 100644
--- a/configs/sdm660/mixer_paths_skush.xml
+++ b/configs/sdm660/mixer_paths_skush.xml
@@ -166,6 +166,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 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" />
@@ -419,17 +420,48 @@
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="INT4_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference handset">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="INT0_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference headphones">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="INT0_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
</path>
<path name="echo-reference headphones-44.1">
+ <path name="echo-reference headphones" />
+ </path>
+
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="INT4_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip handset">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="INT0_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="One"/>
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="INT0_MI2S_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headset">
+ <path name="echo-reference-voip headphones" />
+ </path>
+
+ <path name="echo-referenc-voip headphones-44.1">
+ <path name="echo-reference-voip headphones" />
</path>
<path name="deep-buffer-playback">
diff --git a/configs/sdm660/mixer_paths_tasha.xml b/configs/sdm660/mixer_paths_tasha.xml
index 37f47e2..c13def2 100644
--- a/configs/sdm660/mixer_paths_tasha.xml
+++ b/configs/sdm660/mixer_paths_tasha.xml
@@ -389,6 +389,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 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" />
@@ -614,6 +615,7 @@
<ctl name="RX MIX TX1 MUX" value="RX_MIX_VBAT7" />
<ctl name="SLIM_1_TX Channels" value="One" />
<ctl name="VOC_EXT_EC MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference speaker-vbat-mono-2">
@@ -622,6 +624,7 @@
<ctl name="RX MIX TX2 MUX" value="RX_MIX_VBAT8" />
<ctl name="SLIM_1_TX Channels" value="One" />
<ctl name="VOC_EXT_EC MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference speaker-vbat">
@@ -633,18 +636,45 @@
<ctl name="RX MIX TX2 MUX" value="RX_MIX_VBAT8" />
<ctl name="SLIM_1_TX Channels" value="Two" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference headphones">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_6_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
</path>
<path name="echo-reference headphones-44.1">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_6_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headset">
+ <path name="echo-reference-voip headphones" />
+ </path>
+
+ <path name="echo-reference-voip headphones-44.1">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="deep-buffer-playback">
diff --git a/configs/sdm660/mixer_paths_tasha_skus.xml b/configs/sdm660/mixer_paths_tasha_skus.xml
index 54bf9ae..1f6195a 100644
--- a/configs/sdm660/mixer_paths_tasha_skus.xml
+++ b/configs/sdm660/mixer_paths_tasha_skus.xml
@@ -390,6 +390,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 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" />
@@ -614,6 +615,7 @@
<ctl name="RX MIX TX1 MUX" value="RX_MIX_VBAT7" />
<ctl name="SLIM_1_TX Channels" value="One" />
<ctl name="VOC_EXT_EC MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference speaker-vbat">
@@ -625,18 +627,45 @@
<ctl name="RX MIX TX2 MUX" value="RX_MIX_VBAT8" />
<ctl name="SLIM_1_TX Channels" value="Two" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference headphones">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_6_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
</path>
<path name="echo-reference headphones-44.1">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_6_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headset">
+ <path name="echo-reference-voip headphones" />
+ </path>
+
+ <path name="echo-reference-voip headphones-44.1">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="deep-buffer-playback">
diff --git a/configs/sdm660/mixer_paths_tashalite.xml b/configs/sdm660/mixer_paths_tashalite.xml
index d195dcd..c6a3884 100644
--- a/configs/sdm660/mixer_paths_tashalite.xml
+++ b/configs/sdm660/mixer_paths_tashalite.xml
@@ -389,6 +389,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 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" />
@@ -616,6 +617,7 @@
<ctl name="RX MIX TX1 MUX" value="RX_MIX_VBAT7" />
<ctl name="SLIM_1_TX Channels" value="One" />
<ctl name="VOC_EXT_EC MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference speaker-vbat-mono-2">
@@ -624,6 +626,7 @@
<ctl name="RX MIX TX2 MUX" value="RX_MIX_VBAT8" />
<ctl name="SLIM_1_TX Channels" value="One" />
<ctl name="VOC_EXT_EC MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="One"/>
</path>
<path name="echo-reference speaker-vbat">
@@ -635,18 +638,45 @@
<ctl name="RX MIX TX2 MUX" value="RX_MIX_VBAT8" />
<ctl name="SLIM_1_TX Channels" value="Two" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference headphones">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_6_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
</path>
<path name="echo-reference headphones-44.1">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_6_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headset">
+ <path name="echo-reference-voip headphones" />
+ </path>
+
+ <path name="echo-reference-voip headphones-44.1">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_1_TX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="deep-buffer-playback">
diff --git a/configs/sdm660/mixer_paths_tavil.xml b/configs/sdm660/mixer_paths_tavil.xml
index 79b671d..4113e75 100644
--- a/configs/sdm660/mixer_paths_tavil.xml
+++ b/configs/sdm660/mixer_paths_tavil.xml
@@ -212,6 +212,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 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" />
@@ -573,13 +574,40 @@
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="echo-reference headphones">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_6_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
</path>
<path name="echo-reference headphones-44.1">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_5_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_6_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
+ </path>
+
+ <path name="echo-reference-voip headset">
+ <path name="echo-reference-voip headphones" />
+ </path>
+
+ <path name="echo-reference-voip headphones-44.1">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_5_RX" />
+ <ctl name="EC Reference Channels" value="Two"/>
</path>
<path name="deep-buffer-playback">
diff --git a/hal/audio_extn/Android.mk b/hal/audio_extn/Android.mk
old mode 100644
new mode 100755
index eaf8926..c88bc34
--- a/hal/audio_extn/Android.mk
+++ b/hal/audio_extn/Android.mk
@@ -673,6 +673,74 @@
include $(BUILD_SHARED_LIBRARY)
#-------------------------------------------
+# Build SYNTH LIB
+#-------------------------------------------
+include $(CLEAR_VARS)
+
+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 lito bengal atoll sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
+ # B-family platform uses msm8974 code base
+ AUDIO_PLATFORM := msm8974
+ MULTIPLE_HW_VARIANTS_ENABLED := true
+endif
+
+ifeq ($(TARGET_BOARD_AUTO),true)
+ LOCAL_CFLAGS += -DPLATFORM_AUTO
+endif
+
+LOCAL_SRC_FILES:= \
+ synth.c \
+ device_utils.c
+
+LOCAL_CFLAGS += \
+ -Wall \
+ -Werror \
+ -Wno-unused-function \
+ -Wno-unused-variable
+
+LOCAL_SHARED_LIBRARIES := \
+ libaudioroute \
+ libaudioutils \
+ libcutils \
+ libdl \
+ libexpat \
+ liblog \
+ libtinyalsa \
+ libtinycompress
+
+LOCAL_C_INCLUDES := \
+ $(PRIMARY_HAL_PATH) \
+ $(PRIMARY_HAL_PATH)/$(AUDIO_PLATFORM) \
+ external/tinyalsa/include \
+ external/tinycompress/include \
+ external/expat/lib \
+ system/media/audio_utils/include \
+ $(call include-path-for, audio-route) \
+
+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
+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_ADDITIONAL_DEPENDENCIES += $(BOARD_VENDOR_KERNEL_MODULES)
+endif
+
+LOCAL_HEADER_LIBRARIES += libhardware_headers
+LOCAL_HEADER_LIBRARIES += libsystem_headers
+ifneq ($(filter kona,$(TARGET_BOARD_PLATFORM)),)
+LOCAL_SANITIZE := integer_overflow
+endif
+include $(BUILD_SHARED_LIBRARY)
+
+#-------------------------------------------
# Build HDMI PASSTHROUGH
#-------------------------------------------
include $(CLEAR_VARS)
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index 52c7dd3..d8bbdfe 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -287,6 +287,7 @@
// --- external function dependency ---
fp_platform_get_pcm_device_id_t fp_platform_get_pcm_device_id;
fp_check_a2dp_restore_t fp_check_a2dp_restore_l;
+fp_platform_switch_voice_call_device_post_t fp_platform_switch_voice_call_device_post;
/* PCM config for ABR Feedback hostless front end */
static struct pcm_config pcm_config_abr = {
@@ -3387,6 +3388,8 @@
fp_platform_get_pcm_device_id =
init_config.fp_platform_get_pcm_device_id;
fp_check_a2dp_restore_l = init_config.fp_check_a2dp_restore_l;
+ fp_platform_switch_voice_call_device_post =
+ init_config.fp_platform_switch_voice_call_device_post;
reset_a2dp_enc_config_params();
reset_a2dp_source_dec_config_params();
@@ -3567,6 +3570,12 @@
ALOGD("sco_start_configuration start");
if (!a2dp.swb_configured) {
+ /*Before starting sco config, we must ensure to set correct acdb id
+ because sco cofiguration will trigger port open which needs acdb_id*/
+ fp_platform_switch_voice_call_device_post(a2dp.adev->platform,
+ SND_DEVICE_OUT_BT_SCO_SWB,
+ SND_DEVICE_IN_BT_SCO_MIC_SWB);
+
a2dp.bt_encoder_format = CODEC_TYPE_APTX_AD_SPEECH;
/* Configure AFE codec*/
if (configure_aptx_ad_speech_enc_fmt() &&
diff --git a/hal/audio_extn/audio_extn.c b/hal/audio_extn/audio_extn.c
old mode 100644
new mode 100755
index c3c80a0..32051a8
--- a/hal/audio_extn/audio_extn.c
+++ b/hal/audio_extn/audio_extn.c
@@ -4751,6 +4751,7 @@
a2dp_offload_init_config_t a2dp_init_config;
a2dp_init_config.fp_platform_get_pcm_device_id = platform_get_pcm_device_id;
a2dp_init_config.fp_check_a2dp_restore_l = check_a2dp_restore_l;
+ a2dp_init_config.fp_platform_switch_voice_call_device_post = platform_switch_voice_call_device_post;
a2dp_init(adev, a2dp_init_config);
}
@@ -6086,6 +6087,9 @@
typedef int (*auto_hal_open_output_stream_t)(struct stream_out*);
static auto_hal_open_output_stream_t auto_hal_open_output_stream;
+typedef int (*auto_hal_open_input_stream_t)(struct stream_in*);
+static auto_hal_open_input_stream_t auto_hal_open_input_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;
@@ -6117,6 +6121,10 @@
audio_usecase_t);
static auto_hal_get_output_snd_device_t auto_hal_get_output_snd_device;
+typedef snd_device_t (*auto_hal_get_snd_device_for_car_audio_stream_t)(int
+ car_audio_stream);
+static auto_hal_get_snd_device_for_car_audio_stream_t auto_hal_get_snd_device_for_car_audio_stream;
+
int auto_hal_feature_init(bool is_feature_enabled)
{
ALOGD("%s: Called with feature %s", __func__,
@@ -6146,6 +6154,9 @@
!(auto_hal_open_output_stream =
(auto_hal_open_output_stream_t)dlsym(
auto_hal_lib_handle, "auto_hal_open_output_stream")) ||
+ !(auto_hal_open_input_stream =
+ (auto_hal_open_input_stream_t)dlsym(
+ auto_hal_lib_handle, "auto_hal_open_input_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")) ||
@@ -6169,7 +6180,10 @@
auto_hal_lib_handle, "auto_hal_get_input_snd_device")) ||
!(auto_hal_get_output_snd_device =
(auto_hal_get_output_snd_device_t)dlsym(
- auto_hal_lib_handle, "auto_hal_get_output_snd_device"))) {
+ 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"))) {
ALOGE("%s: dlsym failed", __func__);
goto feature_disabled;
}
@@ -6189,6 +6203,7 @@
auto_hal_release_audio_patch = NULL;
auto_hal_get_car_audio_stream_from_address = NULL;
auto_hal_open_output_stream = NULL;
+ auto_hal_open_input_stream = NULL;
auto_hal_is_bus_device_usecase = NULL;
auto_hal_get_audio_port = NULL;
auto_hal_set_audio_port_config = NULL;
@@ -6197,6 +6212,7 @@
auto_hal_stop_hfp_downlink = NULL;
auto_hal_get_input_snd_device = NULL;
auto_hal_get_output_snd_device = NULL;
+ auto_hal_get_snd_device_for_car_audio_stream = NULL;
ALOGW(":: %s: ---- Feature AUTO_HAL is disabled ----", __func__);
return -ENOSYS;
@@ -6267,6 +6283,12 @@
auto_hal_open_output_stream(out): -ENOSYS);
}
+int audio_extn_auto_hal_open_input_stream(struct stream_in *in)
+{
+ return ((auto_hal_open_input_stream) ?
+ auto_hal_open_input_stream(in): -ENOSYS);
+}
+
bool audio_extn_auto_hal_is_bus_device_usecase(audio_usecase_t uc_id)
{
return ((auto_hal_is_bus_device_usecase) ?
@@ -6321,8 +6343,98 @@
return ((auto_hal_get_output_snd_device) ?
auto_hal_get_output_snd_device(adev, uc_id): SND_DEVICE_NONE);
}
+
+snd_device_t audio_extn_auto_hal_get_snd_device_for_car_audio_stream(int car_audio_stream)
+{
+ 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);
+}
// END: AUTO_HAL ===================================================================
+// START: Synth ======================================================================
+#ifdef __LP64__
+#define SYNTH_LIB_PATH "/vendor/lib64/libsynth.so"
+#else
+#define SYNTH_LIB_PATH "/vendor/lib/libsynth.so"
+#endif
+
+static void *synth_lib_handle = NULL;
+
+typedef void (*synth_init_t)(synth_init_config_t);
+static synth_init_t synth_init;
+
+typedef bool (*synth_is_active_t)(struct audio_device *adev);
+static synth_is_active_t synth_is_active;
+
+typedef void (*synth_set_parameters_t)(struct audio_device *adev,
+ struct str_parms *parms);
+static synth_set_parameters_t synth_set_parameters;
+
+int synth_feature_init(bool is_feature_enabled)
+{
+ ALOGD("%s: Called with feature %s", __func__,
+ is_feature_enabled ? "Enabled" : "NOT Enabled");
+ if (is_feature_enabled) {
+ // dlopen lib
+ synth_lib_handle = dlopen(SYNTH_LIB_PATH, RTLD_NOW);
+
+ if (!synth_lib_handle) {
+ ALOGE("%s: dlopen failed", __func__);
+ goto feature_disabled;
+ }
+ if (!(synth_init = (synth_init_t)dlsym(
+ synth_lib_handle, "synth_init")) ||
+ !(synth_is_active =
+ (synth_is_active_t)dlsym(
+ synth_lib_handle, "synth_is_active")) ||
+ !(synth_set_parameters =
+ (synth_set_parameters_t)dlsym(
+ synth_lib_handle, "synth_set_parameters"))) {
+ ALOGE("%s: dlsym failed", __func__);
+ goto feature_disabled;
+ }
+ synth_init_config_t init_config;
+ init_config.fp_platform_get_pcm_device_id = platform_get_pcm_device_id;
+ init_config.fp_get_usecase_from_list = get_usecase_from_list;
+ init_config.fp_select_devices = select_devices;
+ init_config.fp_disable_audio_route = disable_audio_route;
+ init_config.fp_disable_snd_device = disable_snd_device;
+
+ synth_init(init_config);
+ ALOGD("%s:: ---- Feature Synth is Enabled ----", __func__);
+ return 0;
+ }
+
+feature_disabled:
+ if (synth_lib_handle) {
+ dlclose(synth_lib_handle);
+ synth_lib_handle = NULL;
+ }
+
+ synth_init = NULL;
+ synth_is_active = NULL;
+ synth_set_parameters = NULL;
+
+ ALOGW(":: %s: ---- Feature Synth is disabled ----", __func__);
+ return -ENOSYS;
+}
+
+bool audio_extn_synth_is_active(struct audio_device *adev)
+{
+ return ((synth_is_active) ?
+ synth_is_active(adev): false);
+}
+
+void audio_extn_synth_set_parameters(struct audio_device *adev,
+ struct str_parms *parms)
+{
+ ((synth_set_parameters) ?
+ synth_set_parameters(adev, parms): NULL);
+}
+
+// END: Synth ========================================================================
+
+
void audio_extn_feature_init()
{
vendor_enhanced_info = audio_extn_utils_get_vendor_enhanced_info();
@@ -6444,6 +6556,9 @@
auto_hal_feature_init(
property_get_bool("vendor.audio.feature.auto_hal.enable",
false));
+ synth_feature_init(
+ property_get_bool("vendor.audio.feature.synth.enable",
+ false));
}
void audio_extn_set_parameters(struct audio_device *adev,
@@ -6477,6 +6592,7 @@
audio_extn_ffv_set_parameters(adev, parms);
audio_extn_ext_hw_plugin_set_parameters(adev->ext_hw_plugin, parms);
audio_extn_icc_set_parameters(adev, parms);
+ audio_extn_synth_set_parameters(adev, parms);
}
void audio_extn_get_parameters(const struct audio_device *adev,
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
old mode 100644
new mode 100755
index 8820d01..2c7711d
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -161,6 +161,9 @@
typedef int (*fp_platform_send_audio_calibration_t)(void *, struct audio_usecase *,
int);
typedef int (*fp_platform_get_pcm_device_id_t)(audio_usecase_t, int);
+typedef int (*fp_platform_switch_voice_call_device_post_t)(void *platform,
+ snd_device_t out_snd_device,
+ snd_device_t in_snd_device);
typedef const char *(*fp_platform_get_snd_device_name_t)(snd_device_t);
typedef int (*fp_platform_spkr_prot_is_wsa_analog_mode_t)(void *);
typedef int (*fp_platform_get_snd_device_t)(snd_device_t);
@@ -338,6 +341,7 @@
struct a2dp_offload_init_config {
fp_platform_get_pcm_device_id_t fp_platform_get_pcm_device_id;
fp_check_a2dp_restore_t fp_check_a2dp_restore_l;
+ fp_platform_switch_voice_call_device_post_t fp_platform_switch_voice_call_device_post;
};
typedef struct a2dp_offload_init_config a2dp_offload_init_config_t;
// END: A2DP_OFFLOAD FEATURE ====================================================
@@ -1346,6 +1350,16 @@
#ifndef AUDIO_OUTPUT_FLAG_REAR_SEAT
#define AUDIO_OUTPUT_FLAG_REAR_SEAT 0x2000000
#endif
+#ifndef AUDIO_INPUT_FLAG_PRIMARY
+#define AUDIO_INPUT_FLAG_PRIMARY 0x100000
+#endif
+#ifndef AUDIO_INPUT_FLAG_FRONT_PASSENGER
+#define AUDIO_INPUT_FLAG_FRONT_PASSENGER 0x200000
+#endif
+#ifndef AUDIO_INPUT_FLAG_REAR_SEAT
+#define AUDIO_INPUT_FLAG_REAR_SEAT 0x400000
+#endif
+
int audio_extn_auto_hal_init(struct audio_device *adev);
void audio_extn_auto_hal_deinit(void);
int audio_extn_auto_hal_create_audio_patch(struct audio_hw_device *dev,
@@ -1358,6 +1372,7 @@
audio_patch_handle_t handle);
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);
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);
@@ -1373,6 +1388,7 @@
audio_usecase_t uc_id);
snd_device_t audio_extn_auto_hal_get_output_snd_device(struct audio_device *adev,
audio_usecase_t uc_id);
+snd_device_t audio_extn_auto_hal_get_snd_device_for_car_audio_stream(int car_audio_stream);
typedef streams_input_ctxt_t* (*fp_in_get_stream_t)(struct audio_device*, audio_io_handle_t);
typedef streams_output_ctxt_t* (*fp_out_get_stream_t)(struct audio_device*, audio_io_handle_t);
@@ -1399,6 +1415,20 @@
} auto_hal_init_config_t;
// END: AUTO_HAL FEATURE ==================================================
+// START: SYNTH_HAL FEATURE ==================================================
+bool audio_extn_synth_is_active(struct audio_device *adev);
+void audio_extn_synth_set_parameters(struct audio_device *adev,
+ struct str_parms *parms);
+
+typedef struct synth_init_config {
+ fp_get_usecase_from_list_t fp_get_usecase_from_list;
+ fp_platform_get_pcm_device_id_t fp_platform_get_pcm_device_id;
+ fp_disable_audio_route_t fp_disable_audio_route;
+ fp_disable_snd_device_t fp_disable_snd_device;
+ fp_select_devices_t fp_select_devices;
+} synth_init_config_t;
+// END: SYNTH_HAL 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);
diff --git a/hal/audio_extn/auto_hal.c b/hal/audio_extn/auto_hal.c
old mode 100644
new mode 100755
index abddeb0..ca3cd6b
--- a/hal/audio_extn/auto_hal.c
+++ b/hal/audio_extn/auto_hal.c
@@ -309,6 +309,35 @@
return (0x1 << bus_num);
}
+int auto_hal_open_input_stream(struct stream_in *in)
+{
+ int ret = 0;
+
+ switch(in->car_audio_stream) {
+ case CAR_AUDIO_STREAM_IN_PRIMARY:
+ in->usecase = USECASE_AUDIO_RECORD_BUS;
+ if (in->flags == AUDIO_INPUT_FLAG_NONE)
+ in->flags |= AUDIO_INPUT_FLAG_PRIMARY;
+ break;
+ case CAR_AUDIO_STREAM_IN_FRONT_PASSENGER:
+ in->usecase = USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER;
+ if (in->flags == AUDIO_INPUT_FLAG_NONE)
+ in->flags |= AUDIO_INPUT_FLAG_FRONT_PASSENGER;
+ break;
+ case CAR_AUDIO_STREAM_IN_REAR_SEAT:
+ in->usecase = USECASE_AUDIO_RECORD_BUS_REAR_SEAT;
+ if (in->flags == AUDIO_INPUT_FLAG_NONE)
+ in->flags |= AUDIO_INPUT_FLAG_REAR_SEAT;
+ break;
+ default:
+ ALOGE("%s: Car audio stream 0x%x not supported", __func__,
+ in->car_audio_stream);
+ ret = -EINVAL;
+ }
+
+ return ret;
+}
+
int auto_hal_open_output_stream(struct stream_out *out)
{
int ret = 0;
@@ -401,11 +430,11 @@
return false;
}
-snd_device_t auto_hal_get_snd_device_for_car_audio_stream(struct stream_out *out)
+snd_device_t auto_hal_get_snd_device_for_car_audio_stream(int car_audio_stream)
{
snd_device_t snd_device = SND_DEVICE_NONE;
- switch(out->car_audio_stream) {
+ switch(car_audio_stream) {
case CAR_AUDIO_STREAM_MEDIA:
snd_device = SND_DEVICE_OUT_BUS_MEDIA;
break;
@@ -424,9 +453,18 @@
case CAR_AUDIO_STREAM_REAR_SEAT:
snd_device = SND_DEVICE_OUT_BUS_RSE;
break;
+ case CAR_AUDIO_STREAM_IN_PRIMARY:
+ snd_device = SND_DEVICE_IN_BUS;
+ break;
+ case CAR_AUDIO_STREAM_IN_FRONT_PASSENGER:
+ snd_device = SND_DEVICE_IN_BUS_PAX;
+ break;
+ case CAR_AUDIO_STREAM_IN_REAR_SEAT:
+ snd_device = SND_DEVICE_IN_BUS_RSE;
+ break;
default:
- ALOGE("%s: Unknown car audio stream (%x)",
- __func__, out->car_audio_stream);
+ ALOGE("%s: Unknown car audio stream (%#x)",
+ __func__, car_audio_stream);
}
return snd_device;
}
@@ -737,6 +775,9 @@
case USECASE_ICC_CALL:
snd_device = SND_DEVICE_IN_ICC;
break;
+ case USECASE_AUDIO_PLAYBACK_SYNTHESIZER:
+ snd_device = SND_DEVICE_IN_SYNTH_MIC;
+ break;
default:
ALOGE("%s: Usecase (%d) not supported", __func__, uc_id);
return -EINVAL;
@@ -832,6 +873,9 @@
case USECASE_ICC_CALL:
snd_device = SND_DEVICE_OUT_ICC;
break;
+ case USECASE_AUDIO_PLAYBACK_SYNTHESIZER:
+ snd_device = SND_DEVICE_OUT_SYNTH_SPKR;
+ break;
default:
ALOGE("%s: Usecase (%d) not supported", __func__, uc_id);
return -EINVAL;
diff --git a/hal/audio_extn/auto_hal.h b/hal/audio_extn/auto_hal.h
index 15a65d2..c1b3250 100644
--- a/hal/audio_extn/auto_hal.h
+++ b/hal/audio_extn/auto_hal.h
@@ -66,4 +66,7 @@
USECASE_AUDIO_PLAYBACK_PHONE,
USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER,
USECASE_AUDIO_PLAYBACK_REAR_SEAT,
+ USECASE_AUDIO_RECORD_BUS,
+ USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER,
+ USECASE_AUDIO_RECORD_BUS_REAR_SEAT,
};
diff --git a/hal/audio_extn/ext_hw_plugin.c b/hal/audio_extn/ext_hw_plugin.c
index 5c78caa..cb79537 100644
--- a/hal/audio_extn/ext_hw_plugin.c
+++ b/hal/audio_extn/ext_hw_plugin.c
@@ -201,6 +201,7 @@
break;
case USECASE_ICC_CALL:
*plugin_usecase = AUDIO_HAL_PLUGIN_USECASE_ICC;
+ break;
default:
ret = -EINVAL;
}
diff --git a/hal/audio_extn/synth.c b/hal/audio_extn/synth.c
new file mode 100755
index 0000000..3656b40
--- /dev/null
+++ b/hal/audio_extn/synth.c
@@ -0,0 +1,249 @@
+/* synth.c
+Copyright (c) 2012-2015,2016,2020 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.*/
+
+#define LOG_TAG "audio_hw_synth"
+/*#define LOG_NDEBUG 0*/
+#define LOG_NDDEBUG 0
+
+#include <errno.h>
+#include <math.h>
+#include <log/log.h>
+#include <unistd.h>
+
+#include "audio_hw.h"
+#include "platform.h"
+#include "platform_api.h"
+#include <stdlib.h>
+#include <cutils/str_parms.h>
+#include <audio_extn.h>
+
+#ifdef DYNAMIC_LOG_ENABLED
+#include <log_xml_parser.h>
+#define LOG_MASK HAL_MOD_FILE_FM
+#include <log_utils.h>
+#endif
+
+#define AUDIO_PARAMETER_KEY_SYNTH_ENABLE "synth_enable"
+
+static int32_t synth_start(struct audio_device *adev);
+static int32_t synth_stop(struct audio_device *adev);
+
+static struct pcm_config pcm_config_synth = {
+ .channels = 4,
+ .rate = 16000,
+ .period_size = 240,
+ .period_count = 2,
+ .format = PCM_FORMAT_S16_LE,
+ .start_threshold = 0,
+ .stop_threshold = INT_MAX,
+ .avail_min = 0,
+};
+
+struct synth_module {
+ struct pcm *pcm_rx;
+ struct pcm *pcm_tx;
+ bool is_synth_running;
+ audio_usecase_t ucid;
+};
+
+static struct synth_module synthmod = {
+ .pcm_rx = NULL,
+ .pcm_tx = NULL,
+ .is_synth_running = 0,
+ .ucid = USECASE_AUDIO_PLAYBACK_SYNTHESIZER,
+};
+
+static fp_platform_get_pcm_device_id_t fp_platform_get_pcm_device_id;
+static fp_get_usecase_from_list_t fp_get_usecase_from_list;
+static fp_select_devices_t fp_select_devices;
+static fp_platform_get_pcm_device_id_t fp_platform_get_pcm_device_id;
+static fp_platform_send_audio_calibration_t fp_platform_send_audio_calibration;
+static fp_disable_audio_route_t fp_disable_audio_route;
+static fp_disable_snd_device_t fp_disable_snd_device;
+
+
+int32_t synth_start(struct audio_device *adev)
+{
+ int32_t ret = 0;
+ int pcm_dev_rx = -1, pcm_dev_tx = -1;
+ char mixer_path[MIXER_PATH_MAX_LENGTH];
+ struct audio_usecase *uc_info = NULL;
+
+ ALOGD("%s: Enable Synth", __func__);
+
+ // select devices
+ uc_info = (struct audio_usecase *)calloc(1, sizeof(*uc_info));
+ if (!uc_info) {
+ ALOGE("%s: allocate memory failed", __func__);
+ return -ENOMEM;
+ }
+
+ uc_info->id = synthmod.ucid;
+ uc_info->type = SYNTH_LOOPBACK;
+ uc_info->stream.out = adev->primary_output;
+ list_init(&uc_info->device_list);
+ assign_devices(&uc_info->device_list, &adev->primary_output->device_list);
+ uc_info->in_snd_device = SND_DEVICE_NONE;
+ uc_info->out_snd_device = SND_DEVICE_OUT_SPEAKER;
+
+ list_add_tail(&adev->usecase_list, &uc_info->list);
+
+ fp_select_devices(adev, synthmod.ucid);
+
+ // open pcm rx/tx
+ pcm_dev_tx = fp_platform_get_pcm_device_id(USECASE_AUDIO_PLAYBACK_SYNTHESIZER, PCM_CAPTURE);
+ pcm_dev_rx = fp_platform_get_pcm_device_id(USECASE_AUDIO_PLAYBACK_SYNTHESIZER, PCM_PLAYBACK);
+
+ if (pcm_dev_tx < 0 || pcm_dev_rx < 0 ) {
+ ALOGE("%s: Invalid PCM devices (rx: %d tx: %d) for the usecase(%d)",
+ __func__, pcm_dev_rx, pcm_dev_tx, uc_info->id);
+ ret = -EIO;
+ goto exit;
+ }
+
+ //open pcm rx/tx
+ synthmod.pcm_tx = pcm_open(adev->snd_card,
+ pcm_dev_tx,
+ PCM_IN, &pcm_config_synth);
+ if (synthmod.pcm_tx &&
+ !pcm_is_ready(synthmod.pcm_tx)) {
+ ALOGE("%s: pcm_tx %s", __func__,
+ pcm_get_error(synthmod.pcm_tx));
+ ret = -EIO;
+ goto exit;
+ }
+ synthmod.pcm_rx = pcm_open(adev->snd_card,
+ pcm_dev_rx,
+ PCM_OUT, &pcm_config_synth);
+ if (synthmod.pcm_rx &&
+ !pcm_is_ready(synthmod.pcm_rx)) {
+ ALOGE("%s: pcm_rx %s", __func__,
+ pcm_get_error(synthmod.pcm_rx));
+ ret = -EIO;
+ goto exit;
+ }
+
+ if (pcm_start(synthmod.pcm_tx) < 0) {
+ ALOGE("%s: pcm start for pcm tx failed", __func__);
+ ret = -EIO;
+ goto exit;
+ }
+ if (pcm_start(synthmod.pcm_rx) < 0) {
+ ALOGE("%s: pcm start for pcm rx failed", __func__);
+ ret = -EIO;
+ goto exit;
+ }
+
+ synthmod.is_synth_running = true;
+ return ret;
+
+exit:
+ synth_stop(adev);
+ ALOGE("%s: Problem in Synth start: status(%d)", __func__, ret);
+ return ret;
+}
+
+int32_t synth_stop(struct audio_device *adev)
+{
+ int32_t ret = 0;
+ struct audio_usecase *uc_info;
+
+ ALOGD("Enter %s:", __func__);
+ synthmod.is_synth_running = false;
+
+ if (synthmod.pcm_tx) {
+ pcm_close(synthmod.pcm_tx);
+ synthmod.pcm_tx = NULL;
+ }
+
+ if (synthmod.pcm_rx) {
+ pcm_close(synthmod.pcm_rx);
+ synthmod.pcm_rx = NULL;
+ }
+
+ uc_info = fp_get_usecase_from_list(adev, synthmod.ucid);
+ if (uc_info == NULL) {
+ ALOGE("%s: Could not find the usecase (%d) in the list",
+ __func__, synthmod.ucid);
+ return -EINVAL;
+ }
+
+ /* 3. Get and set stream specific mixer controls */
+ fp_disable_audio_route(adev, uc_info);
+
+ /* 4. Disable the rx and tx devices */
+ fp_disable_snd_device(adev, uc_info->out_snd_device);
+ fp_disable_snd_device(adev, uc_info->in_snd_device);
+
+ list_remove(&uc_info->list);
+ free(uc_info);
+
+ ALOGD("%s: exit: status(%d)", __func__, ret);
+ return ret;
+}
+
+bool synth_is_active(struct audio_device *adev) {
+ struct audio_usecase *synth_usecase = NULL;
+ synth_usecase = fp_get_usecase_from_list(adev, synthmod.ucid);
+ if (synth_usecase != NULL)
+ return true;
+ else
+ return false;
+}
+
+void synth_set_parameters(struct audio_device *adev,
+ struct str_parms *parms)
+{
+ int ret, val;
+ char value[32]={0};
+
+ ALOGD("%s: enter", __func__);
+ ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_SYNTH_ENABLE, value, sizeof(value));
+ if (ret >= 0) {
+ if (!strncmp(value,"true",sizeof(value)) && !synthmod.is_synth_running) {
+ synth_start(adev);
+ }
+ else if (!strncmp(value,"false",sizeof(value)) && synthmod.is_synth_running) {
+ synth_stop(adev);
+ } else {
+ ALOGE("Not support key value");
+ }
+ }
+
+ ALOGD("%s: exit", __func__);
+}
+
+void synth_init(synth_init_config_t init_config)
+{
+ fp_platform_get_pcm_device_id = init_config.fp_platform_get_pcm_device_id;
+ fp_get_usecase_from_list = init_config.fp_get_usecase_from_list;
+ fp_select_devices = init_config.fp_select_devices;
+ fp_disable_audio_route = init_config.fp_disable_audio_route;
+ fp_disable_snd_device = init_config.fp_disable_snd_device;
+}
+
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
old mode 100644
new mode 100755
index 366fc85..32b99e0
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -164,6 +164,9 @@
STRING_TO_ENUM(AUDIO_INPUT_FLAG_VOIP_TX),
STRING_TO_ENUM(AUDIO_INPUT_FLAG_HW_AV_SYNC),
STRING_TO_ENUM(AUDIO_INPUT_FLAG_DIRECT),
+ STRING_TO_ENUM(AUDIO_INPUT_FLAG_PRIMARY),
+ STRING_TO_ENUM(AUDIO_INPUT_FLAG_FRONT_PASSENGER),
+ STRING_TO_ENUM(AUDIO_INPUT_FLAG_REAR_SEAT),
};
const struct string_to_enum s_format_name_to_enum_table[] = {
@@ -995,6 +998,22 @@
ALOGV("%s Selected apptype: playback %d capture %d",
__func__, usecase->out_app_type_cfg.app_type, usecase->in_app_type_cfg.app_type);
break;
+ case SYNTH_LOOPBACK:
+ /* update out_app_type_cfg */
+ usecase->out_app_type_cfg.sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
+ usecase->out_app_type_cfg.bit_width =
+ platform_get_snd_device_bit_width(usecase->out_snd_device);
+ usecase->out_app_type_cfg.app_type =
+ platform_get_default_app_type_v2(adev->platform, PCM_PLAYBACK);
+ /* update in_app_type_cfg */
+ usecase->in_app_type_cfg.sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
+ usecase->in_app_type_cfg.bit_width =
+ platform_get_snd_device_bit_width(usecase->in_snd_device);
+ usecase->in_app_type_cfg.app_type =
+ platform_get_default_app_type_v2(adev->platform, PCM_CAPTURE);
+ ALOGV("%s Selected apptype: playback %d capture %d",
+ __func__, usecase->out_app_type_cfg.app_type, usecase->in_app_type_cfg.app_type);
+ break;
default:
ALOGE("%s: app type cfg not supported for usecase type (%d)",
__func__, usecase->type);
@@ -1214,6 +1233,64 @@
return rc;
}
+static int audio_extn_utils_send_app_type_cfg_synth(struct audio_device *adev,
+ struct audio_usecase *usecase)
+{
+ int pcm_device_id, acdb_dev_id = 0, snd_device = usecase->out_snd_device;
+ int32_t sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ int app_type = 0, rc = 0;
+ bool is_bus_dev_usecase = false;
+
+ ALOGV("%s", __func__);
+
+ if (usecase->type != SYNTH_LOOPBACK) {
+ ALOGV("%s: not a SYNTH path, no need to cfg app type", __func__);
+ rc = 0;
+ goto exit_send_app_type_cfg;
+ }
+ if (usecase->id != USECASE_AUDIO_PLAYBACK_SYNTHESIZER) {
+ ALOGV("%s: a usecase where app type cfg is not required", __func__);
+ rc = 0;
+ goto exit_send_app_type_cfg;
+ }
+
+ if (compare_device_type(&usecase->device_list, AUDIO_DEVICE_OUT_BUS)) {
+ is_bus_dev_usecase = true;
+ }
+
+ snd_device = usecase->out_snd_device;
+ pcm_device_id = platform_get_pcm_device_id(usecase->id, PCM_PLAYBACK);
+
+ 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 (usecase->type == SYNTH_LOOPBACK) {
+ /* config SYNTH session: 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;
+ }
+
+ rc = 0;
+exit_send_app_type_cfg:
+ return rc;
+}
+
int audio_extn_utils_get_app_sample_rate_for_device(
struct audio_device *adev,
struct audio_usecase *usecase, int snd_device)
@@ -1561,6 +1638,8 @@
return audio_extn_utils_send_app_type_cfg_hfp(adev, usecase);
} else if (usecase->type == ICC_CALL) {
return audio_extn_utils_send_app_type_cfg_icc(adev, usecase);
+ } else if (usecase->type == SYNTH_LOOPBACK) {
+ return audio_extn_utils_send_app_type_cfg_synth(adev, usecase);
}
switch (usecase->type) {
@@ -1963,7 +2042,7 @@
usecase->stream.in->app_type_cfg.app_type);
} else if ((type == PCM_HFP_CALL) || (type == PCM_CAPTURE) ||
(type == TRANSCODE_LOOPBACK_RX && usecase->stream.inout != NULL) ||
- (type == ICC_CALL)) {
+ (type == ICC_CALL) || (type == SYNTH_LOOPBACK)) {
platform_send_audio_calibration(adev->platform, usecase,
platform_get_default_app_type_v2(adev->platform, usecase->type));
} else {
@@ -2717,8 +2796,8 @@
#endif
#define MAX_SND_CARD 8
-#define RETRY_US 1000000
-#define RETRY_NUMBER 40
+#define RETRY_US 400000
+#define RETRY_NUMBER 100
#define PLATFORM_INFO_XML_PATH "audio_platform_info.xml"
#define PLATFORM_INFO_XML_BASE_STRING "audio_platform_info"
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
old mode 100644
new mode 100755
index f441d3b..8e4f9e1
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -422,6 +422,11 @@
[USECASE_AUDIO_PLAYBACK_REAR_SEAT] = "rear-seat-playback",
[USECASE_AUDIO_FM_TUNER_EXT] = "fm-tuner-ext",
[USECASE_ICC_CALL] = "icc-call",
+
+ [USECASE_AUDIO_RECORD_BUS] = "audio-record",
+ [USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER] = "front-passenger-record",
+ [USECASE_AUDIO_RECORD_BUS_REAR_SEAT] = "rear-seat-record",
+ [USECASE_AUDIO_PLAYBACK_SYNTHESIZER] = "synth-loopback",
};
static const audio_usecase_t offload_usecases[] = {
@@ -935,6 +940,38 @@
adev->asrc_mode_enabled = false;
}
+static void check_and_configure_headphone(struct audio_device *adev,
+ struct audio_usecase *uc_info,
+ snd_device_t snd_device)
+{
+ struct listnode *node;
+ struct audio_usecase *usecase;
+ int new_backend_idx, usecase_backend_idx;
+ bool spkr_hph_single_be_native_concurrency;
+
+ new_backend_idx = platform_get_backend_index(snd_device);
+ spkr_hph_single_be_native_concurrency = platform_get_spkr_hph_single_be_native_concurrency_flag();
+ if ( spkr_hph_single_be_native_concurrency && (new_backend_idx == DEFAULT_CODEC_BACKEND)) {
+ list_for_each(node, &adev->usecase_list) {
+ usecase = node_to_item(node, struct audio_usecase, list);
+ 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)) {
+ disable_audio_route(adev, usecase);
+ disable_snd_device(adev, usecase->out_snd_device);
+ usecase->stream.out->sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ platform_check_and_set_codec_backend_cfg(adev, usecase,
+ usecase->out_snd_device);
+ enable_audio_route(adev, usecase);
+ enable_snd_device(adev, usecase->out_snd_device);
+ }
+ }
+ }
+ }
+}
+
/*
* - Enable ASRC mode for incoming mix path use case(Headphone backend)if Headphone
* 44.1 or Native DSD backends are enabled for any of current use case.
@@ -2689,7 +2726,8 @@
if ((usecase->type == VOICE_CALL) ||
(usecase->type == VOIP_CALL) ||
(usecase->type == PCM_HFP_CALL)||
- (usecase->type == ICC_CALL)) {
+ (usecase->type == ICC_CALL) ||
+ (usecase->type == SYNTH_LOOPBACK)) {
if(usecase->stream.out == NULL) {
ALOGE("%s: stream.out is NULL", __func__);
return -EINVAL;
@@ -2853,11 +2891,14 @@
if (!priority_in)
priority_in = usecase->stream.in;
}
-
- in_snd_device = platform_get_input_snd_device(adev->platform,
- priority_in,
- &out_devices,
- usecase->type);
+ if (compare_device_type(&usecase->device_list, AUDIO_DEVICE_IN_BUS)){
+ in_snd_device = audio_extn_auto_hal_get_snd_device_for_car_audio_stream(priority_in->car_audio_stream);
+ }
+ else
+ in_snd_device = platform_get_input_snd_device(adev->platform,
+ priority_in,
+ &out_devices,
+ usecase->type);
}
}
}
@@ -2968,6 +3009,7 @@
/* Enable new sound devices */
if (out_snd_device != SND_DEVICE_NONE) {
check_usecases_codec_backend(adev, usecase, out_snd_device);
+ check_and_configure_headphone(adev, usecase, out_snd_device);
if (platform_check_codec_asrc_support(adev->platform))
check_and_set_asrc_mode(adev, usecase, out_snd_device);
enable_snd_device(adev, out_snd_device);
@@ -3330,7 +3372,7 @@
done_open:
audio_streaming_hint_end();
audio_extn_perf_lock_release(&adev->perf_lock_handle);
- ALOGV("%s: exit", __func__);
+ ALOGD("%s: exit", __func__);
enable_gcov();
return ret;
@@ -4179,7 +4221,7 @@
}
audio_streaming_hint_end();
audio_extn_perf_lock_release(&adev->perf_lock_handle);
- ALOGV("%s: exit", __func__);
+ ALOGD("%s: exit", __func__);
if (out->usecase == USECASE_AUDIO_PLAYBACK_ULL ||
out->usecase == USECASE_AUDIO_PLAYBACK_MMAP) {
@@ -4975,6 +5017,7 @@
ret = voice_start_call(adev);
}
} else {
+ platform_is_volume_boost_supported_device(adev->platform, &new_devices);
adev->current_call_output = out;
voice_update_devices_for_all_voice_usecases(adev);
}
@@ -9462,6 +9505,20 @@
in->usecase = USECASE_AUDIO_RECORD;
+ /* validate bus device address */
+ if (compare_device_type(&in->device_list, AUDIO_DEVICE_IN_BUS)) {
+ /* extract car audio stream index */
+ in->car_audio_stream =
+ audio_extn_auto_hal_get_car_audio_stream_from_address(address);
+ if (in->car_audio_stream < 0) {
+ ALOGE("%s: invalid car audio stream %x",
+ __func__, in->car_audio_stream);
+ ret = -EINVAL;
+ goto err_open;
+ }
+ ALOGV("%s: car_audio_stream 0x%x", __func__, in->car_audio_stream);
+ }
+
if (in->source == AUDIO_SOURCE_FM_TUNER) {
if(!get_usecase_from_list(adev, USECASE_AUDIO_RECORD_FM_VIRTUAL))
in->usecase = USECASE_AUDIO_RECORD_FM_VIRTUAL;
@@ -9665,6 +9722,14 @@
}
}
}
+ if (compare_device_type(&in->device_list, AUDIO_DEVICE_IN_BUS)) {
+ ret = audio_extn_auto_hal_open_input_stream(in);
+ if (ret) {
+ ALOGE("%s: Failed to open input stream for bus device", __func__);
+ ret = -EINVAL;
+ goto err_open;
+ }
+ }
}
if (audio_extn_ssr_get_stream() != in)
in->config.channels = channel_count;
@@ -10797,7 +10862,7 @@
adev->use_old_pspd_mix_ctrl = true;
}
- ALOGV("%s: exit", __func__);
+ ALOGD("%s: exit", __func__);
return 0;
adev_open_err:
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
old mode 100644
new mode 100755
index da68656..a2e5331
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -244,6 +244,11 @@
USECASE_AUDIO_PLAYBACK_PHONE,
USECASE_AUDIO_PLAYBACK_FRONT_PASSENGER,
USECASE_AUDIO_PLAYBACK_REAR_SEAT,
+ USECASE_AUDIO_RECORD_BUS,
+ USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER,
+ USECASE_AUDIO_RECORD_BUS_REAR_SEAT,
+
+ USECASE_AUDIO_PLAYBACK_SYNTHESIZER,
/*Audio FM Tuner usecase*/
USECASE_AUDIO_FM_TUNER_EXT,
@@ -330,12 +335,15 @@
*/
#define MAX_CAR_AUDIO_STREAMS 32
enum {
- CAR_AUDIO_STREAM_MEDIA = 0x1,
- CAR_AUDIO_STREAM_SYS_NOTIFICATION = 0x2,
- CAR_AUDIO_STREAM_NAV_GUIDANCE = 0x4,
- CAR_AUDIO_STREAM_PHONE = 0x8,
- CAR_AUDIO_STREAM_FRONT_PASSENGER = 0x100,
- CAR_AUDIO_STREAM_REAR_SEAT = 0x10000,
+ CAR_AUDIO_STREAM_MEDIA = 0x1,
+ CAR_AUDIO_STREAM_SYS_NOTIFICATION = 0x2,
+ CAR_AUDIO_STREAM_NAV_GUIDANCE = 0x4,
+ CAR_AUDIO_STREAM_PHONE = 0x8,
+ CAR_AUDIO_STREAM_IN_PRIMARY = 0x10,
+ CAR_AUDIO_STREAM_FRONT_PASSENGER = 0x100,
+ CAR_AUDIO_STREAM_IN_FRONT_PASSENGER = 0x200,
+ CAR_AUDIO_STREAM_REAR_SEAT = 0x10000,
+ CAR_AUDIO_STREAM_IN_REAR_SEAT = 0x20000,
};
struct stream_app_type_cfg {
@@ -464,7 +472,7 @@
error_log_t *error_log;
bool pspd_coeff_sent;
- int car_audio_stream;
+ int car_audio_stream; /* handle for car_audio_stream */
union {
char *addr;
@@ -538,6 +546,8 @@
error_log_t *error_log;
simple_stats_t start_latency_ms;
+
+ int car_audio_stream; /* handle for car_audio_stream*/
};
typedef enum {
@@ -550,6 +560,7 @@
TRANSCODE_LOOPBACK_TX,
PCM_PASSTHROUGH,
ICC_CALL,
+ SYNTH_LOOPBACK,
USECASE_TYPE_MAX
} usecase_type_t;
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
old mode 100644
new mode 100755
index 526a88f..041d1aa
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -282,6 +282,7 @@
static native_audio_prop na_props = {0, 0, NATIVE_AUDIO_MODE_INVALID};
static bool supports_true_32_bit = false;
+static bool spkr_hph_single_be_native_concurrency = false;
static int max_be_dai_names = 0;
static const struct be_dai_name_struct *be_dai_name_table;
@@ -523,6 +524,11 @@
REAR_SEAT_PCM_DEVICE},
[USECASE_AUDIO_FM_TUNER_EXT] = {-1, -1},
[USECASE_ICC_CALL] = {ICC_PCM_DEVICE, ICC_PCM_DEVICE},
+
+ [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},
};
/* Array to store sound devices */
@@ -635,6 +641,7 @@
[SND_DEVICE_OUT_CALL_PROXY] = "call-proxy",
[SND_DEVICE_OUT_HAPTICS] = "haptics",
[SND_DEVICE_OUT_ICC] = "bus-speaker",
+ [SND_DEVICE_OUT_SYNTH_SPKR] = "bus-speaker",
/* Capture sound devices */
[SND_DEVICE_IN_HANDSET_MIC] = "handset-mic",
@@ -778,6 +785,8 @@
[SND_DEVICE_OUT_VOIP_HEADPHONES] = "voip-headphones",
[SND_DEVICE_IN_VOICE_HEARING_AID] = "hearing-aid-mic",
[SND_DEVICE_IN_BUS] = "bus-mic",
+ [SND_DEVICE_IN_BUS_PAX] = "bus-mic",
+ [SND_DEVICE_IN_BUS_RSE] = "bus-mic",
[SND_DEVICE_IN_EC_REF_LOOPBACK] = "ec-ref-loopback",
[SND_DEVICE_IN_HANDSET_DMIC_AND_EC_REF_LOOPBACK] = "handset-dmic-and-ec-ref-loopback",
[SND_DEVICE_IN_HANDSET_QMIC_AND_EC_REF_LOOPBACK] = "handset-qmic-and-ec-ref-loopback",
@@ -785,6 +794,7 @@
[SND_DEVICE_IN_HANDSET_8MIC_AND_EC_REF_LOOPBACK] = "handset-8mic-and-ec-ref-loopback",
[SND_DEVICE_IN_CALL_PROXY] = "call-proxy-in",
[SND_DEVICE_IN_ICC] = "speaker-mic",
+ [SND_DEVICE_IN_SYNTH_MIC] = "speaker-mic",
};
// Platform specific backend bit width table
@@ -931,6 +941,7 @@
[SND_DEVICE_OUT_CALL_PROXY] = 32,
[SND_DEVICE_OUT_HAPTICS] = 200,
[SND_DEVICE_OUT_ICC] = 16,
+ [SND_DEVICE_OUT_SYNTH_SPKR] = 134,
[SND_DEVICE_IN_HANDSET_MIC] = 4,
[SND_DEVICE_IN_HANDSET_MIC_SB] = 163,
[SND_DEVICE_IN_HANDSET_MIC_NN] = 183,
@@ -1069,8 +1080,11 @@
[SND_DEVICE_IN_CAMCORDER_SELFIE_PORTRAIT] = 4,
[SND_DEVICE_IN_VOICE_HEARING_AID] = 44,
[SND_DEVICE_IN_BUS] = 11,
+ [SND_DEVICE_IN_BUS_PAX] = 11,
+ [SND_DEVICE_IN_BUS_RSE] = 11,
[SND_DEVICE_IN_CALL_PROXY] = 33,
[SND_DEVICE_IN_ICC] = 46,
+ [SND_DEVICE_IN_SYNTH_MIC] = 11,
};
struct name_to_index {
@@ -1322,6 +1336,8 @@
/* For legacy xml file parsing */
{TO_NAME_INDEX(SND_DEVICE_IN_CAMCORDER_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_BUS)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_BUS_PAX)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_BUS_RSE)},
{TO_NAME_INDEX(SND_DEVICE_IN_EC_REF_LOOPBACK)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_DMIC_AND_EC_REF_LOOPBACK)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_QMIC_AND_EC_REF_LOOPBACK)},
@@ -1331,6 +1347,8 @@
/* ICC */
{TO_NAME_INDEX(SND_DEVICE_IN_ICC)},
{TO_NAME_INDEX(SND_DEVICE_OUT_ICC)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_SYNTH_SPKR)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_SYNTH_MIC)},
};
static char * backend_tag_table[SND_DEVICE_MAX] = {0};
@@ -1403,6 +1421,10 @@
{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)},
+ {TO_NAME_INDEX(USECASE_AUDIO_RECORD_BUS)},
+ {TO_NAME_INDEX(USECASE_AUDIO_RECORD_BUS_FRONT_PASSENGER)},
+ {TO_NAME_INDEX(USECASE_AUDIO_RECORD_BUS_REAR_SEAT)},
+ {TO_NAME_INDEX(USECASE_AUDIO_PLAYBACK_SYNTHESIZER)},
};
static const struct name_to_index usecase_type_index[USECASE_TYPE_MAX] = {
@@ -2618,9 +2640,13 @@
hw_interface_table[SND_DEVICE_IN_CAMCORDER_SELFIE_PORTRAIT] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_VOICE_HEARING_AID] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_BUS] = strdup("TERT_TDM_TX_0");
+ hw_interface_table[SND_DEVICE_IN_BUS_PAX] = strdup("QUAT_TDM_TX_0");
+ hw_interface_table[SND_DEVICE_IN_BUS_RSE] = strdup("QUIN_TDM_TX_0");
hw_interface_table[SND_DEVICE_IN_CALL_PROXY] = strdup("CALL_PROXY_TX");
hw_interface_table[SND_DEVICE_IN_ICC] = strdup("TERT_TDM_TX_0");
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");
my_data->max_mic_count = PLATFORM_DEFAULT_MIC_COUNT;
/*remove ALAC & APE from DSP decoder list based on software decoder availability*/
@@ -3166,6 +3192,7 @@
list_init(&operator_info_list);
list_init(&app_type_entry_list);
+ ALOGD("%s: enter", __func__);
adev->snd_card = audio_extn_utils_open_snd_mixer(&adev->mixer);
if (adev->snd_card < 0) {
ALOGE("%s: Unable to find correct sound card", __func__);
@@ -4055,6 +4082,7 @@
platform_reset_edid_info(my_data);
free(snd_card_name);
+ ALOGD("%s: exit", __func__);
return my_data;
}
@@ -5159,6 +5187,27 @@
return ret;
}
+bool platform_get_spkr_hph_single_be_native_concurrency_flag()
+{
+ return spkr_hph_single_be_native_concurrency;
+}
+
+void spkr_hph_single_be_native_concurrency_params(struct str_parms *parms,
+ char *value, int len)
+{
+ int ret = 0;
+
+ ret = str_parms_get_str(parms, AUDIO_PARAMETER_SPKR_HPH_SINGLE_BE_NATIVE_CONCURRENCY,
+ value, len);
+ if (ret >= 0) {
+ if (value && !strncmp(value, "true", sizeof("true")))
+ spkr_hph_single_be_native_concurrency = true;
+ else
+ spkr_hph_single_be_native_concurrency = false;
+ str_parms_del(parms, AUDIO_PARAMETER_SPKR_HPH_SINGLE_BE_NATIVE_CONCURRENCY);
+ }
+}
+
void native_audio_get_params(struct str_parms *query,
struct str_parms *reply,
char *value, int len)
@@ -5387,7 +5436,7 @@
else if ((usecase->type == PCM_CAPTURE) && 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 == ICC_CALL) || (usecase->type == SYNTH_LOOPBACK))
snd_device = usecase->in_snd_device;
else if (usecase->type == TRANSCODE_LOOPBACK_RX)
snd_device = usecase->out_snd_device;
@@ -5411,7 +5460,8 @@
new_snd_device[0] = snd_device;
}
}
- if (((usecase->type == PCM_HFP_CALL) || (usecase->type == ICC_CALL)) &&
+ if (((usecase->type == PCM_HFP_CALL) || (usecase->type == ICC_CALL) ||
+ (usecase->type == SYNTH_LOOPBACK)) &&
is_bus_dev_usecase) {
num_devices = 2;
new_snd_device[0] = usecase->in_snd_device;
@@ -5436,7 +5486,8 @@
if ((usecase->type == PCM_CAPTURE) && (app_type == DEFAULT_APP_TYPE_RX_PATH)) {
ALOGD("Resetting app type for Tx path to default");
app_type = DEFAULT_APP_TYPE_TX_PATH;
- } else if (((usecase->type == PCM_HFP_CALL) || (usecase->type == ICC_CALL)) &&
+ } else if (((usecase->type == PCM_HFP_CALL) || (usecase->type == ICC_CALL) ||
+ (usecase->type == SYNTH_LOOPBACK)) &&
is_bus_dev_usecase) {
if (new_snd_device[i] >= SND_DEVICE_OUT_BEGIN &&
new_snd_device[i] < SND_DEVICE_OUT_END) {
@@ -5573,6 +5624,24 @@
return ret;
}
+void platform_is_volume_boost_supported_device(void *platform,
+ struct listnode *devices)
+{
+ struct platform_data *my_data = (struct platform_data *)platform;
+
+ if (my_data->voice_feature_set &&
+ !(compare_device_type(devices,
+ AUDIO_DEVICE_OUT_SPEAKER)) &&
+ !(compare_device_type(devices,
+ AUDIO_DEVICE_OUT_EARPIECE)) &&
+ !(my_data->adev->voice.tty_mode == TTY_MODE_HCO)) {
+ if(!my_data->acdb_reload_vocvoltable(VOICE_FEATURE_SET_DEFAULT)) {
+ my_data->voice_feature_set = 0;
+ ALOGD("%s: Unsupported volume boost device", __func__);
+ }
+ }
+}
+
int platform_switch_voice_call_device_post(void *platform,
snd_device_t out_snd_device,
snd_device_t in_snd_device)
@@ -8427,6 +8496,7 @@
/* handle audio calibration parameters */
set_audiocal(platform, parms, value, len);
+ spkr_hph_single_be_native_concurrency_params(parms, value, len);
native_audio_set_params(platform, parms, value, len);
audio_extn_spkr_prot_set_parameters(parms, value, len);
audio_extn_usb_set_sidetone_gain(parms, value, len);
@@ -9803,7 +9873,7 @@
struct audio_device_config_param *adev_device_cfg_ptr = adev->device_cfg_params;
int controller = -1;
int stream = -1;
-
+ bool combo_in_use = false;
/*BT devices backend is not configured from HAL hence skip*/
if (snd_device == SND_DEVICE_OUT_BT_A2DP ||
@@ -9918,6 +9988,9 @@
uc = node_to_item(node, struct audio_usecase, list);
struct stream_out *curr_out =
(struct stream_out*) uc->stream.out;
+ if (check_hdset_combo_device(uc->out_snd_device) &&
+ spkr_hph_single_be_native_concurrency)
+ combo_in_use = true;
/*if native audio playback
* is active then it will take priority
@@ -9926,7 +9999,13 @@
if (is_offload_usecase(uc->id) &&
(curr_out->sample_rate % OUTPUT_SAMPLING_RATE_44100 == 0)) {
ALOGD("%s:napb:native stream detected %d sampling rate", __func__, curr_out->sample_rate);
- sample_rate = curr_out->sample_rate;
+ if (combo_in_use && spkr_hph_single_be_native_concurrency) {
+ ALOGE("%s: native playback loses priority due to spkr_hph_single_be.\n",
+ __func__);
+ } else {
+ ALOGI("%s: native sample rate activates.\n", __func__);
+ sample_rate = curr_out->sample_rate;
+ }
}
}
@@ -9987,9 +10066,10 @@
/*set sample rate to 48khz if multiple sample rates are not supported in spkr and hdset*/
if (is_hdset_combo_device(&usecase->device_list) &&
- !my_data->is_multiple_sample_rate_combo_supported)
+ !my_data->is_multiple_sample_rate_combo_supported) {
sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
ALOGD("%s:becf: afe: set default Sample Rate(48k) for combo device",__func__);
+ }
}
if (backend_idx != platform_get_voice_call_backend(adev)
@@ -10417,7 +10497,7 @@
goto done;
}
- ALOGD("%s: backend_tag_table[%s]: old = %s new = %s", __func__,
+ ALOGV("%s: backend_tag_table[%s]: old = %s new = %s", __func__,
platform_get_snd_device_name(device),
backend_tag_table[device] != NULL ? backend_tag_table[device]: "null",
backend_tag);
@@ -10433,7 +10513,7 @@
if (hw_interface_table[device])
free(hw_interface_table[device]);
- ALOGD("%s: hw_interface_table[%d] = %s", __func__, device, hw_interface);
+ ALOGV("%s: hw_interface_table[%d] = %s", __func__, device, hw_interface);
hw_interface_table[device] = strdup(hw_interface);
}
done:
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
old mode 100644
new mode 100755
index 52e5f20..5f67510
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -206,6 +206,7 @@
SND_DEVICE_OUT_CALL_PROXY,
SND_DEVICE_OUT_HAPTICS,
SND_DEVICE_OUT_ICC,
+ SND_DEVICE_OUT_SYNTH_SPKR,
SND_DEVICE_OUT_END,
/*
@@ -353,6 +354,8 @@
SND_DEVICE_IN_CAMCORDER_SELFIE_PORTRAIT,
SND_DEVICE_IN_VOICE_HEARING_AID,
SND_DEVICE_IN_BUS,
+ SND_DEVICE_IN_BUS_PAX,
+ SND_DEVICE_IN_BUS_RSE,
SND_DEVICE_IN_EC_REF_LOOPBACK,
SND_DEVICE_IN_HANDSET_DMIC_AND_EC_REF_LOOPBACK,
SND_DEVICE_IN_HANDSET_QMIC_AND_EC_REF_LOOPBACK,
@@ -360,6 +363,7 @@
SND_DEVICE_IN_HANDSET_8MIC_AND_EC_REF_LOOPBACK,
SND_DEVICE_IN_CALL_PROXY,
SND_DEVICE_IN_ICC,
+ SND_DEVICE_IN_SYNTH_MIC,
SND_DEVICE_IN_END,
SND_DEVICE_MAX = SND_DEVICE_IN_END,
@@ -407,6 +411,8 @@
#define AUDIO_PARAMETER_KEY_TRUE_32_BIT "true_32_bit"
+#define AUDIO_PARAMETER_SPKR_HPH_SINGLE_BE_NATIVE_CONCURRENCY "spkr_hph_single_be_native_concurrency"
+
#define AUDIO_MAX_DSP_CHANNELS 32
#define ALL_SESSION_VSID 0xFFFFFFFF
diff --git a/hal/platform_api.h b/hal/platform_api.h
index f68d6e7..d4eb4f5 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -334,6 +334,7 @@
int platform_get_ext_disp_type(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();
#ifdef INSTANCE_ID_ENABLED
void platform_make_cal_cfg(acdb_audio_cal_cfg_t* cal, int acdb_dev_id,
@@ -433,4 +434,5 @@
int platform_set_island_cfg_on_device(struct audio_device* adev, snd_device_t snd_device,
bool enable);
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);
#endif // AUDIO_PLATFORM_API_H