Merge "configs: msmnile_au: add overlay for car service config"
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..73ab934
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,353 @@
+Includes modifications licensed under:
+
+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.
+
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for the Android-specific code. ==
+ =========================================================================
+
+Android Code
+Copyright 2005-2008 The Android Open Source Project
+
+This product includes software developed as part of
+The Android Open Source Project (http://source.android.com).
+
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for Apache Commons code. ==
+ =========================================================================
+
+Apache Commons
+Copyright 1999-2006 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for Jakarta Commons Logging. ==
+ =========================================================================
+
+Jakarta Commons Logging (JCL)
+Copyright 2005,2006 The Apache Software Foundation.
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for the Nuance code. ==
+ =========================================================================
+
+These files are Copyright 2007 Nuance Communications, but released under
+the Apache2 License.
+
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for the Media Codecs code. ==
+ =========================================================================
+
+Media Codecs
+These files are Copyright 1998 - 2009 PacketVideo, but released under
+the Apache2 License.
+
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for the TagSoup code. ==
+ =========================================================================
+
+This file is part of TagSoup and is Copyright 2002-2008 by John Cowan.
+
+TagSoup is licensed under the Apache License,
+Version 2.0. You may obtain a copy of this license at
+http://www.apache.org/licenses/LICENSE-2.0 . You may also have
+additional legal rights not granted by this license.
+
+TagSoup is distributed in the hope that it will be useful, but
+unless required by applicable law or agreed to in writing, TagSoup
+is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, either express or implied; not even the implied warranty
+of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for Additional Codecs code. ==
+ =========================================================================
+
+Additional Codecs
+These files are Copyright 2003-2010 VisualOn, but released under
+the Apache2 License.
+
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for the Audio Effects code. ==
+ =========================================================================
+
+Audio Effects
+These files are Copyright (C) 2004-2010 NXP Software and
+Copyright (C) 2010 The Android Open Source Project, but released under
+the Apache2 License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+
+Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/,
+and http://www.unicode.org/cldr/data/ . Unicode Software includes any
+source code published in the Unicode Standard or under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
+http://www.unicode.org/cldr/data/.
+
+NOTICE TO USER: Carefully read the following legal agreement. BY
+DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA
+FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY
+ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF
+THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY,
+DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright © 1991-2008 Unicode, Inc. All rights reserved. Distributed
+under the Terms of Use in http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation (the
+"Data Files") or Unicode software and any associated documentation (the
+"Software") to deal in the Data Files or Software without restriction,
+including without limitation the rights to use, copy, modify, merge,
+publish, distribute, and/or sell copies of the Data Files or Software,
+and to permit persons to whom the Data Files or Software are furnished to
+do so, provided that (a) the above copyright notice(s) and this permission
+notice appear with all copies of the Data Files or Software, (b) both the
+above copyright notice(s) and this permission notice appear in associated
+documentation, and (c) there is clear notice in each modified Data File
+or in the Software as well as in the documentation associated with the
+Data File(s) or Software that the data or software has been modified.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
+INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
+OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
+OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in these Data Files or Software without prior written
+authorization of the copyright holder.
diff --git a/configs/apq8098_latv/apq8098_latv.mk b/configs/apq8098_latv/apq8098_latv.mk
index 2853c3a..7079ea7 100644
--- a/configs/apq8098_latv/apq8098_latv.mk
+++ b/configs/apq8098_latv/apq8098_latv.mk
@@ -119,7 +119,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
endif
# Listen configuration file
diff --git a/configs/atoll/atoll.mk b/configs/atoll/atoll.mk
index 6e5a786..3432cdc 100644
--- a/configs/atoll/atoll.mk
+++ b/configs/atoll/atoll.mk
@@ -179,7 +179,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
# Reduce client buffer size for fast audio output tracks
PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/configs/common/bluetooth_qti_audio_policy_configuration.xml b/configs/common/bluetooth_qti_audio_policy_configuration.xml
new file mode 100644
index 0000000..f0b2506
--- /dev/null
+++ b/configs/common/bluetooth_qti_audio_policy_configuration.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Bluetooth Audio HAL Audio Policy Configuration file -->
+<module name="bluetooth_qti" halVersion="2.0">
+ <mixPorts>
+ <!-- A2DP Audio Ports -->
+ <mixPort name="a2dp output" role="source"/>
+ <!-- Hearing AIDs Audio Ports -->
+ <mixPort name="hearing aid output" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="24000,16000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ </mixPorts>
+ <devicePorts>
+ <!-- A2DP Audio Ports -->
+ <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="44100,48000,88200,96000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </devicePort>
+ <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="44100,48000,88200,96000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </devicePort>
+ <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="44100,48000,88200,96000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </devicePort>
+ <!-- Hearing AIDs Audio Ports -->
+ <devicePort tagName="BT Hearing Aid Out" type="AUDIO_DEVICE_OUT_HEARING_AID" role="sink"/>
+ </devicePorts>
+ <routes>
+ <route type="mix" sink="BT A2DP Out"
+ sources="a2dp output"/>
+ <route type="mix" sink="BT A2DP Headphones"
+ sources="a2dp output"/>
+ <route type="mix" sink="BT A2DP Speaker"
+ sources="a2dp output"/>
+ <route type="mix" sink="BT Hearing Aid Out"
+ sources="hearing aid output"/>
+ </routes>
+</module>
diff --git a/configs/kona/audio_platform_info.xml b/configs/kona/audio_platform_info.xml
index 5b12029..742f460 100644
--- a/configs/kona/audio_platform_info.xml
+++ b/configs/kona/audio_platform_info.xml
@@ -110,6 +110,7 @@
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="36" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="36" />
<usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="37" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsatz.13"/>
@@ -145,6 +146,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -196,10 +198,16 @@
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" interface="TX_CDC_DMA_TX_3"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_AEC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/>
diff --git a/configs/kona/audio_platform_info_intcodec.xml b/configs/kona/audio_platform_info_intcodec.xml
index 80fc6be..4493f57 100644
--- a/configs/kona/audio_platform_info_intcodec.xml
+++ b/configs/kona/audio_platform_info_intcodec.xml
@@ -94,6 +94,7 @@
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="36" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="36" />
<usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="37" />
</pcm_ids>
<config_params>
<!-- In the below value string, the value indicates default mono -->
@@ -102,7 +103,7 @@
<param key="spkr_1_tz_name" value="wsatz.13"/>
<param key="spkr_2_tz_name" value="wsatz.14"/>
<param key="true_32_bit" value="true"/>
- <param key="native_audio_mode" value="true"/>
+ <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"/>
</config_params>
@@ -149,6 +150,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -214,11 +216,17 @@
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS_SB" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_SB" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" interface="TX_CDC_DMA_TX_3"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_AEC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_SB" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/>
diff --git a/configs/kona/audio_platform_info_qrd.xml b/configs/kona/audio_platform_info_qrd.xml
index fdeb319..0d73868 100644
--- a/configs/kona/audio_platform_info_qrd.xml
+++ b/configs/kona/audio_platform_info_qrd.xml
@@ -92,6 +92,7 @@
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="36" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="36" />
<usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="37" />
</pcm_ids>
<config_params>
<!-- In the below value string, the value indicates default mono -->
@@ -99,7 +100,7 @@
<param key="mono_speaker" value="right"/>
<param key="spkr_2_tz_name" value="wsatz.14"/>
<param key="true_32_bit" value="true"/>
- <param key="native_audio_mode" value="true"/>
+ <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"/>
</config_params>
@@ -160,6 +161,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -225,11 +227,17 @@
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS_SB" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS_SB" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" interface="TX_CDC_DMA_TX_3"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_AEC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_SB" interface="TX_CDC_DMA_TX_3"/>
- <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/>
diff --git a/configs/kona/audio_policy_configuration.xml b/configs/kona/audio_policy_configuration.xml
index 657b5d1..1594f3d 100644
--- a/configs/kona/audio_policy_configuration.xml
+++ b/configs/kona/audio_policy_configuration.xml
@@ -184,7 +184,7 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
- <mixPort name="record_24" role="sink">
+ <mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
diff --git a/configs/kona/kona.mk b/configs/kona/kona.mk
index e9b79de..08f76bf 100644
--- a/configs/kona/kona.mk
+++ b/configs/kona/kona.mk
@@ -197,7 +197,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
# Reduce client buffer size for fast audio output tracks
PRODUCT_PROPERTY_OVERRIDES += \
@@ -207,6 +208,14 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio_hal.period_size=192
+##Ambisonic Capture
+PRODUCT_PROPERTY_OVERRIDES += \
+vendor.audio.ambisonic.capture=true \
+vendor.audio.ambisonic.auto.profile=true
+
+PRODUCT_PROPERTY_OVERRIDES += \
+vendor.audio.apptype.multirec.enabled=true
+
##fluencetype can be "fluence" or "fluencepro" or "none"
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.audio.sdk.fluencetype=none\
@@ -394,12 +403,12 @@
vendor.audio.feature.compress_in.enable=true \
vendor.audio.feature.compress_meta_data.enable=true \
vendor.audio.feature.compr_voip.enable=false \
-vendor.audio.feature.concurrent_capture.enable=false \
+vendor.audio.feature.concurrent_capture.enable=true \
vendor.audio.feature.custom_stereo.enable=true \
vendor.audio.feature.display_port.enable=true \
vendor.audio.feature.dsm_feedback.enable=false \
vendor.audio.feature.dynamic_ecns.enable=true \
-vendor.audio.feature.ext_hw_plugin.enable=true \
+vendor.audio.feature.ext_hw_plugin.enable=false \
vendor.audio.feature.external_dsp.enable=false \
vendor.audio.feature.external_speaker.enable=false \
vendor.audio.feature.external_speaker_tfa.enable=false \
@@ -444,6 +453,15 @@
vendor.qti.hardware.audiohalext@1.0-impl \
vendor.qti.hardware.audiohalext-utils
+# enable audio hidl hal 5.0
+PRODUCT_PACKAGES += \
+ android.hardware.audio@5.0 \
+ android.hardware.audio.common@5.0 \
+ android.hardware.audio.common@5.0-util \
+ android.hardware.audio@5.0-impl \
+ android.hardware.audio.effect@5.0 \
+ android.hardware.audio.effect@5.0-impl
+
PRODUCT_PACKAGES_ENG += \
VoicePrintTest \
VoicePrintDemo
diff --git a/configs/kona/mixer_paths.xml b/configs/kona/mixer_paths.xml
index 3e40870..3949c7c 100644
--- a/configs/kona/mixer_paths.xml
+++ b/configs/kona/mixer_paths.xml
@@ -61,11 +61,16 @@
<ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
<ctl name="MultiMedia5 Mixer TX_CDC_DMA_TX_3" value="0" />
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia1 Mixer 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="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" />
<ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_4" value="0" />
+ <ctl name="MultiMedia17 Mixer SLIM_7_TX" value="0" />
<ctl name="DISPLAY_PORT Mixer MultiMedia1" value="0" />
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="0" />
<ctl name="DISPLAY_PORT Mixer MultiMedia3" value="0" />
@@ -129,6 +134,7 @@
<ctl name="MultiMedia5 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia17 Mixer USB_AUDIO_TX" value="0" />
<ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
<ctl name="WSA_CDC_DMA_RX_0 Channels" value="One" />
<ctl name="RX_CDC_DMA_RX_0 Channels" value="One" />
@@ -175,6 +181,7 @@
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
<ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_MMode1" value="0" />
<!-- Multimode Voice1 BTSCO -->
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="0" />
<ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="0" />
@@ -191,6 +198,7 @@
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
<ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_MMode2" value="0" />
<!-- Multimode Voice2 BTSCO -->
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="0" />
<ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="0" />
@@ -423,6 +431,7 @@
<!-- defaults for mmap record -->
<ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia16 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia16 Mixer TERT_MI2S_TX" value="0" />
<ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="0" />
@@ -440,6 +449,10 @@
<ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
</path>
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
+ </path>
+
<path name="echo-reference display-port">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="DISPLAY_PORT" />
</path>
@@ -507,6 +520,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="1" />
</path>
+ <path name="deep-buffer-playback headset">
+ <path name="deep-buffer-playback headphones" />
+ </path>
+
<path name="deep-buffer-playback speaker-and-headphones">
<path name="deep-buffer-playback headphones" />
<path name="deep-buffer-playback" />
@@ -578,6 +595,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="1" />
</path>
+ <path name="low-latency-playback headset">
+ <path name="low-latency-playback headphones" />
+ </path>
+
<path name="low-latency-playback speaker-and-headphones">
<path name="low-latency-playback headphones" />
<path name="low-latency-playback" />
@@ -613,6 +634,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback headset">
+ <path name="audio-ull-playback headphones" />
+ </path>
+
<path name="audio-ull-playback speaker-and-headphones">
<path name="audio-ull-playback" />
<path name="audio-ull-playback headphones" />
@@ -730,6 +755,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
</path>
+ <path name="compress-offload-playback headset">
+ <path name="compress-offload-playback headphones" />
+ </path>
+
<path name="compress-offload-playback headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
</path>
@@ -805,6 +834,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
</path>
+ <path name="compress-offload-playback2 headset">
+ <path name="compress-offload-playback2 headphones" />
+ </path>
+
<path name="compress-offload-playback2 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
@@ -881,6 +914,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
+ <path name="compress-offload-playback3 headset">
+ <path name="compress-offload-playback3 headphones" />
+ </path>
+
<path name="compress-offload-playback3 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -957,6 +994,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
+ <path name="compress-offload-playback4 headset">
+ <path name="compress-offload-playback4 headphones" />
+ </path>
+
<path name="compress-offload-playback4 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1032,6 +1073,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
+ <path name="compress-offload-playback5 headset">
+ <path name="compress-offload-playback5 headphones" />
+ </path>
+
<path name="compress-offload-playback5 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1107,6 +1152,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
+ <path name="compress-offload-playback6 headset">
+ <path name="compress-offload-playback6 headphones" />
+ </path>
+
<path name="compress-offload-playback6 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1182,6 +1231,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
+ <path name="compress-offload-playback7 headset">
+ <path name="compress-offload-playback7 headphones" />
+ </path>
+
<path name="compress-offload-playback7 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1257,6 +1310,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
+ <path name="compress-offload-playback8 headset">
+ <path name="compress-offload-playback8 headphones" />
+ </path>
+
<path name="compress-offload-playback8 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1332,6 +1389,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
+ <path name="compress-offload-playback9 headset">
+ <path name="compress-offload-playback9 headphones" />
+ </path>
+
<path name="compress-offload-playback9 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1381,6 +1442,10 @@
<path name="audio-record bt-sco" />
</path>
+ <path name="audio-record headset-mic">
+ <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="audio-record capture-fm">
<ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -1406,6 +1471,31 @@
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
</path>
+ <path name="audio-record-compress2">
+ <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 bt-sco">
+ <ctl name="MultiMedia17 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record-compress2 bt-sco" />
+ </path>
+
+ <path name="audio-record-compress2 bt-sco-swb">
+ <path name="audio-record-compress2 bt-sco" />
+ </path>
+
+ <path name="audio-record-compress2 usb-headset-mic">
+ <ctl name="MultiMedia17 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 headset-mic">
+ <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="low-latency-record">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
</path>
@@ -1447,6 +1537,10 @@
<ctl name="RX_CDC_DMA_RX_0_DL_HL Switch" value="1" />
</path>
+ <path name="play-fm headset">
+ <path name="play-fm headphones" />
+ </path>
+
<path name="incall-rec-uplink">
<ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
</path>
@@ -1471,6 +1565,10 @@
<path name="incall-rec-uplink" />
</path>
+ <path name="incall-rec-uplink headset-mic">
+ <path name="incall-rec-uplink" />
+ </path>
+
<path name="incall-rec-uplink-compress">
<ctl name="MultiMedia8 Mixer VOC_REC_UL" value="1" />
</path>
@@ -1495,6 +1593,10 @@
<path name="incall-rec-uplink-compress" />
</path>
+ <path name="incall-rec-uplink-compress headset-mic">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
<path name="incall-rec-downlink">
<ctl name="MultiMedia1 Mixer VOC_REC_DL" value="1" />
</path>
@@ -1519,6 +1621,10 @@
<path name="incall-rec-downlink" />
</path>
+ <path name="incall-rec-downlink headset-mic">
+ <path name="incall-rec-downlink" />
+ </path>
+
<path name="incall-rec-downlink-compress">
<ctl name="MultiMedia8 Mixer VOC_REC_DL" value="1" />
</path>
@@ -1543,6 +1649,10 @@
<path name="incall-rec-downlink-compress" />
</path>
+ <path name="incall-rec-downlink-compress headset-mic">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
<path name="incall-rec-uplink-and-downlink">
<path name="incall-rec-uplink" />
<path name="incall-rec-downlink" />
@@ -1568,6 +1678,10 @@
<path name="incall-rec-uplink-and-downlink" />
</path>
+ <path name="incall-rec-uplink-and-downlink headset-mic">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
<path name="incall-rec-uplink-and-downlink-compress">
<path name="incall-rec-uplink-compress" />
<path name="incall-rec-downlink-compress" />
@@ -1593,6 +1707,10 @@
<path name="incall-rec-uplink-and-downlink-compress" />
</path>
+ <path name="incall-rec-uplink-and-downlink-compress headset-mic">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
<path name="hfp-sco">
</path>
@@ -1662,6 +1780,11 @@
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
</path>
+ <path name="voicemmode1-call headset">
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_MMode1" value="1" />
+ </path>
+
<path name="voicemmode1-call bt-sco">
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="1" />
@@ -1711,6 +1834,11 @@
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
</path>
+ <path name="voicemmode2-call headset">
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_4_MMode2" value="1" />
+ </path>
+
<path name="voicemmode2-call bt-sco">
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="1" />
@@ -1819,6 +1947,10 @@
<path name="audio-record-voip bt-sco" />
</path>
+ <path name="audio-record-voip headset-mic">
+ <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="1" />
</path>
@@ -1828,10 +1960,10 @@
<!-- These are actual sound device specific mixer settings -->
<path name="amic2">
- <ctl name="TX DEC0 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX0" value="ADC1" />
- <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
- <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DEC5 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX5" value="ADC1" />
+ <ctl name="TX_CDC_DMA_TX_4 Channels" value="One" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="1" />
<ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP2" />
</path>
@@ -2027,8 +2159,6 @@
<ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
<ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX_HPH_PWR_MODE" value="LOHIFI" />
- <ctl name="RX HPH Mode" value="CLS_H_LOHIFI" />
<ctl name="RX_COMP1 Switch" value="1" />
<ctl name="RX_COMP2 Switch" value="1" />
<ctl name="HPHL_COMP Switch" value="1" />
@@ -2056,7 +2186,6 @@
<path name="headset-mic">
<path name="amic2" />
- <ctl name="TX_DEC0 Volume" value="84" />
</path>
<path name="headset-mic-liquid">
@@ -2113,6 +2242,10 @@
<path name="headphones" />
</path>
+ <path name="voice-headset">
+ <path name="headphones" />
+ </path>
+
<path name="voice-line">
<path name="voice-headphones" />
</path>
@@ -2648,6 +2781,10 @@
<ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
</path>
+ <path name="mmap-record headset-mic">
+ <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="hifi-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -2728,6 +2865,10 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink headset">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink speaker-and-headphones">
<path name="incall_music_uplink" />
</path>
diff --git a/configs/kona/mixer_paths_qrd.xml b/configs/kona/mixer_paths_qrd.xml
index 4a305ca..b8671d6 100644
--- a/configs/kona/mixer_paths_qrd.xml
+++ b/configs/kona/mixer_paths_qrd.xml
@@ -61,11 +61,16 @@
<ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
<ctl name="MultiMedia5 Mixer TX_CDC_DMA_TX_3" value="0" />
<ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia1 Mixer 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="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" />
<ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_4" value="0" />
+ <ctl name="MultiMedia17 Mixer SLIM_7_TX" value="0" />
<ctl name="DISPLAY_PORT Mixer MultiMedia1" value="0" />
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="0" />
<ctl name="DISPLAY_PORT Mixer MultiMedia3" value="0" />
@@ -129,6 +134,7 @@
<ctl name="MultiMedia5 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia17 Mixer USB_AUDIO_TX" value="0" />
<ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
<ctl name="WSA_CDC_DMA_RX_0 Channels" value="One" />
<ctl name="RX_CDC_DMA_RX_0 Channels" value="One" />
@@ -175,6 +181,7 @@
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
<ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_MMode1" value="0" />
<!-- Multimode Voice1 BTSCO -->
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="0" />
<ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="0" />
@@ -191,6 +198,7 @@
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
<ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_MMode2" value="0" />
<!-- Multimode Voice2 BTSCO -->
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="0" />
<ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="0" />
@@ -352,10 +360,10 @@
<ctl name="HPHR Volume" value="20" />
<ctl name="EAR SPKR PA Gain" value="G_DEFAULT" />
- <ctl name="TX_DEC0 Volume" value="102" />
- <ctl name="TX_DEC1 Volume" value="102" />
- <ctl name="TX_DEC2 Volume" value="102" />
- <ctl name="TX_DEC3 Volume" value="102" />
+ <ctl name="TX_DEC0 Volume" value="96" />
+ <ctl name="TX_DEC1 Volume" value="96" />
+ <ctl name="TX_DEC2 Volume" value="96" />
+ <ctl name="TX_DEC3 Volume" value="96" />
<ctl name="TX_DEC4 Volume" value="84" />
<ctl name="TX_DEC5 Volume" value="84" />
<ctl name="TX_DEC6 Volume" value="84" />
@@ -423,6 +431,7 @@
<!-- defaults for mmap record -->
<ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_3" value="0" />
+ <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_4" value="0" />
<ctl name="MultiMedia16 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia16 Mixer TERT_MI2S_TX" value="0" />
<ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="0" />
@@ -440,6 +449,10 @@
<ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
</path>
+ <path name="echo-reference headset">
+ <path name="echo-reference headphones" />
+ </path>
+
<path name="echo-reference display-port">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="DISPLAY_PORT" />
</path>
@@ -515,6 +528,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="1" />
</path>
+ <path name="deep-buffer-playback headset">
+ <path name="deep-buffer-playback headphones" />
+ </path>
+
<path name="deep-buffer-playback speaker-and-headphones">
<path name="deep-buffer-playback headphones" />
<path name="deep-buffer-playback" />
@@ -590,6 +607,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="1" />
</path>
+ <path name="low-latency-playback headset">
+ <path name="low-latency-playback headphones" />
+ </path>
+
<path name="low-latency-playback speaker-and-headphones">
<path name="low-latency-playback headphones" />
<path name="low-latency-playback" />
@@ -626,6 +647,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="1" />
</path>
+ <path name="audio-ull-playback headset">
+ <path name="audio-ull-playback headphones" />
+ </path>
+
<path name="audio-ull-playback speaker-and-headphones">
<path name="audio-ull-playback" />
<path name="audio-ull-playback headphones" />
@@ -747,6 +772,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
</path>
+ <path name="compress-offload-playback headset">
+ <path name="compress-offload-playback headphones" />
+ </path>
+
<path name="compress-offload-playback headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
</path>
@@ -822,6 +851,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
</path>
+ <path name="compress-offload-playback2 headset">
+ <path name="compress-offload-playback2 headphones" />
+ </path>
+
<path name="compress-offload-playback2 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
</path>
@@ -897,6 +930,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
+ <path name="compress-offload-playback3 headset">
+ <path name="compress-offload-playback3 headphones" />
+ </path>
+
<path name="compress-offload-playback3 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
</path>
@@ -973,6 +1010,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
+ <path name="compress-offload-playback4 headset">
+ <path name="compress-offload-playback4 headphones" />
+ </path>
+
<path name="compress-offload-playback4 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
</path>
@@ -1048,6 +1089,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
+ <path name="compress-offload-playback5 headset">
+ <path name="compress-offload-playback5 headphones" />
+ </path>
+
<path name="compress-offload-playback5 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
</path>
@@ -1123,6 +1168,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
+ <path name="compress-offload-playback6 headset">
+ <path name="compress-offload-playback6 headphones" />
+ </path>
+
<path name="compress-offload-playback6 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
</path>
@@ -1198,6 +1247,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
+ <path name="compress-offload-playback7 headset">
+ <path name="compress-offload-playback7 headphones" />
+ </path>
+
<path name="compress-offload-playback7 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
</path>
@@ -1273,6 +1326,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
+ <path name="compress-offload-playback8 headset">
+ <path name="compress-offload-playback8 headphones" />
+ </path>
+
<path name="compress-offload-playback8 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
</path>
@@ -1348,6 +1405,10 @@
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
+ <path name="compress-offload-playback9 headset">
+ <path name="compress-offload-playback9 headphones" />
+ </path>
+
<path name="compress-offload-playback9 headphones-44.1">
<ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
@@ -1393,6 +1454,10 @@
<path name="audio-record bt-sco" />
</path>
+ <path name="audio-record headset-mic">
+ <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="audio-record capture-fm">
<ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -1418,6 +1483,31 @@
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
</path>
+ <path name="audio-record-compress2">
+ <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_3" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 bt-sco">
+ <ctl name="MultiMedia17 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record-compress2 bt-sco" />
+ </path>
+
+ <path name="audio-record-compress2 bt-sco-swb">
+ <path name="audio-record-compress2 bt-sco" />
+ </path>
+
+ <path name="audio-record-compress2 usb-headset-mic">
+ <ctl name="MultiMedia17 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 headset-mic">
+ <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="low-latency-record">
<ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
</path>
@@ -1459,6 +1549,10 @@
<ctl name="RX_CDC_DMA_RX_0_DL_HL Switch" value="1" />
</path>
+ <path name="play-fm headset">
+ <path name="play-fm headphones" />
+ </path>
+
<path name="incall-rec-uplink">
<ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
</path>
@@ -1483,6 +1577,10 @@
<path name="incall-rec-uplink" />
</path>
+ <path name="incall-rec-uplink headset-mic">
+ <path name="incall-rec-uplink" />
+ </path>
+
<path name="incall-rec-uplink-compress">
<ctl name="MultiMedia8 Mixer VOC_REC_UL" value="1" />
</path>
@@ -1507,6 +1605,10 @@
<path name="incall-rec-uplink-compress" />
</path>
+ <path name="incall-rec-uplink-compress headset-mic">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
<path name="incall-rec-downlink">
<ctl name="MultiMedia1 Mixer VOC_REC_DL" value="1" />
</path>
@@ -1531,6 +1633,10 @@
<path name="incall-rec-downlink" />
</path>
+ <path name="incall-rec-downlink headset-mic">
+ <path name="incall-rec-downlink" />
+ </path>
+
<path name="incall-rec-downlink-compress">
<ctl name="MultiMedia8 Mixer VOC_REC_DL" value="1" />
</path>
@@ -1555,6 +1661,10 @@
<path name="incall-rec-downlink-compress" />
</path>
+ <path name="incall-rec-downlink-compress headset-mic">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
<path name="incall-rec-uplink-and-downlink">
<path name="incall-rec-uplink" />
<path name="incall-rec-downlink" />
@@ -1580,6 +1690,10 @@
<path name="incall-rec-uplink-and-downlink" />
</path>
+ <path name="incall-rec-uplink-and-downlink headset-mic">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
<path name="incall-rec-uplink-and-downlink-compress">
<path name="incall-rec-uplink-compress" />
<path name="incall-rec-downlink-compress" />
@@ -1605,6 +1719,10 @@
<path name="incall-rec-uplink-and-downlink-compress" />
</path>
+ <path name="incall-rec-uplink-and-downlink-compress headset-mic">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
<path name="hfp-sco">
</path>
@@ -1683,6 +1801,11 @@
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
</path>
+ <path name="voicemmode1-call headset">
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_MMode1" value="1" />
+ </path>
+
<path name="voicemmode1-call bt-sco">
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="1" />
@@ -1737,6 +1860,11 @@
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
</path>
+ <path name="voicemmode2-call headset">
+ <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_4_MMode2" value="1" />
+ </path>
+
<path name="voicemmode2-call bt-sco">
<ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="1" />
@@ -1849,6 +1977,10 @@
<path name="audio-record-voip bt-sco" />
</path>
+ <path name="audio-record-voip headset-mic">
+ <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="bt-a2dp">
<ctl name="SLIM7_RX ADM Channels" value="Two" />
</path>
@@ -2056,6 +2188,10 @@
<ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
</path>
+ <path name="mmap-record headset-mic">
+ <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_4" value="1" />
+ </path>
+
<path name="hifi-playback display-port">
<ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
</path>
@@ -2136,6 +2272,10 @@
<path name="incall_music_uplink" />
</path>
+ <path name="incall_music_uplink headset">
+ <path name="incall_music_uplink" />
+ </path>
+
<path name="incall_music_uplink speaker-and-headphones">
<path name="incall_music_uplink" />
</path>
@@ -2176,10 +2316,10 @@
</path>
<path name="amic2">
- <ctl name="TX DEC0 MUX" value="SWR_MIC" />
- <ctl name="TX SMIC MUX0" value="ADC1" />
- <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
- <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DEC5 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX5" value="ADC1" />
+ <ctl name="TX_CDC_DMA_TX_4 Channels" value="One" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="1" />
<ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP2" />
</path>
@@ -2346,8 +2486,6 @@
<ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
<ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX_HPH_PWR_MODE" value="LOHIFI" />
- <ctl name="RX HPH Mode" value="CLS_H_LOHIFI" />
<ctl name="RX_COMP1 Switch" value="1" />
<ctl name="RX_COMP2 Switch" value="1" />
<ctl name="HPHL_COMP Switch" value="1" />
@@ -2379,7 +2517,6 @@
<path name="headset-mic">
<path name="amic2" />
- <ctl name="TX_DEC0 Volume" value="84" />
</path>
<path name="voice-handset">
@@ -2406,6 +2543,10 @@
<path name="headphones" />
</path>
+ <path name="voice-headset">
+ <path name="headphones" />
+ </path>
+
<path name="voice-line">
<path name="voice-headphones" />
</path>
diff --git a/configs/kona/sound_trigger_platform_info.xml b/configs/kona/sound_trigger_platform_info.xml
index c5b9676..7c8c25f 100644
--- a/configs/kona/sound_trigger_platform_info.xml
+++ b/configs/kona/sound_trigger_platform_info.xml
@@ -48,6 +48,7 @@
<param backend_dai_name="VA_CDC_DMA_TX_0" />
<!-- Param used to indicate if SVA has dedicated SLIM ports -->
<param dedicated_sva_path="true" />
+ <param dedicated_headset_path="false" />
<param platform_lpi_enable="true" />
</common_config>
<acdb_ids>
@@ -71,7 +72,7 @@
<sound_model_config>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
<param execution_type="ADSP" />
- <param library="libsmwrapper.so" />
+ <param merge_first_stage_sound_models="false"/>
<param max_ape_phrases="20" />
<param max_ape_users="10" />
<!-- Profile specific data which the algorithm can support -->
@@ -152,7 +153,6 @@
<sound_model_config>
<param vendor_uuid="876c1b46-9d4d-40cc-a4fd-4d5ec7a80e47" />
<param execution_type="ADSP" />
- <param library="libsmwrapper.so" />
<param max_ape_phrases="1" />
<param max_ape_users="1" />
<!-- Profile specific data which the algorithm can support -->
@@ -207,7 +207,6 @@
<sound_model_config>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
<param execution_type="ADSP" />
- <param library="none" />
<param max_ape_phrases="1" />
<param max_ape_users="1" />
<!-- Profile specific data which the algorithm can support -->
@@ -260,7 +259,6 @@
<sound_model_config>
<param vendor_uuid="9f6ad62a-1f0b-11e7-87c5-40a8f03d3f15" />
<param execution_type="ADSP" />
- <param library="none" />
<param max_ape_phrases="1" />
<param max_ape_users="1" />
<!-- Profile specific data which the algorithm can support -->
diff --git a/configs/lito/audio_configs.xml b/configs/lito/audio_configs.xml
index bcc617d..271023d 100644
--- a/configs/lito/audio_configs.xml
+++ b/configs/lito/audio_configs.xml
@@ -31,7 +31,7 @@
<!-- 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="60"/>
+ <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"/>
diff --git a/configs/lito/audio_platform_info.xml b/configs/lito/audio_platform_info.xml
index 510818a..21714f4 100644
--- a/configs/lito/audio_platform_info.xml
+++ b/configs/lito/audio_platform_info.xml
@@ -72,7 +72,7 @@
</bit_width_configs>
<pcm_ids>
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="24"/>
diff --git a/configs/lito/audio_platform_info_intcodec.xml b/configs/lito/audio_platform_info_intcodec.xml
index 5335248..7c57bf4 100644
--- a/configs/lito/audio_platform_info_intcodec.xml
+++ b/configs/lito/audio_platform_info_intcodec.xml
@@ -34,7 +34,7 @@
</interface_names>
<pcm_ids>
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="24"/>
@@ -74,7 +74,7 @@
<param key="spkr_1_tz_name" value="wsatz.13"/>
<param key="spkr_2_tz_name" value="wsatz.14"/>
<param key="true_32_bit" value="true"/>
- <param key="native_audio_mode" value="true"/>
+ <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"/>
</config_params>
diff --git a/configs/lito/audio_platform_info_qrd.xml b/configs/lito/audio_platform_info_qrd.xml
index 4c02d88..e7d2662 100644
--- a/configs/lito/audio_platform_info_qrd.xml
+++ b/configs/lito/audio_platform_info_qrd.xml
@@ -34,7 +34,7 @@
</interface_names>
<pcm_ids>
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="9"/>
- <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="8"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD" type="out" id="7"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="11"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="12"/>
<usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD4" type="out" id="24"/>
@@ -73,7 +73,7 @@
<param key="mono_speaker" value="right"/>
<param key="spkr_2_tz_name" value="wsatz.14"/>
<param key="true_32_bit" value="true"/>
- <param key="native_audio_mode" value="true"/>
+ <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"/>
</config_params>
diff --git a/configs/lito/lito.mk b/configs/lito/lito.mk
index 107e0b8..45258f0 100644
--- a/configs/lito/lito.mk
+++ b/configs/lito/lito.mk
@@ -190,7 +190,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
# Reduce client buffer size for fast audio output tracks
PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/configs/lito/mixer_paths.xml b/configs/lito/mixer_paths.xml
index a8f65b8..8688745 100644
--- a/configs/lito/mixer_paths.xml
+++ b/configs/lito/mixer_paths.xml
@@ -162,7 +162,7 @@
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="0" />
<!-- usb headset end -->
<!-- fm -->
- <ctl name="Tert MI2S LOOPBACK Volume" value="0" />
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="0" />
<ctl name="WSA_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="0" />
<ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="0" />
<ctl name="RX_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="0" />
@@ -1436,13 +1436,13 @@
</path>
<path name="play-fm">
- <ctl name="Tert MI2S LOOPBACK Volume" value="1" />
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
<ctl name="WSA_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="1" />
<ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="1" />
</path>
<path name="play-fm headphones">
- <ctl name="Tert MI2S LOOPBACK Volume" value="1" />
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
<ctl name="RX_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="1" />
<ctl name="RX_CDC_DMA_RX_0_DL_HL Switch" value="1" />
</path>
diff --git a/configs/lito/mixer_paths_qrd.xml b/configs/lito/mixer_paths_qrd.xml
index 9b6dc48..a6bdeae 100644
--- a/configs/lito/mixer_paths_qrd.xml
+++ b/configs/lito/mixer_paths_qrd.xml
@@ -162,7 +162,7 @@
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="0" />
<!-- usb headset end -->
<!-- fm -->
- <ctl name="Tert MI2S LOOPBACK Volume" value="0" />
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="0" />
<ctl name="WSA_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="0" />
<ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="0" />
<ctl name="RX_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="0" />
@@ -1448,13 +1448,13 @@
</path>
<path name="play-fm">
- <ctl name="Tert MI2S LOOPBACK Volume" value="1" />
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
<ctl name="WSA_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="1" />
<ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch" value="1" />
</path>
<path name="play-fm headphones">
- <ctl name="Tert MI2S LOOPBACK Volume" value="1" />
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
<ctl name="RX_CDC_DMA_RX_0 Port Mixer SLIM_8_TX" value="1" />
<ctl name="RX_CDC_DMA_RX_0_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8909/msm8909.mk b/configs/msm8909/msm8909.mk
index 4b9e935..b5cc947 100644
--- a/configs/msm8909/msm8909.mk
+++ b/configs/msm8909/msm8909.mk
@@ -90,7 +90,7 @@
endif
PRODUCT_COPY_FILES += \
$(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index 1730357..72fa6f3 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -107,7 +107,7 @@
endif
PRODUCT_COPY_FILES += \
$(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
diff --git a/configs/msm8937/sound_trigger_platform_info.xml b/configs/msm8937/sound_trigger_platform_info.xml
index 547fd22..e8ec308 100644
--- a/configs/msm8937/sound_trigger_platform_info.xml
+++ b/configs/msm8937/sound_trigger_platform_info.xml
@@ -29,6 +29,7 @@
<param version="0x0101" /> <!-- this must be the first param -->
<common_config>
+ <param implementer_version="0x0100" />
<param max_cpe_sessions="1" />
<param max_ape_sessions="5" />
<param enable_failure_detection="false" />
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index 7715dd0..25d42cf 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -117,7 +117,7 @@
endif
PRODUCT_COPY_FILES += \
$(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
diff --git a/configs/msm8953/sound_trigger_platform_info.xml b/configs/msm8953/sound_trigger_platform_info.xml
index 63f3492..e0b0a93 100644
--- a/configs/msm8953/sound_trigger_platform_info.xml
+++ b/configs/msm8953/sound_trigger_platform_info.xml
@@ -29,6 +29,7 @@
<param version="0x0101" /> <!-- this must be the first param -->
<common_config>
+ <param implementer_version="0x0100" />
<param max_cpe_sessions="1" />
<param max_ape_sessions="5" />
<param enable_failure_detection="false" />
diff --git a/configs/msm8996/msm8996.mk b/configs/msm8996/msm8996.mk
index 58b72ee..c4e2fce 100644
--- a/configs/msm8996/msm8996.mk
+++ b/configs/msm8996/msm8996.mk
@@ -93,7 +93,7 @@
endif
PRODUCT_COPY_FILES += \
$(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
diff --git a/configs/msm8998/msm8998.mk b/configs/msm8998/msm8998.mk
index 9eb9d79..bee32c8 100644
--- a/configs/msm8998/msm8998.mk
+++ b/configs/msm8998/msm8998.mk
@@ -113,7 +113,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
endif
# Listen configuration file
diff --git a/configs/msmnile/audio_policy_configuration.xml b/configs/msmnile/audio_policy_configuration.xml
index 657b5d1..5c05206 100644
--- a/configs/msmnile/audio_policy_configuration.xml
+++ b/configs/msmnile/audio_policy_configuration.xml
@@ -311,27 +311,8 @@
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
- <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
- <!-- edit as needed -->
- <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</devicePort>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
- <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
- <!-- edit as needed -->
- <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"
- channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</devicePort>
</devicePorts>
diff --git a/configs/msmnile/msmnile.mk b/configs/msmnile/msmnile.mk
index 4662113..ae79cd6 100644
--- a/configs/msmnile/msmnile.mk
+++ b/configs/msmnile/msmnile.mk
@@ -189,7 +189,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
# Listen configuration file
PRODUCT_COPY_FILES += \
@@ -480,6 +481,15 @@
vendor.qti.hardware.audiohalext@1.0-impl \
vendor.qti.hardware.audiohalext-utils
+# enable audio hidl hal 5.0
+PRODUCT_PACKAGES += \
+ android.hardware.audio@5.0 \
+ android.hardware.audio.common@5.0 \
+ android.hardware.audio.common@5.0-util \
+ android.hardware.audio@5.0-impl \
+ android.hardware.audio.effect@5.0 \
+ android.hardware.audio.effect@5.0-impl
+
PRODUCT_PACKAGES_ENG += \
VoicePrintTest \
VoicePrintDemo
diff --git a/configs/msmnile/sound_trigger_platform_info.xml b/configs/msmnile/sound_trigger_platform_info.xml
index 8468452..7d5e81f 100644
--- a/configs/msmnile/sound_trigger_platform_info.xml
+++ b/configs/msmnile/sound_trigger_platform_info.xml
@@ -35,6 +35,7 @@
<!--- added to <adm_config> -->
<common_config>
+ <param implementer_version="0x0100" />
<param max_cpe_sessions="1" />
<param max_wdsp_sessions="2" />
<param max_ape_sessions="8" />
diff --git a/configs/msmnile_au/mixer_paths_adp.xml b/configs/msmnile_au/mixer_paths_adp.xml
index eb540c2..7978e97 100644
--- a/configs/msmnile_au/mixer_paths_adp.xml
+++ b/configs/msmnile_au/mixer_paths_adp.xml
@@ -70,7 +70,6 @@
<ctl name="MultiMedia1 Mixer SLIM_4_TX" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia8 Mixer SLIM_4_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -159,32 +158,9 @@
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia6 Mixer SLIM_0_TX" value="0" />
- <ctl name="SLIM_2_RX Format" value="UNPACKED" />
- <ctl name="SLIM_2_RX SampleRate" value="KHZ_48" />
- <ctl name="SLIM_5_RX SampleRate" value="KHZ_44P1" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="SLIM_5_RX Channels" value="One" />
- <ctl name="SLIM_6_RX Channels" value="One" />
- <ctl name="SLIM_2_RX Channels" value="One" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="SLIM_1_TX Channels" value="One" />
- <ctl name="AIF1_CAP Mixer SLIM TX9" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX5" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX4" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX3" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX2" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX1" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX0" value="0"/>
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
<ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="ZERO" />
<ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="ZERO" />
- <ctl name="VI_FEED_TX Channels" value="Two" />
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="0" />
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="0" />
- <ctl name="SLIM_4_TX Format" value="UNPACKED" />
<ctl name="AANC_SLIM_0_RX MUX" value="ZERO" />
<!-- HFP start -->
<ctl name="HFP_PRI_AUX_UL_HL Switch" value="0" />
@@ -251,8 +227,6 @@
<!-- Voice external ec. reference -->
<ctl name="VOC_EXT_EC MUX" value="NONE" />
- <ctl name="AIF3_CAP Mixer SLIM TX1" value="0" />
- <ctl name="AIF3_CAP Mixer SLIM TX2" value="0" />
<!-- Voice external ec. reference end -->
<!-- RT Proxy Cal -->
@@ -295,12 +269,6 @@
<ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
<!-- audio record compress end-->
- <!-- split a2dp -->
- <ctl name="BT SampleRate" value="KHZ_8" />
- <ctl name="AFE Input Channels" value="Zero" />
- <ctl name="SLIM7_RX ADM Channels" value="Zero" />
- <!-- split a2dp end-->
-
<!-- ADSP testfwk -->
<ctl name="SLIMBUS_DL_HL Switch" value="0" />
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
@@ -322,228 +290,7 @@
<ctl name="SEC_TDM_RX_7 Port Mixer TERT_TDM_TX_7" value="1" />
</path>
- <!-- Codec controls -->
- <!-- WSA controls -->
- <ctl name="SpkrLeft COMP Switch" value="0" />
- <ctl name="SpkrRight COMP Switch" value="0" />
- <ctl name="SpkrLeft BOOST Switch" value="0" />
- <ctl name="SpkrRight BOOST Switch" value="0" />
- <ctl name="SpkrLeft VISENSE Switch" value="0" />
- <ctl name="SpkrRight VISENSE Switch" value="0" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
- <ctl name="SpkrLeft WSA PA Gain" value="G_0_DB" />
-
- <!-- Volume controls -->
- <ctl name="LINEOUT1 Volume" value="13" />
- <ctl name="LINEOUT2 Volume" value="13" />
- <ctl name="HPHL Volume" value="20" />
- <ctl name="HPHR Volume" value="20" />
- <ctl name="EAR PA Gain" value="G_6_DB" />
- <ctl name="EAR SPKR PA Gain" value="G_DEFAULT" />
-
- <ctl name="RX0 Digital Volume" value="84" />
- <ctl name="RX1 Digital Volume" value="84" />
- <ctl name="RX2 Digital Volume" value="84" />
- <ctl name="RX3 Digital Volume" value="84" />
- <ctl name="RX4 Digital Volume" value="84" />
- <ctl name="RX5 Digital Volume" value="84" />
- <ctl name="RX6 Digital Volume" value="84" />
- <ctl name="RX7 Digital Volume" value="84" />
- <ctl name="ADC1 Volume" value="12" />
- <ctl name="ADC2 Volume" value="12" />
- <ctl name="ADC3 Volume" value="0" />
- <ctl name="ADC4 Volume" value="0" />
- <ctl name="DEC0 Volume" value="84" />
- <ctl name="DEC1 Volume" value="84" />
- <ctl name="DEC2 Volume" value="84" />
- <ctl name="DEC3 Volume" value="84" />
- <ctl name="DEC4 Volume" value="84" />
- <ctl name="DEC5 Volume" value="84" />
- <ctl name="DEC6 Volume" value="84" />
- <ctl name="DEC7 Volume" value="84" />
- <ctl name="DEC8 Volume" value="84" />
-
- <!-- Compander controls -->
- <ctl name="COMP1 Switch" value="1" />
- <ctl name="COMP2 Switch" value="1" />
- <ctl name="COMP7 Switch" value="0" />
- <ctl name="COMP8 Switch" value="0" />
-
- <!-- ADC, DMIC and AMIC controls -->
- <ctl name="ADC MUX0" value="AMIC" />
- <ctl name="ADC MUX1" value="AMIC" />
- <ctl name="ADC MUX2" value="AMIC" />
- <ctl name="ADC MUX3" value="AMIC" />
- <ctl name="ADC MUX4" value="AMIC" />
- <ctl name="ADC MUX5" value="AMIC" />
- <ctl name="ADC MUX6" value="AMIC" />
- <ctl name="ADC MUX7" value="AMIC" />
- <ctl name="ADC MUX8" value="AMIC" />
- <ctl name="ADC MUX10" value="AMIC" />
- <ctl name="ADC MUX11" value="AMIC" />
- <ctl name="ADC MUX12" value="AMIC" />
- <ctl name="ADC MUX13" value="AMIC" />
- <ctl name="DMIC MUX0" value="ZERO" />
- <ctl name="DMIC MUX1" value="ZERO" />
- <ctl name="DMIC MUX2" value="ZERO" />
- <ctl name="DMIC MUX3" value="ZERO" />
- <ctl name="DMIC MUX4" value="ZERO" />
- <ctl name="DMIC MUX5" value="ZERO" />
- <ctl name="DMIC MUX6" value="ZERO" />
- <ctl name="DMIC MUX7" value="ZERO" />
- <ctl name="DMIC MUX8" value="ZERO" />
- <ctl name="DMIC MUX10" value="ZERO" />
- <ctl name="DMIC MUX11" value="ZERO" />
- <ctl name="DMIC MUX12" value="ZERO" />
- <ctl name="DMIC MUX13" value="ZERO" />
- <ctl name="AMIC MUX0" value="ZERO" />
- <ctl name="AMIC MUX1" value="ZERO" />
- <ctl name="AMIC MUX2" value="ZERO" />
- <ctl name="AMIC MUX3" value="ZERO" />
- <ctl name="AMIC MUX4" value="ZERO" />
- <ctl name="AMIC MUX5" value="ZERO" />
- <ctl name="AMIC MUX6" value="ZERO" />
- <ctl name="AMIC MUX7" value="ZERO" />
- <ctl name="AMIC MUX8" value="ZERO" />
- <ctl name="AMIC MUX10" value="ZERO" />
- <ctl name="AMIC MUX11" value="ZERO" />
- <ctl name="AMIC MUX12" value="ZERO" />
- <ctl name="AMIC MUX13" value="ZERO" />
-
- <ctl name="AMIC4_5 SEL" value="AMIC4" />
- <!-- CDC_IF and SLIM controls -->
- <ctl name="SLIM RX0 MUX" value="ZERO" />
- <ctl name="SLIM RX1 MUX" value="ZERO" />
- <ctl name="SLIM RX2 MUX" value="ZERO" />
- <ctl name="SLIM RX3 MUX" value="ZERO" />
- <ctl name="SLIM RX4 MUX" value="ZERO" />
- <ctl name="SLIM RX5 MUX" value="ZERO" />
- <ctl name="SLIM RX6 MUX" value="ZERO" />
- <ctl name="SLIM RX7 MUX" value="ZERO" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="CDC_IF RX2 MUX" value="SLIM RX2" />
- <ctl name="CDC_IF RX3 MUX" value="SLIM RX3" />
- <ctl name="CDC_IF RX4 MUX" value="SLIM RX4" />
- <ctl name="CDC_IF RX5 MUX" value="SLIM RX5" />
- <ctl name="CDC_IF RX6 MUX" value="SLIM RX6" />
- <ctl name="CDC_IF RX7 MUX" value="SLIM RX7" />
- <ctl name="CDC_IF TX0 MUX" value="ZERO" />
- <ctl name="CDC_IF TX1 MUX" value="ZERO" />
- <ctl name="CDC_IF TX2 MUX" value="ZERO" />
- <ctl name="CDC_IF TX3 MUX" value="ZERO" />
- <ctl name="CDC_IF TX4 MUX" value="ZERO" />
- <ctl name="CDC_IF TX5 MUX" value="ZERO" />
- <ctl name="CDC_IF TX6 MUX" value="ZERO" />
- <ctl name="CDC_IF TX7 MUX" value="ZERO" />
- <ctl name="CDC_IF TX8 MUX" value="ZERO" />
- <ctl name="CDC_IF TX9 MUX" value="ZERO" />
- <ctl name="CDC_IF TX10 MUX" value="ZERO" />
- <ctl name="CDC_IF TX13 MUX" value="ZERO" />
-
- <!-- Interpolator chain controls -->
- <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT0_2 MUX" value="ZERO" />
- <ctl name="RX INT1_2 MUX" value="ZERO" />
- <ctl name="RX INT2_2 MUX" value="ZERO" />
- <ctl name="RX INT7_2 MUX" value="ZERO" />
- <ctl name="RX INT8_2 MUX" value="ZERO" />
- <ctl name="RX INT1_1 NATIVE MUX" value="OFF" />
- <ctl name="RX INT2_1 NATIVE MUX" value="OFF" />
- <ctl name="RX INT1_2 NATIVE MUX" value="OFF" />
- <ctl name="RX INT2_2 NATIVE MUX" value="OFF" />
- <ctl name="ASRC0 MUX" value="ZERO" />
- <ctl name="ASRC1 MUX" value="ZERO" />
- <ctl name="RX INT1 SEC MIX HPHL Switch" value="0" />
- <ctl name="RX INT2 SEC MIX HPHR Switch" value="0" />
- <ctl name="DSD_L IF MUX" value="ZERO" />
- <ctl name="DSD_R IF MUX" value="ZERO" />
- <ctl name="RX INT1 MIX3 DSD HPHL Switch" value="0" />
- <ctl name="RX INT2 MIX3 DSD HPHR Switch" value="0" />
- <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX INT2 DEM MUX" value="CLSH_DSM_OUT" />
-
- <!-- Headphone Default mode - uLP -->
- <ctl name="RX HPH Mode" value="CLS_H_ULP" />
- <ctl name="ASRC0 Output Mode" value="INT" />
- <ctl name="ASRC1 Output Mode" value="INT" />
-
- <!-- IIR/voice anc -->
- <ctl name="IIR0 Band1" id ="0" value="268435456" />
- <ctl name="IIR0 Band1" id ="1" value="0" />
- <ctl name="IIR0 Band1" id ="2" value="0" />
- <ctl name="IIR0 Band1" id ="3" value="0" />
- <ctl name="IIR0 Band1" id ="4" value="0" />
- <ctl name="IIR0 Band2" id ="0" value="268435456" />
- <ctl name="IIR0 Band2" id ="1" value="0" />
- <ctl name="IIR0 Band2" id ="2" value="0" />
- <ctl name="IIR0 Band2" id ="3" value="0" />
- <ctl name="IIR0 Band2" id ="4" value="0" />
- <ctl name="IIR0 Band3" id ="0" value="268435456" />
- <ctl name="IIR0 Band3" id ="1" value="0" />
- <ctl name="IIR0 Band3" id ="2" value="0" />
- <ctl name="IIR0 Band3" id ="3" value="0" />
- <ctl name="IIR0 Band3" id ="4" value="0" />
- <ctl name="IIR0 Band4" id ="0" value="268435456" />
- <ctl name="IIR0 Band4" id ="1" value="0" />
- <ctl name="IIR0 Band4" id ="2" value="0" />
- <ctl name="IIR0 Band4" id ="3" value="0" />
- <ctl name="IIR0 Band4" id ="4" value="0" />
- <ctl name="IIR0 Band5" id ="0" value="268435456" />
- <ctl name="IIR0 Band5" id ="1" value="0" />
- <ctl name="IIR0 Band5" id ="2" value="0" />
- <ctl name="IIR0 Band5" id ="3" value="0" />
- <ctl name="IIR0 Band5" id ="4" value="0" />
- <ctl name="IIR0 Enable Band1" value="0" />
- <ctl name="IIR0 Enable Band2" value="0" />
- <ctl name="IIR0 Enable Band3" value="0" />
- <ctl name="IIR0 Enable Band4" value="0" />
- <ctl name="IIR0 Enable Band5" value="0" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="IIR0 INP0 MUX" value="ZERO" />
- <ctl name="IIR0 INP1 MUX" value="ZERO" />
- <ctl name="IIR0 INP2 MUX" value="ZERO" />
- <ctl name="IIR1 INP0 MUX" value="ZERO" />
- <ctl name="IIR1 INP1 MUX" value="ZERO" />
- <ctl name="IIR1 INP2 MUX" value="ZERO" />
-
- <!-- anc related -->
- <ctl name="ANC Slot" value="0" />
- <ctl name="ANC Function" value="OFF" />
- <ctl name="ANC0 FB MUX" value="ZERO" />
- <ctl name="ANC1 FB MUX" value="ZERO" />
- <ctl name="ANC OUT EAR Enable Switch" value="0" />
- <ctl name="ANC OUT EAR SPKR Enable Switch" value="0" />
- <ctl name="ANC SPKR PA Enable Switch" value="0" />
- <ctl name="ANC OUT HPHL Enable Switch" value="0" />
- <ctl name="ANC OUT HPHR Enable Switch" value="0" />
-
- <!-- Codec controls end -->
-
- <!-- mixer control to disable lowlatency qos voting -->
- <ctl name="MultiMedia5_RX QOS Vote" value="Disable" />
- <!-- mixer control to disable lowlatency qos voting end -->
-
<!-- These are audio route (FE to BE) specific mixer settings -->
- <path name="gsm-mode">
- <ctl name="GSM mode Enable" value="ON" />
- </path>
<!-- EC Reference -->
<ctl name="EC Reference Channels" value="Zero" />
@@ -568,7 +315,7 @@
</path>
<path name="multi-mic-echo-reference">
- <ctl name="TDM SampleRate" value="16000" />
+ <ctl name="SEC_TDM_TX_0 SampleRate" value="KHZ_16" />
<ctl name="SEC_TDM_TX_0 Channels" value="Six" />
<ctl name="MultiMedia2 Mixer SEC_TDM_TX_0" value="1" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SEC_TDM_TX_0" />
@@ -1620,7 +1367,7 @@
</path>
<path name="icc-call">
- <ctl name="TDM SampleRate" value="16000" />
+ <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_TX_0 Channels" value="Four" />
@@ -1844,121 +1591,38 @@
<!-- These are actual sound device specific mixer settings -->
<path name="amic1">
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="AMIC" />
- <ctl name="AMIC MUX6" value="ADC1" />
- <ctl name="IIR0 INP0 MUX" value="DEC6" />
</path>
<path name="amic2">
- <ctl name="AIF1_CAP Mixer SLIM TX0" value="1"/>
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="CDC_IF TX0 MUX" value="DEC0" />
- <ctl name="ADC MUX0" value="AMIC" />
- <ctl name="AMIC MUX0" value="ADC2" />
- <ctl name="IIR0 INP0 MUX" value="DEC0" />
</path>
<!-- For Tavil, DMIC numbered from 0 to 5 -->
<path name="dmic1">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC0" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic2">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1"/>
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic3">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC2" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic4">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC3" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic5">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC4" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic6">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC5" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="speaker">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="SLIM_0_RX Channels" value="Two" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
- <ctl name="COMP7 Switch" value="1" />
- <ctl name="COMP8 Switch" value="1" />
- <ctl name="SpkrLeft COMP Switch" value="1" />
- <ctl name="SpkrLeft BOOST Switch" value="1" />
- <ctl name="SpkrLeft VISENSE Switch" value="1" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="SpkrRight COMP Switch" value="1" />
- <ctl name="SpkrRight BOOST Switch" value="1" />
- <ctl name="SpkrRight VISENSE Switch" value="1" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
</path>
<path name="speaker-mono">
- <!-- ctl name="SLIM RX0 MUX" value="AIF1_PB" / -->
- <!-- ctl name="CDC_IF RX0 MUX" value="SLIM RX0" / -->
- <!-- ctl name="SLIM_0_RX Channels" value="One" / -->
- <!-- ctl name="RX INT7_1 MIX1 INP0" value="RX0" / -->
- <!-- ctl name="COMP7 Switch" value="1" / -->
- <!-- ctl name="SpkrLeft COMP Switch" value="1" / -->
- <!-- ctl name="SpkrLeft BOOST Switch" value="1" / -->
- <!-- ctl name="SpkrLeft VISENSE Switch" value="1" / -->
- <!-- ctl name="SpkrLeft SWR DAC_Port Switch" value="1" / -->
<ctl name="TERT_TDM_RX_0 Channels" value="One" />
</path>
<path name="speaker-mono-2">
- <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
- <ctl name="COMP8 Switch" value="1" />
- <ctl name="SpkrRight COMP Switch" value="1" />
- <ctl name="SpkrRight BOOST Switch" value="1" />
- <ctl name="SpkrRight VISENSE Switch" value="1" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
</path>
<path name="speaker-qrd">
@@ -1990,24 +1654,14 @@
</path>
<path name="sidetone-iir">
- <ctl name="IIR0 Enable Band1" value="1" />
- <ctl name="IIR0 Enable Band2" value="1" />
- <ctl name="IIR0 Enable Band3" value="1" />
- <ctl name="IIR0 Enable Band4" value="1" />
- <ctl name="IIR0 Enable Band5" value="1" />
</path>
<path name="sidetone-headphones">
<path name="sidetone-iir" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="RX INT1 MIX2 INP" value="SRC0" />
- <ctl name="RX INT2 MIX2 INP" value="SRC0" />
</path>
<path name="sidetone-handset">
<path name="sidetone-iir" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="RX INT7 MIX2 INP" value="SRC0" />
</path>
<path name="afe-sidetone">
@@ -2026,29 +1680,15 @@
</path>
<path name="speaker-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="1" />
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker" />
- <ctl name="VI_FEED_TX Channels" value="Two" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
- <ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="SLIM4_TX" />
</path>
<path name="voice-speaker-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker-mono" />
- <ctl name="VI_FEED_TX Channels" value="One" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
</path>
<path name="voice-speaker-2-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker-mono-2" />
- <ctl name="VI_FEED_TX Channels" value="One" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
</path>
<path name="vi-feedback">
@@ -2061,23 +1701,9 @@
</path>
<path name="handset">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="COMP7 Switch" value="1" />
- <ctl name="SpkrLeft COMP Switch" value="1" />
- <ctl name="SpkrLeft BOOST Switch" value="1" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="EAR SPKR PA Gain" value="G_6_DB" />
</path>
<path name="handset-qrd">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
- <ctl name="EAR PA Gain" value="G_6_DB" />
</path>
<path name="handset-mic">
@@ -2101,81 +1727,27 @@
</path>
<path name="three-mic">
- <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Three" />
- <ctl name="CDC_IF TX5 MUX" value="DEC5" />
- <ctl name="ADC MUX5" value="DMIC" />
- <ctl name="DMIC MUX5" value="DMIC0" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="DMIC" />
- <ctl name="DMIC MUX6" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC5" />
</path>
<path name="anc-handset">
- <ctl name="ANC Function" value="ON" />
- <ctl name="ANC Slot" value="6" />
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="ANC OUT EAR SPKR Enable Switch" value="1" />
- <ctl name="ANC SPKR PA Enable Switch" value="1" />
- <ctl name="SpkrLeft WSA PA Gain" value="G_6_DB" />
</path>
<path name="headphones">
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM RX3 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="Two" />
- <ctl name="RX INT1_2 MUX" value="RX2" />
- <ctl name="RX INT2_2 MUX" value="RX3" />
</path>
<path name="headphones-44.1">
- <ctl name="SLIM RX4 MUX" value="AIF3_PB" />
- <ctl name="SLIM RX5 MUX" value="AIF3_PB" />
- <ctl name="SLIM_5_RX Channels" value="Two" />
- <ctl name="RX INT1_1 MIX1 INP0" value="RX4" />
- <ctl name="RX INT2_1 MIX1 INP0" value="RX5" />
- <ctl name="RX INT1_1 NATIVE MUX" value="ON" />
- <ctl name="RX INT2_1 NATIVE MUX" value="ON" />
</path>
<path name="asrc-mode">
- <ctl name="ASRC0 Output Mode" value="FRAC" />
- <ctl name="ASRC1 Output Mode" value="FRAC" />
- <ctl name="RX INT1_2 NATIVE MUX" value="ON" />
- <ctl name="RX INT2_2 NATIVE MUX" value="ON" />
- <ctl name="ASRC0 MUX" value="ASRC_IN_HPHL" />
- <ctl name="RX INT1 SEC MIX HPHL Switch" value="1" />
- <ctl name="ASRC1 MUX" value="ASRC_IN_HPHR" />
- <ctl name="RX INT2 SEC MIX HPHR Switch" value="1" />
</path>
<path name="headphones-dsd">
- <ctl name="SLIM RX6 MUX" value="AIF2_PB" />
- <ctl name="SLIM RX7 MUX" value="AIF2_PB" />
- <ctl name="SLIM_2_RX Channels" value="Two" />
- <ctl name="DSD_L IF MUX" value="RX6" />
- <ctl name="DSD_R IF MUX" value="RX7" />
- <ctl name="RX INT1 MIX3 DSD HPHL Switch" value="1" />
- <ctl name="RX INT2 MIX3 DSD HPHR Switch" value="1" />
- <ctl name="SLIM_2_RX Format" value="DSD_DOP" />
- <ctl name="RX HPH Mode" value="CLS_H_HIFI" />
</path>
<path name="hph-highquality-mode">
- <ctl name="RX HPH Mode" value="CLS_H_LOHIFI" />
</path>
<path name="hph-lowpower-mode">
- <ctl name="RX HPH Mode" value="CLS_H_ULP" />
</path>
<path name="true-native-mode">
@@ -2281,27 +1853,6 @@
</path>
<path name="anc-headphones">
- <ctl name="COMP1 Switch" value="0" />
- <ctl name="COMP2 Switch" value="0" />
- <ctl name="ANC Function" value="ON" />
- <ctl name="ANC Slot" value="0" />
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM RX3 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="Two" />
- <ctl name="ADC MUX10" value="AMIC" />
- <ctl name="AMIC MUX10" value="ADC3" />
- <ctl name="ADC MUX12" value="AMIC" />
- <ctl name="AMIC MUX12" value="ADC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_HPHL" />
- <ctl name="ANC1 FB MUX" value="ANC_IN_HPHR" />
- <ctl name="ADC3 Volume" value="8" />
- <ctl name="ADC4 Volume" value="8" />
- <ctl name="RX INT1_1 MIX1 INP0" value="RX2" />
- <ctl name="RX INT2_1 MIX1 INP0" value="RX3" />
- <ctl name="RX1 Digital Volume" value="81" />
- <ctl name="RX2 Digital Volume" value="81" />
- <ctl name="ANC OUT HPHL Enable Switch" value="1" />
- <ctl name="ANC OUT HPHR Enable Switch" value="1" />
</path>
<path name="speaker-and-anc-headphones">
@@ -2311,7 +1862,6 @@
<path name="anc-fb-headphones">
<path name="anc-headphones" />
- <ctl name="ANC Slot" value="1" />
</path>
<path name="speaker-and-anc-fb-headphones">
@@ -2371,62 +1921,24 @@
</path>
<path name="aanc-path">
- <ctl name="ADC MUX10" value="DMIC" />
- <ctl name="DMIC MUX10" value="DMIC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_EAR_SPKR" />
</path>
<path name="aanc-handset-mic">
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX9" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Three" />
- <ctl name="AANC_SLIM_0_RX MUX" value="SLIMBUS_0_TX" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="DMIC" />
- <ctl name="DMIC MUX6" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC4" />
- <ctl name="CDC_IF TX9 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC0" />
- <ctl name="IIR0 INP0 MUX" value="DEC6" />
</path>
<!-- Dual MIC devices -->
<path name="handset-dmic-endfire">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC4" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
</path>
<path name="speaker-dmic-endfire">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC5" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
</path>
<path name="dmic-endfire">
<path name="handset-dmic-endfire" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic-endfire-liquid">
<path name="handset-dmic-endfire" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="handset-stereo-dmic-ef">
@@ -2482,20 +1994,10 @@
</path>
<path name="speaker-dmic-broadside">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC2" />
</path>
<path name="dmic-broadside">
<path name="speaker-dmic-broadside" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="voice-speaker-dmic-broadside">
@@ -2504,23 +2006,6 @@
<!-- Quad MIC devices -->
<path name="speaker-qmic">
- <!-- ctl name="AIF1_CAP Mixer SLIM TX5" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX6" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX7" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX8" value="1" / -->
- <!-- ctl name="SLIM_0_TX Channels" value="Four" / -->
- <!-- ctl name="CDC_IF TX5 MUX" value="DEC5" / -->
- <!-- ctl name="ADC MUX5" value="DMIC" / -->
- <!-- ctl name="DMIC MUX5" value="DMIC1" / -->
- <!-- ctl name="CDC_IF TX6 MUX" value="DEC6" / -->
- <!-- ctl name="ADC MUX6" value="DMIC" / -->
- <!-- ctl name="DMIC MUX6" value="DMIC0" / -->
- <!-- ctl name="CDC_IF TX7 MUX" value="DEC7" / -->
- <!-- ctl name="ADC MUX7" value="DMIC" / -->
- <!-- ctl name="DMIC MUX7" value="DMIC2" / -->
- <!-- ctl name="CDC_IF TX8 MUX" value="DEC8" / -->
- <!-- ctl name="ADC MUX8" value="DMIC" / -->
- <!-- ctl name="DMIC MUX8" value="DMIC5" / -->
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
</path>
@@ -2547,9 +2032,6 @@
<!-- TTY devices -->
<path name="tty-headphones">
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="One" />
- <ctl name="RX INT1_2 MUX" value="RX2" />
</path>
<path name="voice-tty-full-headphones">
@@ -2579,7 +2061,6 @@
<path name="voice-tty-full-headset-mic">
<path name="amic2" />
- <ctl name="ADC2 Volume" value="0" />
</path>
<path name="voice-tty-hco-headset-mic">
diff --git a/configs/msmnile_au/mixer_paths_custom.xml b/configs/msmnile_au/mixer_paths_custom.xml
index 5393e32..9d8507a 100644
--- a/configs/msmnile_au/mixer_paths_custom.xml
+++ b/configs/msmnile_au/mixer_paths_custom.xml
@@ -70,7 +70,6 @@
<ctl name="MultiMedia1 Mixer SLIM_4_TX" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia8 Mixer SLIM_4_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -159,32 +158,9 @@
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia6 Mixer SLIM_0_TX" value="0" />
- <ctl name="SLIM_2_RX Format" value="UNPACKED" />
- <ctl name="SLIM_2_RX SampleRate" value="KHZ_48" />
- <ctl name="SLIM_5_RX SampleRate" value="KHZ_44P1" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="SLIM_5_RX Channels" value="One" />
- <ctl name="SLIM_6_RX Channels" value="One" />
- <ctl name="SLIM_2_RX Channels" value="One" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="SLIM_1_TX Channels" value="One" />
- <ctl name="AIF1_CAP Mixer SLIM TX9" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX5" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX4" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX3" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX2" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX1" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX0" value="0"/>
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
<ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="ZERO" />
<ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="ZERO" />
- <ctl name="VI_FEED_TX Channels" value="Two" />
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="0" />
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="0" />
- <ctl name="SLIM_4_TX Format" value="UNPACKED" />
<ctl name="AANC_SLIM_0_RX MUX" value="ZERO" />
<!-- HFP start -->
<ctl name="HFP_PRI_AUX_UL_HL Switch" value="0" />
@@ -251,8 +227,6 @@
<!-- Voice external ec. reference -->
<ctl name="VOC_EXT_EC MUX" value="NONE" />
- <ctl name="AIF3_CAP Mixer SLIM TX1" value="0" />
- <ctl name="AIF3_CAP Mixer SLIM TX2" value="0" />
<!-- Voice external ec. reference end -->
<!-- RT Proxy Cal -->
@@ -295,12 +269,6 @@
<ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
<!-- audio record compress end-->
- <!-- split a2dp -->
- <ctl name="BT SampleRate" value="KHZ_8" />
- <ctl name="AFE Input Channels" value="Zero" />
- <ctl name="SLIM7_RX ADM Channels" value="Zero" />
- <!-- split a2dp end-->
-
<!-- ADSP testfwk -->
<ctl name="SLIMBUS_DL_HL Switch" value="0" />
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
@@ -318,228 +286,7 @@
<ctl name="SEC_TDM_RX_0 Audio Mixer MultiMedia9" value="0" />
<ctl name="MultiMedia9 Mixer TERT_TDM_TX_0" value="0" />
- <!-- Codec controls -->
- <!-- WSA controls -->
- <ctl name="SpkrLeft COMP Switch" value="0" />
- <ctl name="SpkrRight COMP Switch" value="0" />
- <ctl name="SpkrLeft BOOST Switch" value="0" />
- <ctl name="SpkrRight BOOST Switch" value="0" />
- <ctl name="SpkrLeft VISENSE Switch" value="0" />
- <ctl name="SpkrRight VISENSE Switch" value="0" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
- <ctl name="SpkrLeft WSA PA Gain" value="G_0_DB" />
-
- <!-- Volume controls -->
- <ctl name="LINEOUT1 Volume" value="13" />
- <ctl name="LINEOUT2 Volume" value="13" />
- <ctl name="HPHL Volume" value="20" />
- <ctl name="HPHR Volume" value="20" />
- <ctl name="EAR PA Gain" value="G_6_DB" />
- <ctl name="EAR SPKR PA Gain" value="G_DEFAULT" />
-
- <ctl name="RX0 Digital Volume" value="84" />
- <ctl name="RX1 Digital Volume" value="84" />
- <ctl name="RX2 Digital Volume" value="84" />
- <ctl name="RX3 Digital Volume" value="84" />
- <ctl name="RX4 Digital Volume" value="84" />
- <ctl name="RX5 Digital Volume" value="84" />
- <ctl name="RX6 Digital Volume" value="84" />
- <ctl name="RX7 Digital Volume" value="84" />
- <ctl name="ADC1 Volume" value="12" />
- <ctl name="ADC2 Volume" value="12" />
- <ctl name="ADC3 Volume" value="0" />
- <ctl name="ADC4 Volume" value="0" />
- <ctl name="DEC0 Volume" value="84" />
- <ctl name="DEC1 Volume" value="84" />
- <ctl name="DEC2 Volume" value="84" />
- <ctl name="DEC3 Volume" value="84" />
- <ctl name="DEC4 Volume" value="84" />
- <ctl name="DEC5 Volume" value="84" />
- <ctl name="DEC6 Volume" value="84" />
- <ctl name="DEC7 Volume" value="84" />
- <ctl name="DEC8 Volume" value="84" />
-
- <!-- Compander controls -->
- <ctl name="COMP1 Switch" value="1" />
- <ctl name="COMP2 Switch" value="1" />
- <ctl name="COMP7 Switch" value="0" />
- <ctl name="COMP8 Switch" value="0" />
-
- <!-- ADC, DMIC and AMIC controls -->
- <ctl name="ADC MUX0" value="AMIC" />
- <ctl name="ADC MUX1" value="AMIC" />
- <ctl name="ADC MUX2" value="AMIC" />
- <ctl name="ADC MUX3" value="AMIC" />
- <ctl name="ADC MUX4" value="AMIC" />
- <ctl name="ADC MUX5" value="AMIC" />
- <ctl name="ADC MUX6" value="AMIC" />
- <ctl name="ADC MUX7" value="AMIC" />
- <ctl name="ADC MUX8" value="AMIC" />
- <ctl name="ADC MUX10" value="AMIC" />
- <ctl name="ADC MUX11" value="AMIC" />
- <ctl name="ADC MUX12" value="AMIC" />
- <ctl name="ADC MUX13" value="AMIC" />
- <ctl name="DMIC MUX0" value="ZERO" />
- <ctl name="DMIC MUX1" value="ZERO" />
- <ctl name="DMIC MUX2" value="ZERO" />
- <ctl name="DMIC MUX3" value="ZERO" />
- <ctl name="DMIC MUX4" value="ZERO" />
- <ctl name="DMIC MUX5" value="ZERO" />
- <ctl name="DMIC MUX6" value="ZERO" />
- <ctl name="DMIC MUX7" value="ZERO" />
- <ctl name="DMIC MUX8" value="ZERO" />
- <ctl name="DMIC MUX10" value="ZERO" />
- <ctl name="DMIC MUX11" value="ZERO" />
- <ctl name="DMIC MUX12" value="ZERO" />
- <ctl name="DMIC MUX13" value="ZERO" />
- <ctl name="AMIC MUX0" value="ZERO" />
- <ctl name="AMIC MUX1" value="ZERO" />
- <ctl name="AMIC MUX2" value="ZERO" />
- <ctl name="AMIC MUX3" value="ZERO" />
- <ctl name="AMIC MUX4" value="ZERO" />
- <ctl name="AMIC MUX5" value="ZERO" />
- <ctl name="AMIC MUX6" value="ZERO" />
- <ctl name="AMIC MUX7" value="ZERO" />
- <ctl name="AMIC MUX8" value="ZERO" />
- <ctl name="AMIC MUX10" value="ZERO" />
- <ctl name="AMIC MUX11" value="ZERO" />
- <ctl name="AMIC MUX12" value="ZERO" />
- <ctl name="AMIC MUX13" value="ZERO" />
-
- <ctl name="AMIC4_5 SEL" value="AMIC4" />
- <!-- CDC_IF and SLIM controls -->
- <ctl name="SLIM RX0 MUX" value="ZERO" />
- <ctl name="SLIM RX1 MUX" value="ZERO" />
- <ctl name="SLIM RX2 MUX" value="ZERO" />
- <ctl name="SLIM RX3 MUX" value="ZERO" />
- <ctl name="SLIM RX4 MUX" value="ZERO" />
- <ctl name="SLIM RX5 MUX" value="ZERO" />
- <ctl name="SLIM RX6 MUX" value="ZERO" />
- <ctl name="SLIM RX7 MUX" value="ZERO" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="CDC_IF RX2 MUX" value="SLIM RX2" />
- <ctl name="CDC_IF RX3 MUX" value="SLIM RX3" />
- <ctl name="CDC_IF RX4 MUX" value="SLIM RX4" />
- <ctl name="CDC_IF RX5 MUX" value="SLIM RX5" />
- <ctl name="CDC_IF RX6 MUX" value="SLIM RX6" />
- <ctl name="CDC_IF RX7 MUX" value="SLIM RX7" />
- <ctl name="CDC_IF TX0 MUX" value="ZERO" />
- <ctl name="CDC_IF TX1 MUX" value="ZERO" />
- <ctl name="CDC_IF TX2 MUX" value="ZERO" />
- <ctl name="CDC_IF TX3 MUX" value="ZERO" />
- <ctl name="CDC_IF TX4 MUX" value="ZERO" />
- <ctl name="CDC_IF TX5 MUX" value="ZERO" />
- <ctl name="CDC_IF TX6 MUX" value="ZERO" />
- <ctl name="CDC_IF TX7 MUX" value="ZERO" />
- <ctl name="CDC_IF TX8 MUX" value="ZERO" />
- <ctl name="CDC_IF TX9 MUX" value="ZERO" />
- <ctl name="CDC_IF TX10 MUX" value="ZERO" />
- <ctl name="CDC_IF TX13 MUX" value="ZERO" />
-
- <!-- Interpolator chain controls -->
- <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT0_2 MUX" value="ZERO" />
- <ctl name="RX INT1_2 MUX" value="ZERO" />
- <ctl name="RX INT2_2 MUX" value="ZERO" />
- <ctl name="RX INT7_2 MUX" value="ZERO" />
- <ctl name="RX INT8_2 MUX" value="ZERO" />
- <ctl name="RX INT1_1 NATIVE MUX" value="OFF" />
- <ctl name="RX INT2_1 NATIVE MUX" value="OFF" />
- <ctl name="RX INT1_2 NATIVE MUX" value="OFF" />
- <ctl name="RX INT2_2 NATIVE MUX" value="OFF" />
- <ctl name="ASRC0 MUX" value="ZERO" />
- <ctl name="ASRC1 MUX" value="ZERO" />
- <ctl name="RX INT1 SEC MIX HPHL Switch" value="0" />
- <ctl name="RX INT2 SEC MIX HPHR Switch" value="0" />
- <ctl name="DSD_L IF MUX" value="ZERO" />
- <ctl name="DSD_R IF MUX" value="ZERO" />
- <ctl name="RX INT1 MIX3 DSD HPHL Switch" value="0" />
- <ctl name="RX INT2 MIX3 DSD HPHR Switch" value="0" />
- <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX INT2 DEM MUX" value="CLSH_DSM_OUT" />
-
- <!-- Headphone Default mode - uLP -->
- <ctl name="RX HPH Mode" value="CLS_H_ULP" />
- <ctl name="ASRC0 Output Mode" value="INT" />
- <ctl name="ASRC1 Output Mode" value="INT" />
-
- <!-- IIR/voice anc -->
- <ctl name="IIR0 Band1" id ="0" value="268435456" />
- <ctl name="IIR0 Band1" id ="1" value="0" />
- <ctl name="IIR0 Band1" id ="2" value="0" />
- <ctl name="IIR0 Band1" id ="3" value="0" />
- <ctl name="IIR0 Band1" id ="4" value="0" />
- <ctl name="IIR0 Band2" id ="0" value="268435456" />
- <ctl name="IIR0 Band2" id ="1" value="0" />
- <ctl name="IIR0 Band2" id ="2" value="0" />
- <ctl name="IIR0 Band2" id ="3" value="0" />
- <ctl name="IIR0 Band2" id ="4" value="0" />
- <ctl name="IIR0 Band3" id ="0" value="268435456" />
- <ctl name="IIR0 Band3" id ="1" value="0" />
- <ctl name="IIR0 Band3" id ="2" value="0" />
- <ctl name="IIR0 Band3" id ="3" value="0" />
- <ctl name="IIR0 Band3" id ="4" value="0" />
- <ctl name="IIR0 Band4" id ="0" value="268435456" />
- <ctl name="IIR0 Band4" id ="1" value="0" />
- <ctl name="IIR0 Band4" id ="2" value="0" />
- <ctl name="IIR0 Band4" id ="3" value="0" />
- <ctl name="IIR0 Band4" id ="4" value="0" />
- <ctl name="IIR0 Band5" id ="0" value="268435456" />
- <ctl name="IIR0 Band5" id ="1" value="0" />
- <ctl name="IIR0 Band5" id ="2" value="0" />
- <ctl name="IIR0 Band5" id ="3" value="0" />
- <ctl name="IIR0 Band5" id ="4" value="0" />
- <ctl name="IIR0 Enable Band1" value="0" />
- <ctl name="IIR0 Enable Band2" value="0" />
- <ctl name="IIR0 Enable Band3" value="0" />
- <ctl name="IIR0 Enable Band4" value="0" />
- <ctl name="IIR0 Enable Band5" value="0" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="IIR0 INP0 MUX" value="ZERO" />
- <ctl name="IIR0 INP1 MUX" value="ZERO" />
- <ctl name="IIR0 INP2 MUX" value="ZERO" />
- <ctl name="IIR1 INP0 MUX" value="ZERO" />
- <ctl name="IIR1 INP1 MUX" value="ZERO" />
- <ctl name="IIR1 INP2 MUX" value="ZERO" />
-
- <!-- anc related -->
- <ctl name="ANC Slot" value="0" />
- <ctl name="ANC Function" value="OFF" />
- <ctl name="ANC0 FB MUX" value="ZERO" />
- <ctl name="ANC1 FB MUX" value="ZERO" />
- <ctl name="ANC OUT EAR Enable Switch" value="0" />
- <ctl name="ANC OUT EAR SPKR Enable Switch" value="0" />
- <ctl name="ANC SPKR PA Enable Switch" value="0" />
- <ctl name="ANC OUT HPHL Enable Switch" value="0" />
- <ctl name="ANC OUT HPHR Enable Switch" value="0" />
-
- <!-- Codec controls end -->
-
- <!-- mixer control to disable lowlatency qos voting -->
- <ctl name="MultiMedia5_RX QOS Vote" value="Disable" />
- <!-- mixer control to disable lowlatency qos voting end -->
-
<!-- These are audio route (FE to BE) specific mixer settings -->
- <path name="gsm-mode">
- <ctl name="GSM mode Enable" value="ON" />
- </path>
<!-- EC Reference -->
<ctl name="EC Reference Channels" value="Zero" />
@@ -564,7 +311,7 @@
</path>
<path name="multi-mic-echo-reference">
- <ctl name="TDM SampleRate" value="16000" />
+ <ctl name="SEC_TDM_TX_0 SampleRate" value="KHZ_16" />
<ctl name="SEC_TDM_TX_0 Channels" value="Six" />
<ctl name="MultiMedia2 Mixer SEC_TDM_TX_0" value="1" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SEC_TDM_TX_0" />
@@ -1616,7 +1363,7 @@
</path>
<path name="icc-call">
- <ctl name="TDM SampleRate" value="16000" />
+ <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_TX_0 Channels" value="Four" />
@@ -1840,121 +1587,38 @@
<!-- These are actual sound device specific mixer settings -->
<path name="amic1">
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="AMIC" />
- <ctl name="AMIC MUX6" value="ADC1" />
- <ctl name="IIR0 INP0 MUX" value="DEC6" />
</path>
<path name="amic2">
- <ctl name="AIF1_CAP Mixer SLIM TX0" value="1"/>
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="CDC_IF TX0 MUX" value="DEC0" />
- <ctl name="ADC MUX0" value="AMIC" />
- <ctl name="AMIC MUX0" value="ADC2" />
- <ctl name="IIR0 INP0 MUX" value="DEC0" />
</path>
<!-- For Tavil, DMIC numbered from 0 to 5 -->
<path name="dmic1">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC0" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic2">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1"/>
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic3">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC2" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic4">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC3" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic5">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC4" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic6">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC5" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="speaker">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="SLIM_0_RX Channels" value="Two" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
- <ctl name="COMP7 Switch" value="1" />
- <ctl name="COMP8 Switch" value="1" />
- <ctl name="SpkrLeft COMP Switch" value="1" />
- <ctl name="SpkrLeft BOOST Switch" value="1" />
- <ctl name="SpkrLeft VISENSE Switch" value="1" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="SpkrRight COMP Switch" value="1" />
- <ctl name="SpkrRight BOOST Switch" value="1" />
- <ctl name="SpkrRight VISENSE Switch" value="1" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
</path>
<path name="speaker-mono">
- <!-- ctl name="SLIM RX0 MUX" value="AIF1_PB" / -->
- <!-- ctl name="CDC_IF RX0 MUX" value="SLIM RX0" / -->
- <!-- ctl name="SLIM_0_RX Channels" value="One" / -->
- <!-- ctl name="RX INT7_1 MIX1 INP0" value="RX0" / -->
- <!-- ctl name="COMP7 Switch" value="1" / -->
- <!-- ctl name="SpkrLeft COMP Switch" value="1" / -->
- <!-- ctl name="SpkrLeft BOOST Switch" value="1" / -->
- <!-- ctl name="SpkrLeft VISENSE Switch" value="1" / -->
- <!-- ctl name="SpkrLeft SWR DAC_Port Switch" value="1" / -->
<ctl name="TERT_TDM_RX_0 Channels" value="One" />
</path>
<path name="speaker-mono-2">
- <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
- <ctl name="COMP8 Switch" value="1" />
- <ctl name="SpkrRight COMP Switch" value="1" />
- <ctl name="SpkrRight BOOST Switch" value="1" />
- <ctl name="SpkrRight VISENSE Switch" value="1" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
</path>
<path name="speaker-qrd">
@@ -1986,24 +1650,14 @@
</path>
<path name="sidetone-iir">
- <ctl name="IIR0 Enable Band1" value="1" />
- <ctl name="IIR0 Enable Band2" value="1" />
- <ctl name="IIR0 Enable Band3" value="1" />
- <ctl name="IIR0 Enable Band4" value="1" />
- <ctl name="IIR0 Enable Band5" value="1" />
</path>
<path name="sidetone-headphones">
<path name="sidetone-iir" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="RX INT1 MIX2 INP" value="SRC0" />
- <ctl name="RX INT2 MIX2 INP" value="SRC0" />
</path>
<path name="sidetone-handset">
<path name="sidetone-iir" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="RX INT7 MIX2 INP" value="SRC0" />
</path>
<path name="afe-sidetone">
@@ -2022,29 +1676,15 @@
</path>
<path name="speaker-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="1" />
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker" />
- <ctl name="VI_FEED_TX Channels" value="Two" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
- <ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="SLIM4_TX" />
</path>
<path name="voice-speaker-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker-mono" />
- <ctl name="VI_FEED_TX Channels" value="One" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
</path>
<path name="voice-speaker-2-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker-mono-2" />
- <ctl name="VI_FEED_TX Channels" value="One" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
</path>
<path name="vi-feedback">
@@ -2057,23 +1697,9 @@
</path>
<path name="handset">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="COMP7 Switch" value="1" />
- <ctl name="SpkrLeft COMP Switch" value="1" />
- <ctl name="SpkrLeft BOOST Switch" value="1" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="EAR SPKR PA Gain" value="G_6_DB" />
</path>
<path name="handset-qrd">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
- <ctl name="EAR PA Gain" value="G_6_DB" />
</path>
<path name="handset-mic">
@@ -2097,81 +1723,27 @@
</path>
<path name="three-mic">
- <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Three" />
- <ctl name="CDC_IF TX5 MUX" value="DEC5" />
- <ctl name="ADC MUX5" value="DMIC" />
- <ctl name="DMIC MUX5" value="DMIC0" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="DMIC" />
- <ctl name="DMIC MUX6" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC5" />
</path>
<path name="anc-handset">
- <ctl name="ANC Function" value="ON" />
- <ctl name="ANC Slot" value="6" />
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="ANC OUT EAR SPKR Enable Switch" value="1" />
- <ctl name="ANC SPKR PA Enable Switch" value="1" />
- <ctl name="SpkrLeft WSA PA Gain" value="G_6_DB" />
</path>
<path name="headphones">
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM RX3 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="Two" />
- <ctl name="RX INT1_2 MUX" value="RX2" />
- <ctl name="RX INT2_2 MUX" value="RX3" />
</path>
<path name="headphones-44.1">
- <ctl name="SLIM RX4 MUX" value="AIF3_PB" />
- <ctl name="SLIM RX5 MUX" value="AIF3_PB" />
- <ctl name="SLIM_5_RX Channels" value="Two" />
- <ctl name="RX INT1_1 MIX1 INP0" value="RX4" />
- <ctl name="RX INT2_1 MIX1 INP0" value="RX5" />
- <ctl name="RX INT1_1 NATIVE MUX" value="ON" />
- <ctl name="RX INT2_1 NATIVE MUX" value="ON" />
</path>
<path name="asrc-mode">
- <ctl name="ASRC0 Output Mode" value="FRAC" />
- <ctl name="ASRC1 Output Mode" value="FRAC" />
- <ctl name="RX INT1_2 NATIVE MUX" value="ON" />
- <ctl name="RX INT2_2 NATIVE MUX" value="ON" />
- <ctl name="ASRC0 MUX" value="ASRC_IN_HPHL" />
- <ctl name="RX INT1 SEC MIX HPHL Switch" value="1" />
- <ctl name="ASRC1 MUX" value="ASRC_IN_HPHR" />
- <ctl name="RX INT2 SEC MIX HPHR Switch" value="1" />
</path>
<path name="headphones-dsd">
- <ctl name="SLIM RX6 MUX" value="AIF2_PB" />
- <ctl name="SLIM RX7 MUX" value="AIF2_PB" />
- <ctl name="SLIM_2_RX Channels" value="Two" />
- <ctl name="DSD_L IF MUX" value="RX6" />
- <ctl name="DSD_R IF MUX" value="RX7" />
- <ctl name="RX INT1 MIX3 DSD HPHL Switch" value="1" />
- <ctl name="RX INT2 MIX3 DSD HPHR Switch" value="1" />
- <ctl name="SLIM_2_RX Format" value="DSD_DOP" />
- <ctl name="RX HPH Mode" value="CLS_H_HIFI" />
</path>
<path name="hph-highquality-mode">
- <ctl name="RX HPH Mode" value="CLS_H_LOHIFI" />
</path>
<path name="hph-lowpower-mode">
- <ctl name="RX HPH Mode" value="CLS_H_ULP" />
</path>
<path name="true-native-mode">
@@ -2277,27 +1849,6 @@
</path>
<path name="anc-headphones">
- <ctl name="COMP1 Switch" value="0" />
- <ctl name="COMP2 Switch" value="0" />
- <ctl name="ANC Function" value="ON" />
- <ctl name="ANC Slot" value="0" />
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM RX3 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="Two" />
- <ctl name="ADC MUX10" value="AMIC" />
- <ctl name="AMIC MUX10" value="ADC3" />
- <ctl name="ADC MUX12" value="AMIC" />
- <ctl name="AMIC MUX12" value="ADC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_HPHL" />
- <ctl name="ANC1 FB MUX" value="ANC_IN_HPHR" />
- <ctl name="ADC3 Volume" value="8" />
- <ctl name="ADC4 Volume" value="8" />
- <ctl name="RX INT1_1 MIX1 INP0" value="RX2" />
- <ctl name="RX INT2_1 MIX1 INP0" value="RX3" />
- <ctl name="RX1 Digital Volume" value="81" />
- <ctl name="RX2 Digital Volume" value="81" />
- <ctl name="ANC OUT HPHL Enable Switch" value="1" />
- <ctl name="ANC OUT HPHR Enable Switch" value="1" />
</path>
<path name="speaker-and-anc-headphones">
@@ -2307,7 +1858,6 @@
<path name="anc-fb-headphones">
<path name="anc-headphones" />
- <ctl name="ANC Slot" value="1" />
</path>
<path name="speaker-and-anc-fb-headphones">
@@ -2367,62 +1917,24 @@
</path>
<path name="aanc-path">
- <ctl name="ADC MUX10" value="DMIC" />
- <ctl name="DMIC MUX10" value="DMIC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_EAR_SPKR" />
</path>
<path name="aanc-handset-mic">
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX9" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Three" />
- <ctl name="AANC_SLIM_0_RX MUX" value="SLIMBUS_0_TX" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="DMIC" />
- <ctl name="DMIC MUX6" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC4" />
- <ctl name="CDC_IF TX9 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC0" />
- <ctl name="IIR0 INP0 MUX" value="DEC6" />
</path>
<!-- Dual MIC devices -->
<path name="handset-dmic-endfire">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC4" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
</path>
<path name="speaker-dmic-endfire">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC5" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
</path>
<path name="dmic-endfire">
<path name="handset-dmic-endfire" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic-endfire-liquid">
<path name="handset-dmic-endfire" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="handset-stereo-dmic-ef">
@@ -2478,20 +1990,10 @@
</path>
<path name="speaker-dmic-broadside">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC2" />
</path>
<path name="dmic-broadside">
<path name="speaker-dmic-broadside" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="voice-speaker-dmic-broadside">
@@ -2500,23 +2002,6 @@
<!-- Quad MIC devices -->
<path name="speaker-qmic">
- <!-- ctl name="AIF1_CAP Mixer SLIM TX5" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX6" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX7" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX8" value="1" / -->
- <!-- ctl name="SLIM_0_TX Channels" value="Four" / -->
- <!-- ctl name="CDC_IF TX5 MUX" value="DEC5" / -->
- <!-- ctl name="ADC MUX5" value="DMIC" / -->
- <!-- ctl name="DMIC MUX5" value="DMIC1" / -->
- <!-- ctl name="CDC_IF TX6 MUX" value="DEC6" / -->
- <!-- ctl name="ADC MUX6" value="DMIC" / -->
- <!-- ctl name="DMIC MUX6" value="DMIC0" / -->
- <!-- ctl name="CDC_IF TX7 MUX" value="DEC7" / -->
- <!-- ctl name="ADC MUX7" value="DMIC" / -->
- <!-- ctl name="DMIC MUX7" value="DMIC2" / -->
- <!-- ctl name="CDC_IF TX8 MUX" value="DEC8" / -->
- <!-- ctl name="ADC MUX8" value="DMIC" / -->
- <!-- ctl name="DMIC MUX8" value="DMIC5" / -->
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
</path>
@@ -2543,9 +2028,6 @@
<!-- TTY devices -->
<path name="tty-headphones">
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="One" />
- <ctl name="RX INT1_2 MUX" value="RX2" />
</path>
<path name="voice-tty-full-headphones">
@@ -2575,7 +2057,6 @@
<path name="voice-tty-full-headset-mic">
<path name="amic2" />
- <ctl name="ADC2 Volume" value="0" />
</path>
<path name="voice-tty-hco-headset-mic">
diff --git a/configs/msmnile_au/msmnile_au.mk b/configs/msmnile_au/msmnile_au.mk
index 4be0858..7dd0a3e 100644
--- a/configs/msmnile_au/msmnile_au.mk
+++ b/configs/msmnile_au/msmnile_au.mk
@@ -107,7 +107,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
# Listen configuration file
PRODUCT_COPY_FILES += \
diff --git a/configs/msmsteppe/audio_platform_info.xml b/configs/msmsteppe/audio_platform_info.xml
index 09b2d9b..30fbf1e 100644
--- a/configs/msmsteppe/audio_platform_info.xml
+++ b/configs/msmsteppe/audio_platform_info.xml
@@ -102,6 +102,7 @@
<usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="33" />
<usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="33" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="12" />
+ <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="27" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsatz.13"/>
diff --git a/configs/msmsteppe/audio_platform_info_intcodec.xml b/configs/msmsteppe/audio_platform_info_intcodec.xml
index cbaad99..6273fb8 100644
--- a/configs/msmsteppe/audio_platform_info_intcodec.xml
+++ b/configs/msmsteppe/audio_platform_info_intcodec.xml
@@ -64,6 +64,7 @@
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="16" />
<usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="16" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="12" />
+ <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="27" />
</pcm_ids>
<config_params>
<!-- In the below value string, the value indicates default mono -->
@@ -93,6 +94,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1" acdb_id="10"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_2" acdb_id="10"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET" acdb_id="45"/>
+ <device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" acdb_id="133"/>
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" acdb_id="143"/>
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" acdb_id="144"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" acdb_id="145"/>
diff --git a/configs/msmsteppe/audio_platform_info_qrd.xml b/configs/msmsteppe/audio_platform_info_qrd.xml
index e02e9b3..c49fcb5 100644
--- a/configs/msmsteppe/audio_platform_info_qrd.xml
+++ b/configs/msmsteppe/audio_platform_info_qrd.xml
@@ -64,6 +64,7 @@
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="16" />
<usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="16" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="12" />
+ <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="27" />
</pcm_ids>
<config_params>
<!-- In the below value string, the value indicates default mono -->
@@ -92,6 +93,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1" acdb_id="10"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_2" acdb_id="10"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET" acdb_id="45"/>
+ <device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" acdb_id="133"/>
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" acdb_id="143"/>
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" acdb_id="144"/>
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" acdb_id="145"/>
diff --git a/configs/msmsteppe/audio_policy_configuration.xml b/configs/msmsteppe/audio_policy_configuration.xml
index f86a518..71cac8b 100644
--- a/configs/msmsteppe/audio_policy_configuration.xml
+++ b/configs/msmsteppe/audio_policy_configuration.xml
@@ -167,6 +167,12 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
+ <mixPort name="incall_music_uplink" role="source"
+ flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000,48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="usb_surround_sound" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
@@ -358,7 +364,7 @@
<route type="mix" sink="USB Headset Out"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
- sources="voice_tx"/>
+ sources="voice_tx,incall_music_uplink"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
diff --git a/configs/msmsteppe/mixer_paths_idp.xml b/configs/msmsteppe/mixer_paths_idp.xml
index 860a253..85de3eb 100644
--- a/configs/msmsteppe/mixer_paths_idp.xml
+++ b/configs/msmsteppe/mixer_paths_idp.xml
@@ -146,6 +146,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="None" />
<!-- usb headset -->
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="0" />
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="0" />
@@ -446,6 +447,22 @@
<ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
</path>
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="WSA_CDC_DMA_RX_0" />
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_0" />
+ </path>
+
+ <path name="echo-reference-voip display-port">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="DISPLAY_PORT" />
+ </path>
+
+ <path name="echo-reference-voip headphones-44.1">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_0" />
+ </path>
+
<path name="deep-buffer-playback">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="1" />
</path>
@@ -1816,76 +1833,79 @@
<ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
</path>
- <path name="incall-music-uplink">
+ <path name="incall_music_uplink">
<ctl name="Incall_Music Audio Mixer MultiMedia9" value="1" />
</path>
- <path name="incall-music-uplink speaker">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink handset">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink handset">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink handset-hac">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink handset-hac">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink display-port">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink display-port">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink bt-sco">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink bt-sco">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink bt-sco-wb">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink bt-sco-wb">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-display-port">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-display-port">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink afe-proxy">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink usb-headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink usb-headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink usb-headset">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink usb-headset">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-usb-headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-usb-headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-bt-sco">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-bt-sco">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink voice-tty-hco-handset">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink voice-tty-hco-handset">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-bt-a2dp">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-bt-a2dp">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink bt-a2dp">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink bt-a2dp">
+ <path name="incall_music_uplink" />
+ </path>
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
</path>
<path name="spkr-rx-calib">
diff --git a/configs/msmsteppe/mixer_paths_qrd.xml b/configs/msmsteppe/mixer_paths_qrd.xml
index 5efd1aa..19afb26 100644
--- a/configs/msmsteppe/mixer_paths_qrd.xml
+++ b/configs/msmsteppe/mixer_paths_qrd.xml
@@ -145,6 +145,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="None" />
<!-- usb headset -->
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="0" />
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="0" />
@@ -434,6 +435,26 @@
<ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
</path>
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="WSA_CDC_DMA_RX_0" />
+ </path>
+
+ <path name="echo-reference-voip handset">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_0" />
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_0" />
+ </path>
+
+ <path name="echo-reference-voip display-port">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="DISPLAY_PORT" />
+ </path>
+
+ <path name="echo-reference-voip headphones-44.1">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="RX_CDC_DMA_RX_0" />
+ </path>
+
<path name="deep-buffer-playback">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="1" />
</path>
@@ -1874,76 +1895,79 @@
<ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
</path>
- <path name="incall-music-uplink">
+ <path name="incall_music_uplink">
<ctl name="Incall_Music Audio Mixer MultiMedia9" value="1" />
</path>
- <path name="incall-music-uplink speaker">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink handset">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink handset">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink handset-hac">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink handset-hac">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink display-port">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink display-port">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink bt-sco">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink bt-sco">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink bt-sco-wb">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink bt-sco-wb">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-display-port">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-display-port">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink afe-proxy">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink usb-headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink usb-headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink usb-headset">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink usb-headset">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-usb-headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-usb-headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-bt-sco">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-bt-sco">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink voice-tty-hco-handset">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink voice-tty-hco-handset">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-bt-a2dp">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-bt-a2dp">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink bt-a2dp">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink bt-a2dp">
+ <path name="incall_music_uplink" />
+ </path>
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
</path>
<path name="spkr-rx-calib">
diff --git a/configs/msmsteppe/mixer_paths_tavil.xml b/configs/msmsteppe/mixer_paths_tavil.xml
index e5723d1..d0db2fb 100644
--- a/configs/msmsteppe/mixer_paths_tavil.xml
+++ b/configs/msmsteppe/mixer_paths_tavil.xml
@@ -192,6 +192,7 @@
<!-- HFP end -->
<!-- echo reference -->
<ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="None" />
<!-- usb headset -->
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="0" />
<ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="0" />
@@ -553,6 +554,18 @@
<path name="echo-reference headphones-44.1">
</path>
+ <path name="echo-reference-voip">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="SLIM_RX" />
+ </path>
+
+ <path name="echo-reference-voip headphones">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="SLIM_6_RX" />
+ </path>
+
+ <path name="echo-reference-voip display-port">
+ <ctl name="AUDIO_REF_EC_UL10 MUX" value="DISPLAY_PORT" />
+ </path>
+
<path name="deep-buffer-playback">
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia1" value="1" />
</path>
@@ -2925,76 +2938,79 @@
<ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
</path>
- <path name="incall-music-uplink">
+ <path name="incall_music_uplink">
<ctl name="Incall_Music Audio Mixer MultiMedia9" value="1" />
</path>
- <path name="incall-music-uplink speaker">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink handset">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink handset">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink handset-hac">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink handset-hac">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink display-port">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink display-port">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink bt-sco">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink bt-sco">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink bt-sco-wb">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink bt-sco-wb">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-display-port">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-display-port">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink afe-proxy">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink usb-headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink usb-headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink usb-headset">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink usb-headset">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-usb-headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-usb-headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-headphones">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-headphones">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-bt-sco">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-bt-sco">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink voice-tty-hco-handset">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink voice-tty-hco-handset">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink speaker-and-bt-a2dp">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink speaker-and-bt-a2dp">
+ <path name="incall_music_uplink" />
</path>
- <path name="incall-music-uplink bt-a2dp">
- <path name="incall-music-uplink" />
+ <path name="incall_music_uplink bt-a2dp">
+ <path name="incall_music_uplink" />
+ </path>
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
</path>
</mixer>
diff --git a/configs/msmsteppe/msmsteppe.mk b/configs/msmsteppe/msmsteppe.mk
index e35d6be..9529d40 100644
--- a/configs/msmsteppe/msmsteppe.mk
+++ b/configs/msmsteppe/msmsteppe.mk
@@ -188,7 +188,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
# Listen configuration file
PRODUCT_COPY_FILES += \
@@ -377,7 +378,7 @@
vendor.audio.feature.hfp.enable=true \
vendor.audio.feature.hifi_audio.enable=false \
vendor.audio.feature.hwdep_cal.enable=false \
-vendor.audio.feature.incall_music.enable=false \
+vendor.audio.feature.incall_music.enable=true \
vendor.audio.feature.keep_alive.enable=false \
vendor.audio.feature.kpi_optimize.enable=true \
vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/msmsteppe/sound_trigger_platform_info.xml b/configs/msmsteppe/sound_trigger_platform_info.xml
index ff4152f..413f4c6 100644
--- a/configs/msmsteppe/sound_trigger_platform_info.xml
+++ b/configs/msmsteppe/sound_trigger_platform_info.xml
@@ -34,6 +34,7 @@
<!--- 0x0103: app_type and in_channels added to <lsm usecase> and out_channels -->
<!--- added to <adm_config> -->
<common_config>
+ <param implementer_version="0x0100" />
<param max_cpe_sessions="1" />
<param max_wdsp_sessions="2" />
<param max_ape_sessions="8" />
diff --git a/configs/msmsteppe_au/mixer_paths_adp.xml b/configs/msmsteppe_au/mixer_paths_adp.xml
index 432f50c..e2de539 100644
--- a/configs/msmsteppe_au/mixer_paths_adp.xml
+++ b/configs/msmsteppe_au/mixer_paths_adp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-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 -->
@@ -71,7 +71,6 @@
<ctl name="MultiMedia1 Mixer SLIM_4_TX" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia8 Mixer SLIM_4_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -160,32 +159,9 @@
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia6 Mixer SLIM_0_TX" value="0" />
- <ctl name="SLIM_2_RX Format" value="UNPACKED" />
- <ctl name="SLIM_2_RX SampleRate" value="KHZ_48" />
- <ctl name="SLIM_5_RX SampleRate" value="KHZ_44P1" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="SLIM_5_RX Channels" value="One" />
- <ctl name="SLIM_6_RX Channels" value="One" />
- <ctl name="SLIM_2_RX Channels" value="One" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="SLIM_1_TX Channels" value="One" />
- <ctl name="AIF1_CAP Mixer SLIM TX9" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX5" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX4" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX3" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX2" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX1" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX0" value="0"/>
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
<ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="ZERO" />
<ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="ZERO" />
- <ctl name="VI_FEED_TX Channels" value="Two" />
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="0" />
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="0" />
- <ctl name="SLIM_4_TX Format" value="UNPACKED" />
<ctl name="AANC_SLIM_0_RX MUX" value="ZERO" />
<!-- HFP start -->
<ctl name="HFP_PRI_AUX_UL_HL Switch" value="0" />
@@ -252,8 +228,6 @@
<!-- Voice external ec. reference -->
<ctl name="VOC_EXT_EC MUX" value="NONE" />
- <ctl name="AIF3_CAP Mixer SLIM TX1" value="0" />
- <ctl name="AIF3_CAP Mixer SLIM TX2" value="0" />
<!-- Voice external ec. reference end -->
<!-- RT Proxy Cal -->
@@ -296,12 +270,6 @@
<ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
<!-- audio record compress end-->
- <!-- split a2dp -->
- <ctl name="BT SampleRate" value="KHZ_8" />
- <ctl name="AFE Input Channels" value="Zero" />
- <ctl name="SLIM7_RX ADM Channels" value="Zero" />
- <!-- split a2dp end-->
-
<!-- ADSP testfwk -->
<ctl name="SLIMBUS_DL_HL Switch" value="0" />
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
@@ -323,228 +291,7 @@
<ctl name="SEC_TDM_RX_7 Port Mixer TERT_TDM_TX_7" value="1" />
</path>
- <!-- Codec controls -->
- <!-- WSA controls -->
- <ctl name="SpkrLeft COMP Switch" value="0" />
- <ctl name="SpkrRight COMP Switch" value="0" />
- <ctl name="SpkrLeft BOOST Switch" value="0" />
- <ctl name="SpkrRight BOOST Switch" value="0" />
- <ctl name="SpkrLeft VISENSE Switch" value="0" />
- <ctl name="SpkrRight VISENSE Switch" value="0" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
- <ctl name="SpkrLeft WSA PA Gain" value="G_0_DB" />
-
- <!-- Volume controls -->
- <ctl name="LINEOUT1 Volume" value="13" />
- <ctl name="LINEOUT2 Volume" value="13" />
- <ctl name="HPHL Volume" value="20" />
- <ctl name="HPHR Volume" value="20" />
- <ctl name="EAR PA Gain" value="G_6_DB" />
- <ctl name="EAR SPKR PA Gain" value="G_DEFAULT" />
-
- <ctl name="RX0 Digital Volume" value="84" />
- <ctl name="RX1 Digital Volume" value="84" />
- <ctl name="RX2 Digital Volume" value="84" />
- <ctl name="RX3 Digital Volume" value="84" />
- <ctl name="RX4 Digital Volume" value="84" />
- <ctl name="RX5 Digital Volume" value="84" />
- <ctl name="RX6 Digital Volume" value="84" />
- <ctl name="RX7 Digital Volume" value="84" />
- <ctl name="ADC1 Volume" value="12" />
- <ctl name="ADC2 Volume" value="12" />
- <ctl name="ADC3 Volume" value="0" />
- <ctl name="ADC4 Volume" value="0" />
- <ctl name="DEC0 Volume" value="84" />
- <ctl name="DEC1 Volume" value="84" />
- <ctl name="DEC2 Volume" value="84" />
- <ctl name="DEC3 Volume" value="84" />
- <ctl name="DEC4 Volume" value="84" />
- <ctl name="DEC5 Volume" value="84" />
- <ctl name="DEC6 Volume" value="84" />
- <ctl name="DEC7 Volume" value="84" />
- <ctl name="DEC8 Volume" value="84" />
-
- <!-- Compander controls -->
- <ctl name="COMP1 Switch" value="1" />
- <ctl name="COMP2 Switch" value="1" />
- <ctl name="COMP7 Switch" value="0" />
- <ctl name="COMP8 Switch" value="0" />
-
- <!-- ADC, DMIC and AMIC controls -->
- <ctl name="ADC MUX0" value="AMIC" />
- <ctl name="ADC MUX1" value="AMIC" />
- <ctl name="ADC MUX2" value="AMIC" />
- <ctl name="ADC MUX3" value="AMIC" />
- <ctl name="ADC MUX4" value="AMIC" />
- <ctl name="ADC MUX5" value="AMIC" />
- <ctl name="ADC MUX6" value="AMIC" />
- <ctl name="ADC MUX7" value="AMIC" />
- <ctl name="ADC MUX8" value="AMIC" />
- <ctl name="ADC MUX10" value="AMIC" />
- <ctl name="ADC MUX11" value="AMIC" />
- <ctl name="ADC MUX12" value="AMIC" />
- <ctl name="ADC MUX13" value="AMIC" />
- <ctl name="DMIC MUX0" value="ZERO" />
- <ctl name="DMIC MUX1" value="ZERO" />
- <ctl name="DMIC MUX2" value="ZERO" />
- <ctl name="DMIC MUX3" value="ZERO" />
- <ctl name="DMIC MUX4" value="ZERO" />
- <ctl name="DMIC MUX5" value="ZERO" />
- <ctl name="DMIC MUX6" value="ZERO" />
- <ctl name="DMIC MUX7" value="ZERO" />
- <ctl name="DMIC MUX8" value="ZERO" />
- <ctl name="DMIC MUX10" value="ZERO" />
- <ctl name="DMIC MUX11" value="ZERO" />
- <ctl name="DMIC MUX12" value="ZERO" />
- <ctl name="DMIC MUX13" value="ZERO" />
- <ctl name="AMIC MUX0" value="ZERO" />
- <ctl name="AMIC MUX1" value="ZERO" />
- <ctl name="AMIC MUX2" value="ZERO" />
- <ctl name="AMIC MUX3" value="ZERO" />
- <ctl name="AMIC MUX4" value="ZERO" />
- <ctl name="AMIC MUX5" value="ZERO" />
- <ctl name="AMIC MUX6" value="ZERO" />
- <ctl name="AMIC MUX7" value="ZERO" />
- <ctl name="AMIC MUX8" value="ZERO" />
- <ctl name="AMIC MUX10" value="ZERO" />
- <ctl name="AMIC MUX11" value="ZERO" />
- <ctl name="AMIC MUX12" value="ZERO" />
- <ctl name="AMIC MUX13" value="ZERO" />
-
- <ctl name="AMIC4_5 SEL" value="AMIC4" />
- <!-- CDC_IF and SLIM controls -->
- <ctl name="SLIM RX0 MUX" value="ZERO" />
- <ctl name="SLIM RX1 MUX" value="ZERO" />
- <ctl name="SLIM RX2 MUX" value="ZERO" />
- <ctl name="SLIM RX3 MUX" value="ZERO" />
- <ctl name="SLIM RX4 MUX" value="ZERO" />
- <ctl name="SLIM RX5 MUX" value="ZERO" />
- <ctl name="SLIM RX6 MUX" value="ZERO" />
- <ctl name="SLIM RX7 MUX" value="ZERO" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="CDC_IF RX2 MUX" value="SLIM RX2" />
- <ctl name="CDC_IF RX3 MUX" value="SLIM RX3" />
- <ctl name="CDC_IF RX4 MUX" value="SLIM RX4" />
- <ctl name="CDC_IF RX5 MUX" value="SLIM RX5" />
- <ctl name="CDC_IF RX6 MUX" value="SLIM RX6" />
- <ctl name="CDC_IF RX7 MUX" value="SLIM RX7" />
- <ctl name="CDC_IF TX0 MUX" value="ZERO" />
- <ctl name="CDC_IF TX1 MUX" value="ZERO" />
- <ctl name="CDC_IF TX2 MUX" value="ZERO" />
- <ctl name="CDC_IF TX3 MUX" value="ZERO" />
- <ctl name="CDC_IF TX4 MUX" value="ZERO" />
- <ctl name="CDC_IF TX5 MUX" value="ZERO" />
- <ctl name="CDC_IF TX6 MUX" value="ZERO" />
- <ctl name="CDC_IF TX7 MUX" value="ZERO" />
- <ctl name="CDC_IF TX8 MUX" value="ZERO" />
- <ctl name="CDC_IF TX9 MUX" value="ZERO" />
- <ctl name="CDC_IF TX10 MUX" value="ZERO" />
- <ctl name="CDC_IF TX13 MUX" value="ZERO" />
-
- <!-- Interpolator chain controls -->
- <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT0_2 MUX" value="ZERO" />
- <ctl name="RX INT1_2 MUX" value="ZERO" />
- <ctl name="RX INT2_2 MUX" value="ZERO" />
- <ctl name="RX INT7_2 MUX" value="ZERO" />
- <ctl name="RX INT8_2 MUX" value="ZERO" />
- <ctl name="RX INT1_1 NATIVE MUX" value="OFF" />
- <ctl name="RX INT2_1 NATIVE MUX" value="OFF" />
- <ctl name="RX INT1_2 NATIVE MUX" value="OFF" />
- <ctl name="RX INT2_2 NATIVE MUX" value="OFF" />
- <ctl name="ASRC0 MUX" value="ZERO" />
- <ctl name="ASRC1 MUX" value="ZERO" />
- <ctl name="RX INT1 SEC MIX HPHL Switch" value="0" />
- <ctl name="RX INT2 SEC MIX HPHR Switch" value="0" />
- <ctl name="DSD_L IF MUX" value="ZERO" />
- <ctl name="DSD_R IF MUX" value="ZERO" />
- <ctl name="RX INT1 MIX3 DSD HPHL Switch" value="0" />
- <ctl name="RX INT2 MIX3 DSD HPHR Switch" value="0" />
- <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX INT2 DEM MUX" value="CLSH_DSM_OUT" />
-
- <!-- Headphone Default mode - uLP -->
- <ctl name="RX HPH Mode" value="CLS_H_ULP" />
- <ctl name="ASRC0 Output Mode" value="INT" />
- <ctl name="ASRC1 Output Mode" value="INT" />
-
- <!-- IIR/voice anc -->
- <ctl name="IIR0 Band1" id ="0" value="268435456" />
- <ctl name="IIR0 Band1" id ="1" value="0" />
- <ctl name="IIR0 Band1" id ="2" value="0" />
- <ctl name="IIR0 Band1" id ="3" value="0" />
- <ctl name="IIR0 Band1" id ="4" value="0" />
- <ctl name="IIR0 Band2" id ="0" value="268435456" />
- <ctl name="IIR0 Band2" id ="1" value="0" />
- <ctl name="IIR0 Band2" id ="2" value="0" />
- <ctl name="IIR0 Band2" id ="3" value="0" />
- <ctl name="IIR0 Band2" id ="4" value="0" />
- <ctl name="IIR0 Band3" id ="0" value="268435456" />
- <ctl name="IIR0 Band3" id ="1" value="0" />
- <ctl name="IIR0 Band3" id ="2" value="0" />
- <ctl name="IIR0 Band3" id ="3" value="0" />
- <ctl name="IIR0 Band3" id ="4" value="0" />
- <ctl name="IIR0 Band4" id ="0" value="268435456" />
- <ctl name="IIR0 Band4" id ="1" value="0" />
- <ctl name="IIR0 Band4" id ="2" value="0" />
- <ctl name="IIR0 Band4" id ="3" value="0" />
- <ctl name="IIR0 Band4" id ="4" value="0" />
- <ctl name="IIR0 Band5" id ="0" value="268435456" />
- <ctl name="IIR0 Band5" id ="1" value="0" />
- <ctl name="IIR0 Band5" id ="2" value="0" />
- <ctl name="IIR0 Band5" id ="3" value="0" />
- <ctl name="IIR0 Band5" id ="4" value="0" />
- <ctl name="IIR0 Enable Band1" value="0" />
- <ctl name="IIR0 Enable Band2" value="0" />
- <ctl name="IIR0 Enable Band3" value="0" />
- <ctl name="IIR0 Enable Band4" value="0" />
- <ctl name="IIR0 Enable Band5" value="0" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="IIR0 INP0 MUX" value="ZERO" />
- <ctl name="IIR0 INP1 MUX" value="ZERO" />
- <ctl name="IIR0 INP2 MUX" value="ZERO" />
- <ctl name="IIR1 INP0 MUX" value="ZERO" />
- <ctl name="IIR1 INP1 MUX" value="ZERO" />
- <ctl name="IIR1 INP2 MUX" value="ZERO" />
-
- <!-- anc related -->
- <ctl name="ANC Slot" value="0" />
- <ctl name="ANC Function" value="OFF" />
- <ctl name="ANC0 FB MUX" value="ZERO" />
- <ctl name="ANC1 FB MUX" value="ZERO" />
- <ctl name="ANC OUT EAR Enable Switch" value="0" />
- <ctl name="ANC OUT EAR SPKR Enable Switch" value="0" />
- <ctl name="ANC SPKR PA Enable Switch" value="0" />
- <ctl name="ANC OUT HPHL Enable Switch" value="0" />
- <ctl name="ANC OUT HPHR Enable Switch" value="0" />
-
- <!-- Codec controls end -->
-
- <!-- mixer control to disable lowlatency qos voting -->
- <ctl name="MultiMedia5_RX QOS Vote" value="Disable" />
- <!-- mixer control to disable lowlatency qos voting end -->
-
<!-- These are audio route (FE to BE) specific mixer settings -->
- <path name="gsm-mode">
- <ctl name="GSM mode Enable" value="ON" />
- </path>
<!-- EC Reference -->
<ctl name="EC Reference Channels" value="Zero" />
@@ -569,7 +316,7 @@
</path>
<path name="multi-mic-echo-reference">
- <ctl name="TDM SampleRate" value="16000" />
+ <ctl name="SEC_TDM_TX_0 SampleRate" value="KHZ_16" />
<ctl name="SEC_TDM_TX_0 Channels" value="Six" />
<ctl name="MultiMedia2 Mixer SEC_TDM_TX_0" value="1" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SEC_TDM_TX_0" />
@@ -1600,7 +1347,7 @@
</path>
<path name="icc-call">
- <ctl name="TDM SampleRate" value="16000" />
+ <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_TX_0 Channels" value="Four" />
@@ -1824,121 +1571,38 @@
<!-- These are actual sound device specific mixer settings -->
<path name="amic1">
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="AMIC" />
- <ctl name="AMIC MUX6" value="ADC1" />
- <ctl name="IIR0 INP0 MUX" value="DEC6" />
</path>
<path name="amic2">
- <ctl name="AIF1_CAP Mixer SLIM TX0" value="1"/>
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="CDC_IF TX0 MUX" value="DEC0" />
- <ctl name="ADC MUX0" value="AMIC" />
- <ctl name="AMIC MUX0" value="ADC2" />
- <ctl name="IIR0 INP0 MUX" value="DEC0" />
</path>
<!-- For Tavil, DMIC numbered from 0 to 5 -->
<path name="dmic1">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC0" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic2">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1"/>
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic3">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC2" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic4">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC3" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic5">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC4" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic6">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC5" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="speaker">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="SLIM_0_RX Channels" value="Two" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
- <ctl name="COMP7 Switch" value="1" />
- <ctl name="COMP8 Switch" value="1" />
- <ctl name="SpkrLeft COMP Switch" value="1" />
- <ctl name="SpkrLeft BOOST Switch" value="1" />
- <ctl name="SpkrLeft VISENSE Switch" value="1" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="SpkrRight COMP Switch" value="1" />
- <ctl name="SpkrRight BOOST Switch" value="1" />
- <ctl name="SpkrRight VISENSE Switch" value="1" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
</path>
<path name="speaker-mono">
- <!-- ctl name="SLIM RX0 MUX" value="AIF1_PB" / -->
- <!-- ctl name="CDC_IF RX0 MUX" value="SLIM RX0" / -->
- <!-- ctl name="SLIM_0_RX Channels" value="One" / -->
- <!-- ctl name="RX INT7_1 MIX1 INP0" value="RX0" / -->
- <!-- ctl name="COMP7 Switch" value="1" / -->
- <!-- ctl name="SpkrLeft COMP Switch" value="1" / -->
- <!-- ctl name="SpkrLeft BOOST Switch" value="1" / -->
- <!-- ctl name="SpkrLeft VISENSE Switch" value="1" / -->
- <!-- ctl name="SpkrLeft SWR DAC_Port Switch" value="1" / -->
<ctl name="TERT_TDM_RX_0 Channels" value="One" />
</path>
<path name="speaker-mono-2">
- <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
- <ctl name="COMP8 Switch" value="1" />
- <ctl name="SpkrRight COMP Switch" value="1" />
- <ctl name="SpkrRight BOOST Switch" value="1" />
- <ctl name="SpkrRight VISENSE Switch" value="1" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
</path>
<path name="speaker-qrd">
@@ -1964,24 +1628,14 @@
</path>
<path name="sidetone-iir">
- <ctl name="IIR0 Enable Band1" value="1" />
- <ctl name="IIR0 Enable Band2" value="1" />
- <ctl name="IIR0 Enable Band3" value="1" />
- <ctl name="IIR0 Enable Band4" value="1" />
- <ctl name="IIR0 Enable Band5" value="1" />
</path>
<path name="sidetone-headphones">
<path name="sidetone-iir" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="RX INT1 MIX2 INP" value="SRC0" />
- <ctl name="RX INT2 MIX2 INP" value="SRC0" />
</path>
<path name="sidetone-handset">
<path name="sidetone-iir" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="RX INT7 MIX2 INP" value="SRC0" />
</path>
<path name="afe-sidetone">
@@ -2000,29 +1654,15 @@
</path>
<path name="speaker-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="1" />
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker" />
- <ctl name="VI_FEED_TX Channels" value="Two" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
- <ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="SLIM4_TX" />
</path>
<path name="voice-speaker-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker-mono" />
- <ctl name="VI_FEED_TX Channels" value="One" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
</path>
<path name="voice-speaker-2-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker-mono-2" />
- <ctl name="VI_FEED_TX Channels" value="One" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
</path>
<path name="vi-feedback">
@@ -2035,23 +1675,9 @@
</path>
<path name="handset">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="COMP7 Switch" value="1" />
- <ctl name="SpkrLeft COMP Switch" value="1" />
- <ctl name="SpkrLeft BOOST Switch" value="1" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="EAR SPKR PA Gain" value="G_6_DB" />
</path>
<path name="handset-qrd">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
- <ctl name="EAR PA Gain" value="G_6_DB" />
</path>
<path name="handset-mic">
@@ -2075,81 +1701,27 @@
</path>
<path name="three-mic">
- <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Three" />
- <ctl name="CDC_IF TX5 MUX" value="DEC5" />
- <ctl name="ADC MUX5" value="DMIC" />
- <ctl name="DMIC MUX5" value="DMIC0" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="DMIC" />
- <ctl name="DMIC MUX6" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC5" />
</path>
<path name="anc-handset">
- <ctl name="ANC Function" value="ON" />
- <ctl name="ANC Slot" value="6" />
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="ANC OUT EAR SPKR Enable Switch" value="1" />
- <ctl name="ANC SPKR PA Enable Switch" value="1" />
- <ctl name="SpkrLeft WSA PA Gain" value="G_6_DB" />
</path>
<path name="headphones">
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM RX3 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="Two" />
- <ctl name="RX INT1_2 MUX" value="RX2" />
- <ctl name="RX INT2_2 MUX" value="RX3" />
</path>
<path name="headphones-44.1">
- <ctl name="SLIM RX4 MUX" value="AIF3_PB" />
- <ctl name="SLIM RX5 MUX" value="AIF3_PB" />
- <ctl name="SLIM_5_RX Channels" value="Two" />
- <ctl name="RX INT1_1 MIX1 INP0" value="RX4" />
- <ctl name="RX INT2_1 MIX1 INP0" value="RX5" />
- <ctl name="RX INT1_1 NATIVE MUX" value="ON" />
- <ctl name="RX INT2_1 NATIVE MUX" value="ON" />
</path>
<path name="asrc-mode">
- <ctl name="ASRC0 Output Mode" value="FRAC" />
- <ctl name="ASRC1 Output Mode" value="FRAC" />
- <ctl name="RX INT1_2 NATIVE MUX" value="ON" />
- <ctl name="RX INT2_2 NATIVE MUX" value="ON" />
- <ctl name="ASRC0 MUX" value="ASRC_IN_HPHL" />
- <ctl name="RX INT1 SEC MIX HPHL Switch" value="1" />
- <ctl name="ASRC1 MUX" value="ASRC_IN_HPHR" />
- <ctl name="RX INT2 SEC MIX HPHR Switch" value="1" />
</path>
<path name="headphones-dsd">
- <ctl name="SLIM RX6 MUX" value="AIF2_PB" />
- <ctl name="SLIM RX7 MUX" value="AIF2_PB" />
- <ctl name="SLIM_2_RX Channels" value="Two" />
- <ctl name="DSD_L IF MUX" value="RX6" />
- <ctl name="DSD_R IF MUX" value="RX7" />
- <ctl name="RX INT1 MIX3 DSD HPHL Switch" value="1" />
- <ctl name="RX INT2 MIX3 DSD HPHR Switch" value="1" />
- <ctl name="SLIM_2_RX Format" value="DSD_DOP" />
- <ctl name="RX HPH Mode" value="CLS_H_HIFI" />
</path>
<path name="hph-highquality-mode">
- <ctl name="RX HPH Mode" value="CLS_H_LOHIFI" />
</path>
<path name="hph-lowpower-mode">
- <ctl name="RX HPH Mode" value="CLS_H_ULP" />
</path>
<path name="true-native-mode">
@@ -2255,27 +1827,6 @@
</path>
<path name="anc-headphones">
- <ctl name="COMP1 Switch" value="0" />
- <ctl name="COMP2 Switch" value="0" />
- <ctl name="ANC Function" value="ON" />
- <ctl name="ANC Slot" value="0" />
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM RX3 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="Two" />
- <ctl name="ADC MUX10" value="AMIC" />
- <ctl name="AMIC MUX10" value="ADC3" />
- <ctl name="ADC MUX12" value="AMIC" />
- <ctl name="AMIC MUX12" value="ADC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_HPHL" />
- <ctl name="ANC1 FB MUX" value="ANC_IN_HPHR" />
- <ctl name="ADC3 Volume" value="8" />
- <ctl name="ADC4 Volume" value="8" />
- <ctl name="RX INT1_1 MIX1 INP0" value="RX2" />
- <ctl name="RX INT2_1 MIX1 INP0" value="RX3" />
- <ctl name="RX1 Digital Volume" value="81" />
- <ctl name="RX2 Digital Volume" value="81" />
- <ctl name="ANC OUT HPHL Enable Switch" value="1" />
- <ctl name="ANC OUT HPHR Enable Switch" value="1" />
</path>
<path name="speaker-and-anc-headphones">
@@ -2285,7 +1836,6 @@
<path name="anc-fb-headphones">
<path name="anc-headphones" />
- <ctl name="ANC Slot" value="1" />
</path>
<path name="speaker-and-anc-fb-headphones">
@@ -2345,62 +1895,24 @@
</path>
<path name="aanc-path">
- <ctl name="ADC MUX10" value="DMIC" />
- <ctl name="DMIC MUX10" value="DMIC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_EAR_SPKR" />
</path>
<path name="aanc-handset-mic">
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX9" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Three" />
- <ctl name="AANC_SLIM_0_RX MUX" value="SLIMBUS_0_TX" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="DMIC" />
- <ctl name="DMIC MUX6" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC4" />
- <ctl name="CDC_IF TX9 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC0" />
- <ctl name="IIR0 INP0 MUX" value="DEC6" />
</path>
<!-- Dual MIC devices -->
<path name="handset-dmic-endfire">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC4" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
</path>
<path name="speaker-dmic-endfire">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC5" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
</path>
<path name="dmic-endfire">
<path name="handset-dmic-endfire" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic-endfire-liquid">
<path name="handset-dmic-endfire" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="handset-stereo-dmic-ef">
@@ -2456,20 +1968,10 @@
</path>
<path name="speaker-dmic-broadside">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC2" />
</path>
<path name="dmic-broadside">
<path name="speaker-dmic-broadside" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="voice-speaker-dmic-broadside">
@@ -2478,23 +1980,6 @@
<!-- Quad MIC devices -->
<path name="speaker-qmic">
- <!-- ctl name="AIF1_CAP Mixer SLIM TX5" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX6" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX7" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX8" value="1" / -->
- <!-- ctl name="SLIM_0_TX Channels" value="Four" / -->
- <!-- ctl name="CDC_IF TX5 MUX" value="DEC5" / -->
- <!-- ctl name="ADC MUX5" value="DMIC" / -->
- <!-- ctl name="DMIC MUX5" value="DMIC1" / -->
- <!-- ctl name="CDC_IF TX6 MUX" value="DEC6" / -->
- <!-- ctl name="ADC MUX6" value="DMIC" / -->
- <!-- ctl name="DMIC MUX6" value="DMIC0" / -->
- <!-- ctl name="CDC_IF TX7 MUX" value="DEC7" / -->
- <!-- ctl name="ADC MUX7" value="DMIC" / -->
- <!-- ctl name="DMIC MUX7" value="DMIC2" / -->
- <!-- ctl name="CDC_IF TX8 MUX" value="DEC8" / -->
- <!-- ctl name="ADC MUX8" value="DMIC" / -->
- <!-- ctl name="DMIC MUX8" value="DMIC5" / -->
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
</path>
@@ -2521,9 +2006,6 @@
<!-- TTY devices -->
<path name="tty-headphones">
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="One" />
- <ctl name="RX INT1_2 MUX" value="RX2" />
</path>
<path name="voice-tty-full-headphones">
@@ -2553,7 +2035,6 @@
<path name="voice-tty-full-headset-mic">
<path name="amic2" />
- <ctl name="ADC2 Volume" value="0" />
</path>
<path name="voice-tty-hco-headset-mic">
diff --git a/configs/msmsteppe_au/mixer_paths_custom.xml b/configs/msmsteppe_au/mixer_paths_custom.xml
index f9257d2..3de6f0f 100644
--- a/configs/msmsteppe_au/mixer_paths_custom.xml
+++ b/configs/msmsteppe_au/mixer_paths_custom.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-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 -->
@@ -71,7 +71,6 @@
<ctl name="MultiMedia1 Mixer SLIM_4_TX" value="0" />
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer TERT_TDM_TX_0" value="0" />
- <ctl name="MultiMedia8 Mixer SLIM_4_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
<ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
@@ -160,32 +159,9 @@
<ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
<ctl name="MultiMedia6 Mixer SLIM_0_TX" value="0" />
- <ctl name="SLIM_2_RX Format" value="UNPACKED" />
- <ctl name="SLIM_2_RX SampleRate" value="KHZ_48" />
- <ctl name="SLIM_5_RX SampleRate" value="KHZ_44P1" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="SLIM_5_RX Channels" value="One" />
- <ctl name="SLIM_6_RX Channels" value="One" />
- <ctl name="SLIM_2_RX Channels" value="One" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="SLIM_1_TX Channels" value="One" />
- <ctl name="AIF1_CAP Mixer SLIM TX9" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX5" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX4" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX3" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX2" value="0" />
- <ctl name="AIF1_CAP Mixer SLIM TX1" value="0"/>
- <ctl name="AIF1_CAP Mixer SLIM TX0" value="0"/>
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="0" />
<ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="ZERO" />
<ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="ZERO" />
- <ctl name="VI_FEED_TX Channels" value="Two" />
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="0" />
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="0" />
- <ctl name="SLIM_4_TX Format" value="UNPACKED" />
<ctl name="AANC_SLIM_0_RX MUX" value="ZERO" />
<!-- HFP start -->
<ctl name="HFP_PRI_AUX_UL_HL Switch" value="0" />
@@ -252,8 +228,6 @@
<!-- Voice external ec. reference -->
<ctl name="VOC_EXT_EC MUX" value="NONE" />
- <ctl name="AIF3_CAP Mixer SLIM TX1" value="0" />
- <ctl name="AIF3_CAP Mixer SLIM TX2" value="0" />
<!-- Voice external ec. reference end -->
<!-- RT Proxy Cal -->
@@ -296,12 +270,6 @@
<ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
<!-- audio record compress end-->
- <!-- split a2dp -->
- <ctl name="BT SampleRate" value="KHZ_8" />
- <ctl name="AFE Input Channels" value="Zero" />
- <ctl name="SLIM7_RX ADM Channels" value="Zero" />
- <!-- split a2dp end-->
-
<!-- ADSP testfwk -->
<ctl name="SLIMBUS_DL_HL Switch" value="0" />
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
@@ -319,228 +287,7 @@
<ctl name="SEC_TDM_RX_0 Audio Mixer MultiMedia9" value="0" />
<ctl name="MultiMedia9 Mixer TERT_TDM_TX_0" value="0" />
- <!-- Codec controls -->
- <!-- WSA controls -->
- <ctl name="SpkrLeft COMP Switch" value="0" />
- <ctl name="SpkrRight COMP Switch" value="0" />
- <ctl name="SpkrLeft BOOST Switch" value="0" />
- <ctl name="SpkrRight BOOST Switch" value="0" />
- <ctl name="SpkrLeft VISENSE Switch" value="0" />
- <ctl name="SpkrRight VISENSE Switch" value="0" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
- <ctl name="SpkrLeft WSA PA Gain" value="G_0_DB" />
-
- <!-- Volume controls -->
- <ctl name="LINEOUT1 Volume" value="13" />
- <ctl name="LINEOUT2 Volume" value="13" />
- <ctl name="HPHL Volume" value="20" />
- <ctl name="HPHR Volume" value="20" />
- <ctl name="EAR PA Gain" value="G_6_DB" />
- <ctl name="EAR SPKR PA Gain" value="G_DEFAULT" />
-
- <ctl name="RX0 Digital Volume" value="84" />
- <ctl name="RX1 Digital Volume" value="84" />
- <ctl name="RX2 Digital Volume" value="84" />
- <ctl name="RX3 Digital Volume" value="84" />
- <ctl name="RX4 Digital Volume" value="84" />
- <ctl name="RX5 Digital Volume" value="84" />
- <ctl name="RX6 Digital Volume" value="84" />
- <ctl name="RX7 Digital Volume" value="84" />
- <ctl name="ADC1 Volume" value="12" />
- <ctl name="ADC2 Volume" value="12" />
- <ctl name="ADC3 Volume" value="0" />
- <ctl name="ADC4 Volume" value="0" />
- <ctl name="DEC0 Volume" value="84" />
- <ctl name="DEC1 Volume" value="84" />
- <ctl name="DEC2 Volume" value="84" />
- <ctl name="DEC3 Volume" value="84" />
- <ctl name="DEC4 Volume" value="84" />
- <ctl name="DEC5 Volume" value="84" />
- <ctl name="DEC6 Volume" value="84" />
- <ctl name="DEC7 Volume" value="84" />
- <ctl name="DEC8 Volume" value="84" />
-
- <!-- Compander controls -->
- <ctl name="COMP1 Switch" value="1" />
- <ctl name="COMP2 Switch" value="1" />
- <ctl name="COMP7 Switch" value="0" />
- <ctl name="COMP8 Switch" value="0" />
-
- <!-- ADC, DMIC and AMIC controls -->
- <ctl name="ADC MUX0" value="AMIC" />
- <ctl name="ADC MUX1" value="AMIC" />
- <ctl name="ADC MUX2" value="AMIC" />
- <ctl name="ADC MUX3" value="AMIC" />
- <ctl name="ADC MUX4" value="AMIC" />
- <ctl name="ADC MUX5" value="AMIC" />
- <ctl name="ADC MUX6" value="AMIC" />
- <ctl name="ADC MUX7" value="AMIC" />
- <ctl name="ADC MUX8" value="AMIC" />
- <ctl name="ADC MUX10" value="AMIC" />
- <ctl name="ADC MUX11" value="AMIC" />
- <ctl name="ADC MUX12" value="AMIC" />
- <ctl name="ADC MUX13" value="AMIC" />
- <ctl name="DMIC MUX0" value="ZERO" />
- <ctl name="DMIC MUX1" value="ZERO" />
- <ctl name="DMIC MUX2" value="ZERO" />
- <ctl name="DMIC MUX3" value="ZERO" />
- <ctl name="DMIC MUX4" value="ZERO" />
- <ctl name="DMIC MUX5" value="ZERO" />
- <ctl name="DMIC MUX6" value="ZERO" />
- <ctl name="DMIC MUX7" value="ZERO" />
- <ctl name="DMIC MUX8" value="ZERO" />
- <ctl name="DMIC MUX10" value="ZERO" />
- <ctl name="DMIC MUX11" value="ZERO" />
- <ctl name="DMIC MUX12" value="ZERO" />
- <ctl name="DMIC MUX13" value="ZERO" />
- <ctl name="AMIC MUX0" value="ZERO" />
- <ctl name="AMIC MUX1" value="ZERO" />
- <ctl name="AMIC MUX2" value="ZERO" />
- <ctl name="AMIC MUX3" value="ZERO" />
- <ctl name="AMIC MUX4" value="ZERO" />
- <ctl name="AMIC MUX5" value="ZERO" />
- <ctl name="AMIC MUX6" value="ZERO" />
- <ctl name="AMIC MUX7" value="ZERO" />
- <ctl name="AMIC MUX8" value="ZERO" />
- <ctl name="AMIC MUX10" value="ZERO" />
- <ctl name="AMIC MUX11" value="ZERO" />
- <ctl name="AMIC MUX12" value="ZERO" />
- <ctl name="AMIC MUX13" value="ZERO" />
-
- <ctl name="AMIC4_5 SEL" value="AMIC4" />
- <!-- CDC_IF and SLIM controls -->
- <ctl name="SLIM RX0 MUX" value="ZERO" />
- <ctl name="SLIM RX1 MUX" value="ZERO" />
- <ctl name="SLIM RX2 MUX" value="ZERO" />
- <ctl name="SLIM RX3 MUX" value="ZERO" />
- <ctl name="SLIM RX4 MUX" value="ZERO" />
- <ctl name="SLIM RX5 MUX" value="ZERO" />
- <ctl name="SLIM RX6 MUX" value="ZERO" />
- <ctl name="SLIM RX7 MUX" value="ZERO" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="CDC_IF RX2 MUX" value="SLIM RX2" />
- <ctl name="CDC_IF RX3 MUX" value="SLIM RX3" />
- <ctl name="CDC_IF RX4 MUX" value="SLIM RX4" />
- <ctl name="CDC_IF RX5 MUX" value="SLIM RX5" />
- <ctl name="CDC_IF RX6 MUX" value="SLIM RX6" />
- <ctl name="CDC_IF RX7 MUX" value="SLIM RX7" />
- <ctl name="CDC_IF TX0 MUX" value="ZERO" />
- <ctl name="CDC_IF TX1 MUX" value="ZERO" />
- <ctl name="CDC_IF TX2 MUX" value="ZERO" />
- <ctl name="CDC_IF TX3 MUX" value="ZERO" />
- <ctl name="CDC_IF TX4 MUX" value="ZERO" />
- <ctl name="CDC_IF TX5 MUX" value="ZERO" />
- <ctl name="CDC_IF TX6 MUX" value="ZERO" />
- <ctl name="CDC_IF TX7 MUX" value="ZERO" />
- <ctl name="CDC_IF TX8 MUX" value="ZERO" />
- <ctl name="CDC_IF TX9 MUX" value="ZERO" />
- <ctl name="CDC_IF TX10 MUX" value="ZERO" />
- <ctl name="CDC_IF TX13 MUX" value="ZERO" />
-
- <!-- Interpolator chain controls -->
- <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT2_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT7_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP0" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP1" value="ZERO" />
- <ctl name="RX INT8_1 MIX1 INP2" value="ZERO" />
- <ctl name="RX INT0_2 MUX" value="ZERO" />
- <ctl name="RX INT1_2 MUX" value="ZERO" />
- <ctl name="RX INT2_2 MUX" value="ZERO" />
- <ctl name="RX INT7_2 MUX" value="ZERO" />
- <ctl name="RX INT8_2 MUX" value="ZERO" />
- <ctl name="RX INT1_1 NATIVE MUX" value="OFF" />
- <ctl name="RX INT2_1 NATIVE MUX" value="OFF" />
- <ctl name="RX INT1_2 NATIVE MUX" value="OFF" />
- <ctl name="RX INT2_2 NATIVE MUX" value="OFF" />
- <ctl name="ASRC0 MUX" value="ZERO" />
- <ctl name="ASRC1 MUX" value="ZERO" />
- <ctl name="RX INT1 SEC MIX HPHL Switch" value="0" />
- <ctl name="RX INT2 SEC MIX HPHR Switch" value="0" />
- <ctl name="DSD_L IF MUX" value="ZERO" />
- <ctl name="DSD_R IF MUX" value="ZERO" />
- <ctl name="RX INT1 MIX3 DSD HPHL Switch" value="0" />
- <ctl name="RX INT2 MIX3 DSD HPHR Switch" value="0" />
- <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
- <ctl name="RX INT2 DEM MUX" value="CLSH_DSM_OUT" />
-
- <!-- Headphone Default mode - uLP -->
- <ctl name="RX HPH Mode" value="CLS_H_ULP" />
- <ctl name="ASRC0 Output Mode" value="INT" />
- <ctl name="ASRC1 Output Mode" value="INT" />
-
- <!-- IIR/voice anc -->
- <ctl name="IIR0 Band1" id ="0" value="268435456" />
- <ctl name="IIR0 Band1" id ="1" value="0" />
- <ctl name="IIR0 Band1" id ="2" value="0" />
- <ctl name="IIR0 Band1" id ="3" value="0" />
- <ctl name="IIR0 Band1" id ="4" value="0" />
- <ctl name="IIR0 Band2" id ="0" value="268435456" />
- <ctl name="IIR0 Band2" id ="1" value="0" />
- <ctl name="IIR0 Band2" id ="2" value="0" />
- <ctl name="IIR0 Band2" id ="3" value="0" />
- <ctl name="IIR0 Band2" id ="4" value="0" />
- <ctl name="IIR0 Band3" id ="0" value="268435456" />
- <ctl name="IIR0 Band3" id ="1" value="0" />
- <ctl name="IIR0 Band3" id ="2" value="0" />
- <ctl name="IIR0 Band3" id ="3" value="0" />
- <ctl name="IIR0 Band3" id ="4" value="0" />
- <ctl name="IIR0 Band4" id ="0" value="268435456" />
- <ctl name="IIR0 Band4" id ="1" value="0" />
- <ctl name="IIR0 Band4" id ="2" value="0" />
- <ctl name="IIR0 Band4" id ="3" value="0" />
- <ctl name="IIR0 Band4" id ="4" value="0" />
- <ctl name="IIR0 Band5" id ="0" value="268435456" />
- <ctl name="IIR0 Band5" id ="1" value="0" />
- <ctl name="IIR0 Band5" id ="2" value="0" />
- <ctl name="IIR0 Band5" id ="3" value="0" />
- <ctl name="IIR0 Band5" id ="4" value="0" />
- <ctl name="IIR0 Enable Band1" value="0" />
- <ctl name="IIR0 Enable Band2" value="0" />
- <ctl name="IIR0 Enable Band3" value="0" />
- <ctl name="IIR0 Enable Band4" value="0" />
- <ctl name="IIR0 Enable Band5" value="0" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="IIR0 INP0 MUX" value="ZERO" />
- <ctl name="IIR0 INP1 MUX" value="ZERO" />
- <ctl name="IIR0 INP2 MUX" value="ZERO" />
- <ctl name="IIR1 INP0 MUX" value="ZERO" />
- <ctl name="IIR1 INP1 MUX" value="ZERO" />
- <ctl name="IIR1 INP2 MUX" value="ZERO" />
-
- <!-- anc related -->
- <ctl name="ANC Slot" value="0" />
- <ctl name="ANC Function" value="OFF" />
- <ctl name="ANC0 FB MUX" value="ZERO" />
- <ctl name="ANC1 FB MUX" value="ZERO" />
- <ctl name="ANC OUT EAR Enable Switch" value="0" />
- <ctl name="ANC OUT EAR SPKR Enable Switch" value="0" />
- <ctl name="ANC SPKR PA Enable Switch" value="0" />
- <ctl name="ANC OUT HPHL Enable Switch" value="0" />
- <ctl name="ANC OUT HPHR Enable Switch" value="0" />
-
- <!-- Codec controls end -->
-
- <!-- mixer control to disable lowlatency qos voting -->
- <ctl name="MultiMedia5_RX QOS Vote" value="Disable" />
- <!-- mixer control to disable lowlatency qos voting end -->
-
<!-- These are audio route (FE to BE) specific mixer settings -->
- <path name="gsm-mode">
- <ctl name="GSM mode Enable" value="ON" />
- </path>
<!-- EC Reference -->
<ctl name="EC Reference Channels" value="Zero" />
@@ -565,7 +312,7 @@
</path>
<path name="multi-mic-echo-reference">
- <ctl name="TDM SampleRate" value="16000" />
+ <ctl name="SEC_TDM_TX_0 SampleRate" value="KHZ_16" />
<ctl name="SEC_TDM_TX_0 Channels" value="Six" />
<ctl name="MultiMedia2 Mixer SEC_TDM_TX_0" value="1" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SEC_TDM_TX_0" />
@@ -1596,7 +1343,7 @@
</path>
<path name="icc-call">
- <ctl name="TDM SampleRate" value="16000" />
+ <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_TX_0 Channels" value="Four" />
@@ -1820,121 +1567,38 @@
<!-- These are actual sound device specific mixer settings -->
<path name="amic1">
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="AMIC" />
- <ctl name="AMIC MUX6" value="ADC1" />
- <ctl name="IIR0 INP0 MUX" value="DEC6" />
</path>
<path name="amic2">
- <ctl name="AIF1_CAP Mixer SLIM TX0" value="1"/>
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="CDC_IF TX0 MUX" value="DEC0" />
- <ctl name="ADC MUX0" value="AMIC" />
- <ctl name="AMIC MUX0" value="ADC2" />
- <ctl name="IIR0 INP0 MUX" value="DEC0" />
</path>
<!-- For Tavil, DMIC numbered from 0 to 5 -->
<path name="dmic1">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC0" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic2">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1"/>
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic3">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC2" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic4">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC3" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic5">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC4" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic6">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="SLIM_0_TX Channels" value="One" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC5" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="speaker">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="SLIM_0_RX Channels" value="Two" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
- <ctl name="COMP7 Switch" value="1" />
- <ctl name="COMP8 Switch" value="1" />
- <ctl name="SpkrLeft COMP Switch" value="1" />
- <ctl name="SpkrLeft BOOST Switch" value="1" />
- <ctl name="SpkrLeft VISENSE Switch" value="1" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="SpkrRight COMP Switch" value="1" />
- <ctl name="SpkrRight BOOST Switch" value="1" />
- <ctl name="SpkrRight VISENSE Switch" value="1" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
</path>
<path name="speaker-mono">
- <!-- ctl name="SLIM RX0 MUX" value="AIF1_PB" / -->
- <!-- ctl name="CDC_IF RX0 MUX" value="SLIM RX0" / -->
- <!-- ctl name="SLIM_0_RX Channels" value="One" / -->
- <!-- ctl name="RX INT7_1 MIX1 INP0" value="RX0" / -->
- <!-- ctl name="COMP7 Switch" value="1" / -->
- <!-- ctl name="SpkrLeft COMP Switch" value="1" / -->
- <!-- ctl name="SpkrLeft BOOST Switch" value="1" / -->
- <!-- ctl name="SpkrLeft VISENSE Switch" value="1" / -->
- <!-- ctl name="SpkrLeft SWR DAC_Port Switch" value="1" / -->
<ctl name="TERT_TDM_RX_0 Channels" value="One" />
</path>
<path name="speaker-mono-2">
- <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX1 MUX" value="SLIM RX1" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
- <ctl name="COMP8 Switch" value="1" />
- <ctl name="SpkrRight COMP Switch" value="1" />
- <ctl name="SpkrRight BOOST Switch" value="1" />
- <ctl name="SpkrRight VISENSE Switch" value="1" />
- <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
</path>
<path name="speaker-qrd">
@@ -1960,24 +1624,14 @@
</path>
<path name="sidetone-iir">
- <ctl name="IIR0 Enable Band1" value="1" />
- <ctl name="IIR0 Enable Band2" value="1" />
- <ctl name="IIR0 Enable Band3" value="1" />
- <ctl name="IIR0 Enable Band4" value="1" />
- <ctl name="IIR0 Enable Band5" value="1" />
</path>
<path name="sidetone-headphones">
<path name="sidetone-iir" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="RX INT1 MIX2 INP" value="SRC0" />
- <ctl name="RX INT2 MIX2 INP" value="SRC0" />
</path>
<path name="sidetone-handset">
<path name="sidetone-iir" />
- <ctl name="IIR0 INP0 Volume" value="54" />
- <ctl name="RX INT7 MIX2 INP" value="SRC0" />
</path>
<path name="afe-sidetone">
@@ -1996,29 +1650,15 @@
</path>
<path name="speaker-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="1" />
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker" />
- <ctl name="VI_FEED_TX Channels" value="Two" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
- <ctl name="SLIM0_RX_VI_FB_RCH_MUX" value="SLIM4_TX" />
</path>
<path name="voice-speaker-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_1" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker-mono" />
- <ctl name="VI_FEED_TX Channels" value="One" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
</path>
<path name="voice-speaker-2-protected">
- <ctl name="AIF4_VI Mixer SPKR_VI_2" value="1" />
- <ctl name="SLIM_4_TX Format" value="PACKED_16B" />
<path name="speaker-mono-2" />
- <ctl name="VI_FEED_TX Channels" value="One" />
- <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
</path>
<path name="vi-feedback">
@@ -2031,23 +1671,9 @@
</path>
<path name="handset">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="COMP7 Switch" value="1" />
- <ctl name="SpkrLeft COMP Switch" value="1" />
- <ctl name="SpkrLeft BOOST Switch" value="1" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="EAR SPKR PA Gain" value="G_6_DB" />
</path>
<path name="handset-qrd">
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
- <ctl name="EAR PA Gain" value="G_6_DB" />
</path>
<path name="handset-mic">
@@ -2071,81 +1697,27 @@
</path>
<path name="three-mic">
- <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Three" />
- <ctl name="CDC_IF TX5 MUX" value="DEC5" />
- <ctl name="ADC MUX5" value="DMIC" />
- <ctl name="DMIC MUX5" value="DMIC0" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="DMIC" />
- <ctl name="DMIC MUX6" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC5" />
</path>
<path name="anc-handset">
- <ctl name="ANC Function" value="ON" />
- <ctl name="ANC Slot" value="6" />
- <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
- <ctl name="CDC_IF RX0 MUX" value="SLIM RX0" />
- <ctl name="SLIM_0_RX Channels" value="One" />
- <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
- <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
- <ctl name="ANC OUT EAR SPKR Enable Switch" value="1" />
- <ctl name="ANC SPKR PA Enable Switch" value="1" />
- <ctl name="SpkrLeft WSA PA Gain" value="G_6_DB" />
</path>
<path name="headphones">
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM RX3 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="Two" />
- <ctl name="RX INT1_2 MUX" value="RX2" />
- <ctl name="RX INT2_2 MUX" value="RX3" />
</path>
<path name="headphones-44.1">
- <ctl name="SLIM RX4 MUX" value="AIF3_PB" />
- <ctl name="SLIM RX5 MUX" value="AIF3_PB" />
- <ctl name="SLIM_5_RX Channels" value="Two" />
- <ctl name="RX INT1_1 MIX1 INP0" value="RX4" />
- <ctl name="RX INT2_1 MIX1 INP0" value="RX5" />
- <ctl name="RX INT1_1 NATIVE MUX" value="ON" />
- <ctl name="RX INT2_1 NATIVE MUX" value="ON" />
</path>
<path name="asrc-mode">
- <ctl name="ASRC0 Output Mode" value="FRAC" />
- <ctl name="ASRC1 Output Mode" value="FRAC" />
- <ctl name="RX INT1_2 NATIVE MUX" value="ON" />
- <ctl name="RX INT2_2 NATIVE MUX" value="ON" />
- <ctl name="ASRC0 MUX" value="ASRC_IN_HPHL" />
- <ctl name="RX INT1 SEC MIX HPHL Switch" value="1" />
- <ctl name="ASRC1 MUX" value="ASRC_IN_HPHR" />
- <ctl name="RX INT2 SEC MIX HPHR Switch" value="1" />
</path>
<path name="headphones-dsd">
- <ctl name="SLIM RX6 MUX" value="AIF2_PB" />
- <ctl name="SLIM RX7 MUX" value="AIF2_PB" />
- <ctl name="SLIM_2_RX Channels" value="Two" />
- <ctl name="DSD_L IF MUX" value="RX6" />
- <ctl name="DSD_R IF MUX" value="RX7" />
- <ctl name="RX INT1 MIX3 DSD HPHL Switch" value="1" />
- <ctl name="RX INT2 MIX3 DSD HPHR Switch" value="1" />
- <ctl name="SLIM_2_RX Format" value="DSD_DOP" />
- <ctl name="RX HPH Mode" value="CLS_H_HIFI" />
</path>
<path name="hph-highquality-mode">
- <ctl name="RX HPH Mode" value="CLS_H_LOHIFI" />
</path>
<path name="hph-lowpower-mode">
- <ctl name="RX HPH Mode" value="CLS_H_ULP" />
</path>
<path name="true-native-mode">
@@ -2251,27 +1823,6 @@
</path>
<path name="anc-headphones">
- <ctl name="COMP1 Switch" value="0" />
- <ctl name="COMP2 Switch" value="0" />
- <ctl name="ANC Function" value="ON" />
- <ctl name="ANC Slot" value="0" />
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM RX3 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="Two" />
- <ctl name="ADC MUX10" value="AMIC" />
- <ctl name="AMIC MUX10" value="ADC3" />
- <ctl name="ADC MUX12" value="AMIC" />
- <ctl name="AMIC MUX12" value="ADC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_HPHL" />
- <ctl name="ANC1 FB MUX" value="ANC_IN_HPHR" />
- <ctl name="ADC3 Volume" value="8" />
- <ctl name="ADC4 Volume" value="8" />
- <ctl name="RX INT1_1 MIX1 INP0" value="RX2" />
- <ctl name="RX INT2_1 MIX1 INP0" value="RX3" />
- <ctl name="RX1 Digital Volume" value="81" />
- <ctl name="RX2 Digital Volume" value="81" />
- <ctl name="ANC OUT HPHL Enable Switch" value="1" />
- <ctl name="ANC OUT HPHR Enable Switch" value="1" />
</path>
<path name="speaker-and-anc-headphones">
@@ -2281,7 +1832,6 @@
<path name="anc-fb-headphones">
<path name="anc-headphones" />
- <ctl name="ANC Slot" value="1" />
</path>
<path name="speaker-and-anc-fb-headphones">
@@ -2341,62 +1891,24 @@
</path>
<path name="aanc-path">
- <ctl name="ADC MUX10" value="DMIC" />
- <ctl name="DMIC MUX10" value="DMIC4" />
- <ctl name="ANC0 FB MUX" value="ANC_IN_EAR_SPKR" />
</path>
<path name="aanc-handset-mic">
- <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX9" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Three" />
- <ctl name="AANC_SLIM_0_RX MUX" value="SLIMBUS_0_TX" />
- <ctl name="CDC_IF TX6 MUX" value="DEC6" />
- <ctl name="ADC MUX6" value="DMIC" />
- <ctl name="DMIC MUX6" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC4" />
- <ctl name="CDC_IF TX9 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC0" />
- <ctl name="IIR0 INP0 MUX" value="DEC6" />
</path>
<!-- Dual MIC devices -->
<path name="handset-dmic-endfire">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC2" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC4" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
</path>
<path name="speaker-dmic-endfire">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC5" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
</path>
<path name="dmic-endfire">
<path name="handset-dmic-endfire" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="dmic-endfire-liquid">
<path name="handset-dmic-endfire" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="handset-stereo-dmic-ef">
@@ -2452,20 +1964,10 @@
</path>
<path name="speaker-dmic-broadside">
- <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
- <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
- <ctl name="SLIM_0_TX Channels" value="Two" />
- <ctl name="CDC_IF TX7 MUX" value="DEC7" />
- <ctl name="ADC MUX7" value="DMIC" />
- <ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="CDC_IF TX8 MUX" value="DEC8" />
- <ctl name="ADC MUX8" value="DMIC" />
- <ctl name="DMIC MUX8" value="DMIC2" />
</path>
<path name="dmic-broadside">
<path name="speaker-dmic-broadside" />
- <ctl name="IIR0 INP0 MUX" value="DEC7" />
</path>
<path name="voice-speaker-dmic-broadside">
@@ -2474,23 +1976,6 @@
<!-- Quad MIC devices -->
<path name="speaker-qmic">
- <!-- ctl name="AIF1_CAP Mixer SLIM TX5" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX6" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX7" value="1" / -->
- <!-- ctl name="AIF1_CAP Mixer SLIM TX8" value="1" / -->
- <!-- ctl name="SLIM_0_TX Channels" value="Four" / -->
- <!-- ctl name="CDC_IF TX5 MUX" value="DEC5" / -->
- <!-- ctl name="ADC MUX5" value="DMIC" / -->
- <!-- ctl name="DMIC MUX5" value="DMIC1" / -->
- <!-- ctl name="CDC_IF TX6 MUX" value="DEC6" / -->
- <!-- ctl name="ADC MUX6" value="DMIC" / -->
- <!-- ctl name="DMIC MUX6" value="DMIC0" / -->
- <!-- ctl name="CDC_IF TX7 MUX" value="DEC7" / -->
- <!-- ctl name="ADC MUX7" value="DMIC" / -->
- <!-- ctl name="DMIC MUX7" value="DMIC2" / -->
- <!-- ctl name="CDC_IF TX8 MUX" value="DEC8" / -->
- <!-- ctl name="ADC MUX8" value="DMIC" / -->
- <!-- ctl name="DMIC MUX8" value="DMIC5" / -->
<ctl name="TERT_TDM_TX_0 Channels" value="Four" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
</path>
@@ -2517,9 +2002,6 @@
<!-- TTY devices -->
<path name="tty-headphones">
- <ctl name="SLIM RX2 MUX" value="AIF4_PB" />
- <ctl name="SLIM_6_RX Channels" value="One" />
- <ctl name="RX INT1_2 MUX" value="RX2" />
</path>
<path name="voice-tty-full-headphones">
@@ -2549,7 +2031,6 @@
<path name="voice-tty-full-headset-mic">
<path name="amic2" />
- <ctl name="ADC2 Volume" value="0" />
</path>
<path name="voice-tty-hco-headset-mic">
diff --git a/configs/msmsteppe_au/msmsteppe_au.mk b/configs/msmsteppe_au/msmsteppe_au.mk
index 6edc7e0..858077c 100644
--- a/configs/msmsteppe_au/msmsteppe_au.mk
+++ b/configs/msmsteppe_au/msmsteppe_au.mk
@@ -2,7 +2,6 @@
#
#AUDIO_FEATURE_FLAGS
BOARD_USES_ALSA_AUDIO := true
-TARGET_USES_AOSP_FOR_AUDIO := false
ifneq ($(TARGET_USES_AOSP_FOR_AUDIO), true)
USE_CUSTOM_AUDIO_POLICY := 1
@@ -72,39 +71,43 @@
ifneq ($(strip $(TARGET_USES_RRO)), true)
#Audio Specific device overlays
-DEVICE_PACKAGE_OVERLAYS += hardware/qcom/audio/configs/common/overlay
+DEVICE_PACKAGE_OVERLAYS += vendor/qcom/opensource/audio-hal/primary-hal/configs/common/overlay
endif
+#Automotive audio specific device overlays
+DEVICE_PACKAGE_OVERLAYS += hardware/qcom/audio/configs/msmsteppe_au/overlay
+
PRODUCT_COPY_FILES += \
- hardware/qcom/audio/configs/msmsteppe_au/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf \
- hardware/qcom/audio/configs/msmsteppe_au/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
- hardware/qcom/audio/configs/msmsteppe_au/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
- hardware/qcom/audio/configs/msmsteppe_au/mixer_paths_adp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_adp.xml \
- hardware/qcom/audio/configs/msmsteppe_au/audio_tuning_mixer_tavil.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer_tavil.txt \
- hardware/qcom/audio/configs/msmsteppe_au/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
- hardware/qcom/audio/configs/msmsteppe_au/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
- hardware/qcom/audio/configs/msmsteppe_au/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
- hardware/qcom/audio/configs/msmsteppe_au/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
- hardware/qcom/audio/configs/msmsteppe_au/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
- hardware/qcom/audio/configs/msmsteppe_au/mixer_paths_custom.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_custom.xml \
- hardware/qcom/audio/configs/msmsteppe_au/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/mixer_paths_adp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_adp.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/audio_tuning_mixer_tavil.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer_tavil.txt \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/mixer_paths_custom.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_custom.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml
#XML Audio configuration files
ifneq ($(TARGET_USES_AOSP_FOR_AUDIO), true)
PRODUCT_COPY_FILES += \
- $(TOPDIR)hardware/qcom/audio/configs/msmsteppe_au/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml
endif
PRODUCT_COPY_FILES += \
- $(TOPDIR)hardware/qcom/audio/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
# Listen configuration file
PRODUCT_COPY_FILES += \
- hardware/qcom/audio/configs/msmsteppe_au/listen_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/listen_platform_info.xml
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/msmsteppe_au/listen_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/listen_platform_info.xml
# Reduce client buffer size for fast audio output tracks
PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/configs/msmsteppe_au/overlay/frameworks/base/core/res/res/values/config.xml b/configs/msmsteppe_au/overlay/frameworks/base/core/res/res/values/config.xml
new file mode 100644
index 0000000..01e279d
--- /dev/null
+++ b/configs/msmsteppe_au/overlay/frameworks/base/core/res/res/values/config.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
+** Not a Contribution.
+*/
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+ <!-- Car uses hardware amplifier for volume. -->
+ <bool name="config_useFixedVolume">true</bool>
+ <!--
+ Handle volume keys directly in CarAudioService without passing them to the foreground app
+ -->
+ <bool name="config_handleVolumeKeysInWindowManager">true</bool>
+</resources>
diff --git a/configs/msmsteppe_au/overlay/packages/services/Car/service/res/values/config.xml b/configs/msmsteppe_au/overlay/packages/services/Car/service/res/values/config.xml
new file mode 100644
index 0000000..ac5f818
--- /dev/null
+++ b/configs/msmsteppe_au/overlay/packages/services/Car/service/res/values/config.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
+** Not a Contribution.
+*/
+/*
+** Copyright 2015, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!--
+ Overlay resources to configure car service based on each OEM's preference.
+ See also packages/services/Car/service/res/values/config.xml
+-->
+<resources>
+ <!-- Configuration to enable usage of dynamic audio routing. If this is set to false,
+ dynamic audio routing is disabled and audio works in legacy mode. It may be useful
+ during initial development where audio hal does not support bus based addressing yet. -->
+ <bool name="audioUseDynamicRouting">true</bool>
+</resources>
diff --git a/configs/msmsteppe_au/overlay/packages/services/Car/service/res/xml/car_volume_groups.xml b/configs/msmsteppe_au/overlay/packages/services/Car/service/res/xml/car_volume_groups.xml
new file mode 100644
index 0000000..850d4d4
--- /dev/null
+++ b/configs/msmsteppe_au/overlay/packages/services/Car/service/res/xml/car_volume_groups.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
+ Not a Contribution.
+
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!--
+ Defines the all available volume groups for volume control in a car.
+ One can overlay this configuration to customize the groups.
+
+ This configuration will be populated by CarAudioService and
+ surfaced to Car Settings App and/or other volume control interfaces.
+
+ Certain constraints applied to this configuration
+ - One context should not appear in two groups
+ - All contexts are assigned
+ - One bus should not appear in two groups
+ - All gain controllers (set on each bus) in one group have same step value
+
+ It is fine that there are buses that do not appear in any group, those buses
+ may be reserved for other usages.
+
+ Important note: when overlaying this configuration,
+ make sure the resources are in the same package as CarAudioService.
+-->
+<volumeGroups xmlns:car="http://schemas.android.com/apk/res-auto">
+ <group>
+ <context car:context="music"/>
+ </group>
+ <group>
+ <context car:context="call"/>
+ <context car:context="call_ring"/>
+ </group>
+ <group>
+ <context car:context="alarm"/>
+ <context car:context="notification"/>
+ <context car:context="system_sound"/>
+ </group>
+ <group>
+ <context car:context="navigation"/>
+ <context car:context="voice_command"/>
+ </group>
+</volumeGroups>
diff --git a/configs/qssi/qssi.mk b/configs/qssi/qssi.mk
index 3a644e2..39569fb 100644
--- a/configs/qssi/qssi.mk
+++ b/configs/qssi/qssi.mk
@@ -103,11 +103,11 @@
vendor.audio.hw.aac.encoder=true
#audio becoming noisy intent broadcast delay
-PRODUCT_PROPERTY_OVERRIDES += \
+PRODUCT_PRODUCT_PROPERTIES += \
audio.sys.noisy.broadcast.delay=600
#offload pausetime out duration to 3 secs to inline with other outputs
-PRODUCT_PROPERTY_OVERRIDES += \
+PRODUCT_PRODUCT_PROPERTIES += \
audio.sys.offload.pstimeout.secs=3
#Set AudioFlinger client heap size
@@ -129,3 +129,19 @@
PRODUCT_PROPERTY_OVERRIDES += \
media.stagefright.audio.deep=false
+# for HIDL related packages
+PRODUCT_PACKAGES += \
+ android.hardware.audio@4.0 \
+ android.hardware.audio.common@4.0 \
+ android.hardware.audio.common@4.0-util \
+ android.hardware.audio.effect@4.0 \
+ vendor.qti.hardware.audiohalext@1.0 \
+ vendor.qti.hardware.audiohalext-utils
+
+PRODUCT_PACKAGES_ENG += \
+ VoicePrintTest \
+ VoicePrintDemo
+
+PRODUCT_PACKAGES_DEBUG += \
+ AudioSettings
+
diff --git a/configs/sdm660/sdm660.mk b/configs/sdm660/sdm660.mk
index 1b60af4..84f0f1e 100644
--- a/configs/sdm660/sdm660.mk
+++ b/configs/sdm660/sdm660.mk
@@ -120,7 +120,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
endif
# Listen configuration file
diff --git a/configs/sdm710/sdm710.mk b/configs/sdm710/sdm710.mk
index 4d487b4..c47a146 100644
--- a/configs/sdm710/sdm710.mk
+++ b/configs/sdm710/sdm710.mk
@@ -184,7 +184,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
endif
# Listen configuration file
diff --git a/configs/sdm710/sound_trigger_platform_info.xml b/configs/sdm710/sound_trigger_platform_info.xml
index 08dbebd..cd55149 100644
--- a/configs/sdm710/sound_trigger_platform_info.xml
+++ b/configs/sdm710/sound_trigger_platform_info.xml
@@ -28,6 +28,7 @@
<sound_trigger_platform_info>
<param version="0x0101" /> <!-- this must be the first param -->
<common_config>
+ <param implementer_version="0x0100" />
<param max_cpe_sessions="1" />
<param max_wdsp_sessions="2" />
<param max_ape_sessions="8" />
diff --git a/configs/sdm845/sdm845.mk b/configs/sdm845/sdm845.mk
index c4d5b54..4fb1485 100644
--- a/configs/sdm845/sdm845.mk
+++ b/configs/sdm845/sdm845.mk
@@ -138,7 +138,8 @@
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
endif
# Listen configuration file
diff --git a/configs/sdm845/sound_trigger_platform_info.xml b/configs/sdm845/sound_trigger_platform_info.xml
index 0942fab..a80765b 100644
--- a/configs/sdm845/sound_trigger_platform_info.xml
+++ b/configs/sdm845/sound_trigger_platform_info.xml
@@ -32,6 +32,7 @@
<!--- 0x0102: Includes acdb_ids param with the gcs_usecase tag. This matches -->
<!--- the gcs_usecase with the acdb device that uses it. -->
<common_config>
+ <param implementer_version="0x0100" />
<param max_cpe_sessions="1" />
<param max_wdsp_sessions="2" />
<param max_ape_sessions="8" />
diff --git a/configs/trinket/trinket.mk b/configs/trinket/trinket.mk
index 919c8c2..44babfa 100644
--- a/configs/trinket/trinket.mk
+++ b/configs/trinket/trinket.mk
@@ -74,41 +74,42 @@
DEVICE_PACKAGE_OVERLAYS += hardware/qcom/audio/configs/common/overlay
PRODUCT_COPY_FILES += \
- hardware/qcom/audio/configs/trinket/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \
- hardware/qcom/audio/configs/trinket/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
- hardware/qcom/audio/configs/trinket/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
- hardware/qcom/audio/configs/trinket/audio_tuning_mixer_tavil.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer_tavil.txt \
- hardware/qcom/audio/configs/trinket/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
- hardware/qcom/audio/configs/trinket/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
- hardware/qcom/audio/configs/trinket/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
- hardware/qcom/audio/configs/trinket/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
- hardware/qcom/audio/configs/trinket/audio_platform_info_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_qrd.xml \
- hardware/qcom/audio/configs/trinket/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \
- hardware/qcom/audio/configs/trinket/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
- hardware/qcom/audio/configs/trinket/sound_trigger_mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_qrd.xml \
- hardware/qcom/audio/configs/trinket/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
- hardware/qcom/audio/configs/trinket/mixer_paths_idp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_idp.xml \
- hardware/qcom/audio/configs/trinket/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
- hardware/qcom/audio/configs/trinket/mixer_paths_tavil.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil.xml \
- hardware/qcom/audio/configs/trinket/mixer_paths_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha.xml \
- hardware/qcom/audio/configs/trinket/mixer_paths_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tashalite.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/audio_tuning_mixer_tavil.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer_tavil.txt \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/audio_platform_info_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_qrd.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/sound_trigger_mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_qrd.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/mixer_paths_idp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_idp.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/mixer_paths_tavil.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/mixer_paths_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/mixer_paths_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tashalite.xml \
#XML Audio configuration files
ifneq ($(TARGET_USES_AOSP_FOR_AUDIO), true)
PRODUCT_COPY_FILES += \
- $(TOPDIR)hardware/qcom/audio/configs/trinket/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml
endif
PRODUCT_COPY_FILES += \
- $(TOPDIR)hardware/qcom/audio/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
$(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
- $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
+ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
+ $(TOPDIR)vendor/qcom/opensource/audio-hal/primary-hal/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_qti_audio_policy_configuration.xml
# Listen configuration file
PRODUCT_COPY_FILES += \
- hardware/qcom/audio/configs/trinket/listen_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/listen_platform_info.xml
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/trinket/listen_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/listen_platform_info.xml
# Reduce client buffer size for fast audio output tracks
PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/hal/audio_extn/Android.mk b/hal/audio_extn/Android.mk
index 255bc4e..e944260 100644
--- a/hal/audio_extn/Android.mk
+++ b/hal/audio_extn/Android.mk
@@ -63,7 +63,7 @@
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 qcs605 msmnile kona lito atoll sdm660 msm8937 msm8998 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 qcs605 msmnile kona lito atoll sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -121,7 +121,7 @@
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona lito atoll sdm660 msm8937 msm8998 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito atoll sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -350,7 +350,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona lito atoll sdm660 msm8937 msm8998 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito atoll sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -410,7 +410,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -469,7 +469,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -528,7 +528,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -590,7 +590,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -660,7 +660,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona lito sdm660 msm8937 msm8998 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM := msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -719,7 +719,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona sdm660 msm8937 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM = msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
@@ -776,7 +776,7 @@
PRIMARY_HAL_PATH := vendor/qcom/opensource/audio-hal/primary-hal/hal
AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
-ifneq ($(filter sdm845 sdm710 msmnile kona sdm660 msm8937 $(MSMSTEPPE),$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter sdm845 sdm710 msmnile kona sdm660 msm8937 $(MSMSTEPPE) $(TRINKET),$(TARGET_BOARD_PLATFORM)),)
# B-family platform uses msm8974 code base
AUDIO_PLATFORM = msm8974
MULTIPLE_HW_VARIANTS_ENABLED := true
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index 429a2e3..1b197b2 100755
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -1738,7 +1738,7 @@
int ret = 0;
if (aptx_dsp_cfg == NULL || aptx_bt_cfg == NULL) {
- ALOGE("Invalid param, aptx_dsp_cfg %p aptx_bt_cfg %p",
+ ALOGE("Invalid param, aptx_dsp_cfg %pK aptx_bt_cfg %pK",
aptx_dsp_cfg, aptx_bt_cfg);
return -EINVAL;
}
@@ -1921,7 +1921,7 @@
int mixer_size = 0;
bool is_configured = false;
int ret = 0;
- int sample_rate_backup;
+ int sample_rate_backup = SAMPLING_RATE_48K;
if (aptx_bt_cfg == NULL)
return false;
@@ -1939,19 +1939,13 @@
if (a2dp.is_aptx_adaptive) {
aptx_ad_ctl = mixer_get_ctl_by_name(a2dp.adev->mixer,
MIXER_ENC_APTX_AD_CONFIG_BLOCK);
- if (aptx_ad_ctl) {
- mixer_size = sizeof(struct aptx_ad_enc_cfg_r2_t);
+ if (aptx_ad_ctl)
ret = update_aptx_ad_dsp_config_r2(&aptx_ad_dsp_cfg_r2, aptx_bt_cfg);
- } else {
- mixer_size = sizeof(struct aptx_ad_enc_cfg_t);
+ else
ret = update_aptx_ad_dsp_config(&aptx_ad_dsp_cfg, aptx_bt_cfg);
- }
- sample_rate_backup = aptx_ad_dsp_cfg.custom_cfg.sample_rate;
- } else {
- mixer_size = sizeof(struct aptx_enc_cfg_t);
- sample_rate_backup = aptx_bt_cfg->default_cfg->sampling_rate;
+ } else
ret = update_aptx_dsp_config_v2(&aptx_dsp_cfg, aptx_bt_cfg);
- }
+
if (ret) {
is_configured = false;
goto fail;
@@ -1960,13 +1954,13 @@
if (a2dp.is_aptx_adaptive) {
if (aptx_ad_ctl)
ret = mixer_ctl_set_array(aptx_ad_ctl, (void *)&aptx_ad_dsp_cfg_r2,
- mixer_size);
+ sizeof(struct aptx_ad_enc_cfg_r2_t));
else
ret = mixer_ctl_set_array(ctl_enc_data, (void *)&aptx_ad_dsp_cfg,
- mixer_size);
+ sizeof(struct aptx_ad_enc_cfg_t));
} else {
ret = mixer_ctl_set_array(ctl_enc_data, (void *)&aptx_dsp_cfg,
- mixer_size);
+ sizeof(struct aptx_enc_cfg_t));
}
#else
struct custom_enc_cfg_t aptx_dsp_cfg;
diff --git a/hal/audio_extn/audio_extn.c b/hal/audio_extn/audio_extn.c
index f00f74d..b07e901 100644
--- a/hal/audio_extn/audio_extn.c
+++ b/hal/audio_extn/audio_extn.c
@@ -4262,52 +4262,52 @@
int audio_extn_ext_hw_plugin_deinit(void *plugin)
{
return ((ext_hw_plugin_deinit) ?
- ext_hw_plugin_deinit(plugin): -1);
+ ext_hw_plugin_deinit(plugin): 0);
}
int audio_extn_ext_hw_plugin_usecase_start(void *plugin, struct audio_usecase *usecase)
{
return ((ext_hw_plugin_usecase_start) ?
- ext_hw_plugin_usecase_start(plugin, usecase): -1);
+ ext_hw_plugin_usecase_start(plugin, usecase): 0);
}
int audio_extn_ext_hw_plugin_usecase_stop(void *plugin, struct audio_usecase *usecase)
{
return ((ext_hw_plugin_usecase_stop) ?
- ext_hw_plugin_usecase_stop(plugin, usecase): -1);
+ ext_hw_plugin_usecase_stop(plugin, usecase): 0);
}
int audio_extn_ext_hw_plugin_set_parameters(void *plugin,
struct str_parms *parms)
{
return ((ext_hw_plugin_set_parameters) ?
- ext_hw_plugin_set_parameters(plugin, parms): -1);
+ ext_hw_plugin_set_parameters(plugin, parms): 0);
}
int audio_extn_ext_hw_plugin_get_parameters(void *plugin,
struct str_parms *query, struct str_parms *reply)
{
return ((ext_hw_plugin_get_parameters) ?
- ext_hw_plugin_get_parameters(plugin, query, reply): -1);
+ ext_hw_plugin_get_parameters(plugin, query, reply): 0);
}
int audio_extn_ext_hw_plugin_set_mic_mute(void *plugin, bool mute)
{
return ((ext_hw_plugin_set_mic_mute) ?
- ext_hw_plugin_set_mic_mute(plugin, mute): -1);
+ ext_hw_plugin_set_mic_mute(plugin, mute): 0);
}
int audio_extn_ext_hw_plugin_get_mic_mute(void *plugin, bool *mute)
{
return ((ext_hw_plugin_get_mic_mute) ?
- ext_hw_plugin_get_mic_mute(plugin, mute): -1);
+ ext_hw_plugin_get_mic_mute(plugin, mute): 0);
}
int audio_extn_ext_hw_plugin_set_audio_gain(void *plugin,
struct audio_usecase *usecase, uint32_t gain)
{
return ((ext_hw_plugin_set_audio_gain) ?
- ext_hw_plugin_set_audio_gain(plugin, usecase, gain): -1);
+ ext_hw_plugin_set_audio_gain(plugin, usecase, gain): 0);
}
// END: EXT_HW_PLUGIN ===================================================================
@@ -4608,6 +4608,7 @@
audio_extn_utils_is_dolby_format;
passthru_init(init_config);
ALOGD("%s:: ---- Feature HDMI_PASSTHROUGH is Enabled ----", __func__);
+ return;
}
feature_disabled:
@@ -4721,7 +4722,6 @@
void battery_listener_feature_init(bool is_feature_enabled)
{
audio_extn_battery_listener_enabled = is_feature_enabled;
- ALOGD("%s: ---- Feature BATTERY_LISTENER is %s----", __func__, is_feature_enabled? "ENABLED": "NOT ENABLED");
if (is_feature_enabled) {
// dlopen lib
batt_listener_lib_handle = dlopen(BATTERY_LISTENER_LIB_PATH, RTLD_NOW);
@@ -4741,6 +4741,8 @@
ALOGE("%s: dlsym failed", __func__);
goto feature_disabled;
}
+ ALOGD("%s: ---- Feature BATTERY_LISTENER is enabled ----", __func__);
+ return;
}
feature_disabled:
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
index dd75d20..9dcd2be 100644
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -157,7 +157,7 @@
char *device_name);
typedef int (*fp_platform_get_default_app_type_v2_t)(void *, usecase_type_t);
typedef int (*fp_platform_send_audio_calibration_t)(void *, struct audio_usecase *,
- int, int);
+ int);
typedef int (*fp_platform_get_pcm_device_id_t)(audio_usecase_t, int);
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 *);
@@ -801,6 +801,8 @@
int audio_extn_utils_get_channels_from_string(const char *);
void audio_extn_utils_release_snd_device(snd_device_t snd_device);
int audio_extn_utils_is_vendor_enhanced_fwk();
+int audio_extn_utils_get_app_sample_rate_for_device(struct audio_device *adev,
+ struct audio_usecase *usecase, int snd_device);
#ifdef DS2_DOLBY_DAP_ENABLED
#define LIB_DS2_DAP_HAL "vendor/lib/libhwdaphal.so"
diff --git a/hal/audio_extn/hw_loopback.c b/hal/audio_extn/hw_loopback.c
index 76c8873..afc029b 100644
--- a/hal/audio_extn/hw_loopback.c
+++ b/hal/audio_extn/hw_loopback.c
@@ -329,8 +329,6 @@
list_remove(&uc_info_rx->list);
free(uc_info_rx);
- adev->active_input = get_next_active_input(adev);
-
if (inout->ip_hdlr_handle) {
ret = audio_extn_ip_hdlr_intf_close(inout->ip_hdlr_handle, true, inout);
if (ret < 0)
@@ -522,7 +520,6 @@
memcpy(&loopback_source_stream.usecase, uc_info_rx,
sizeof(struct audio_usecase));
- adev->active_input = &loopback_source_stream;
select_devices(adev, uc_info_rx->id);
select_devices(adev, uc_info_tx->id);
diff --git a/hal/audio_extn/spkr_protection.c b/hal/audio_extn/spkr_protection.c
index 8c6ff06..b51a7d5 100644
--- a/hal/audio_extn/spkr_protection.c
+++ b/hal/audio_extn/spkr_protection.c
@@ -1030,7 +1030,7 @@
app_type = fp_platform_get_default_app_type_v2(adev->platform,
PCM_CAPTURE);
fp_platform_send_audio_calibration(adev->platform, uc_info_tx,
- app_type, 8000);
+ app_type);
}
if (!v_validation) {
if (!status.status) {
@@ -2281,6 +2281,8 @@
if (!uc_info_tx) {
return -ENOMEM;
}
+ uc_info_tx->id = USECASE_AUDIO_SPKR_CALIB_TX;
+ uc_info_tx->type = PCM_CAPTURE;
if (fp_platform_get_snd_device_name_extn(adev->platform, snd_device, device_name) < 0) {
ALOGE("%s: Invalid sound device returned", __func__);
@@ -2293,8 +2295,6 @@
pthread_mutex_lock(&handle.mutex_spkr_prot);
if (handle.spkr_processing_state == SPKR_PROCESSING_IN_IDLE) {
- uc_info_tx->id = USECASE_AUDIO_SPKR_CALIB_TX;
- uc_info_tx->type = PCM_CAPTURE;
uc_info_tx->in_snd_device = in_snd_device;
uc_info_tx->out_snd_device = SND_DEVICE_NONE;
handle.pcm_tx = NULL;
@@ -2333,15 +2333,13 @@
app_type = fp_platform_get_default_app_type_v2(adev->platform,
PCM_CAPTURE);
fp_platform_send_audio_calibration(adev->platform, uc_info_tx,
- app_type, 8000);
+ app_type);
}
if (ret) {
if (handle.pcm_tx)
pcm_close(handle.pcm_tx);
handle.pcm_tx = NULL;
list_remove(&uc_info_tx->list);
- uc_info_tx->id = USECASE_AUDIO_SPKR_CALIB_TX;
- uc_info_tx->type = PCM_CAPTURE;
uc_info_tx->in_snd_device = in_snd_device;
uc_info_tx->out_snd_device = SND_DEVICE_NONE;
fp_disable_snd_device(adev, in_snd_device);
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index 9abddb9..d66b368 100644
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -1025,6 +1025,87 @@
return rc;
}
+int audio_extn_utils_get_app_sample_rate_for_device(
+ struct audio_device *adev,
+ struct audio_usecase *usecase, int snd_device)
+{
+ char value[PROPERTY_VALUE_MAX] = {0};
+ int sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+
+ if ((usecase->type == PCM_PLAYBACK) && (usecase->stream.out != NULL)) {
+ property_get("vendor.audio.playback.mch.downsample",value,"");
+ if (!strncmp("true", value, sizeof("true"))) {
+ if ((popcount(usecase->stream.out->channel_mask) > 2) &&
+ (usecase->stream.out->app_type_cfg.sample_rate > CODEC_BACKEND_DEFAULT_SAMPLE_RATE) &&
+ !(usecase->stream.out->flags &
+ (audio_output_flags_t)AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH))
+ sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
+ }
+
+ if (usecase->id == USECASE_AUDIO_PLAYBACK_VOIP) {
+ usecase->stream.out->app_type_cfg.sample_rate = usecase->stream.out->sample_rate;
+ } else if (usecase->stream.out->devices & AUDIO_DEVICE_OUT_SPEAKER) {
+ usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ } else if ((snd_device == SND_DEVICE_OUT_HDMI ||
+ snd_device == SND_DEVICE_OUT_USB_HEADSET ||
+ snd_device == SND_DEVICE_OUT_DISPLAY_PORT) &&
+ (usecase->stream.out->sample_rate >= OUTPUT_SAMPLING_RATE_44100)) {
+ /*
+ * To best utlize DSP, check if the stream sample rate is supported/multiple of
+ * configured device sample rate, if not update the COPP rate to be equal to the
+ * device sample rate, else open COPP at stream sample rate
+ */
+ platform_check_and_update_copp_sample_rate(adev->platform, snd_device,
+ usecase->stream.out->sample_rate,
+ &usecase->stream.out->app_type_cfg.sample_rate);
+ } else if (((snd_device != SND_DEVICE_OUT_HEADPHONES_44_1 &&
+ !audio_is_this_native_usecase(usecase)) &&
+ usecase->stream.out->sample_rate == OUTPUT_SAMPLING_RATE_44100) ||
+ (usecase->stream.out->sample_rate < OUTPUT_SAMPLING_RATE_44100)) {
+ /* Reset to default if no native stream is active*/
+ usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ } else if (usecase->stream.out->devices & AUDIO_DEVICE_OUT_ALL_A2DP) {
+ /*
+ * For a2dp playback get encoder sampling rate and set copp sampling rate,
+ * for bit width use the stream param only.
+ */
+ audio_extn_a2dp_get_enc_sample_rate(&usecase->stream.out->app_type_cfg.sample_rate);
+ ALOGI("%s using %d sample rate rate for A2DP CoPP",
+ __func__, usecase->stream.out->app_type_cfg.sample_rate);
+ }
+ audio_extn_btsco_get_sample_rate(snd_device, &usecase->stream.out->app_type_cfg.sample_rate);
+ sample_rate = usecase->stream.out->app_type_cfg.sample_rate;
+
+ if (((usecase->stream.out->format == AUDIO_FORMAT_E_AC3) ||
+ (usecase->stream.out->format == AUDIO_FORMAT_E_AC3_JOC) ||
+ (usecase->stream.out->format == AUDIO_FORMAT_DOLBY_TRUEHD))
+ && audio_extn_passthru_is_passthrough_stream(usecase->stream.out)
+ && !audio_extn_passthru_is_convert_supported(adev, usecase->stream.out)) {
+ sample_rate = sample_rate * 4;
+ if (sample_rate > HDMI_PASSTHROUGH_MAX_SAMPLE_RATE)
+ sample_rate = HDMI_PASSTHROUGH_MAX_SAMPLE_RATE;
+ }
+ } else if (usecase->type == PCM_CAPTURE) {
+ if (usecase->stream.in != NULL) {
+ if (usecase->id == USECASE_AUDIO_RECORD_VOIP)
+ usecase->stream.in->app_type_cfg.sample_rate = usecase->stream.in->sample_rate;
+ if (voice_is_in_call_rec_stream(usecase->stream.in)) {
+ audio_extn_btsco_get_sample_rate(usecase->in_snd_device,
+ &usecase->stream.in->app_type_cfg.sample_rate);
+ } else {
+ audio_extn_btsco_get_sample_rate(snd_device,
+ &usecase->stream.in->app_type_cfg.sample_rate);
+ }
+ sample_rate = usecase->stream.in->app_type_cfg.sample_rate;
+ } else if (usecase->id == USECASE_AUDIO_SPKR_CALIB_TX) {
+ sample_rate = SAMPLE_RATE_8000;
+ }
+ } else if (usecase->type == TRANSCODE_LOOPBACK_RX) {
+ sample_rate = usecase->stream.inout->out_config.sample_rate;
+ }
+ return sample_rate;
+}
+
static int send_app_type_cfg_for_device(struct audio_device *adev,
struct audio_usecase *usecase,
int split_snd_device)
@@ -1036,7 +1117,6 @@
int pcm_device_id = 0, acdb_dev_id, app_type;
int snd_device = split_snd_device, snd_device_be_idx = -1;
int32_t sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
- char value[PROPERTY_VALUE_MAX] = {0};
struct streams_io_cfg *s_info = NULL;
struct listnode *node = NULL;
int bd_app_type = 0;
@@ -1112,58 +1192,9 @@
snd_device_be_idx);
}
+ sample_rate = audio_extn_utils_get_app_sample_rate_for_device(adev, usecase, snd_device);
+
if ((usecase->type == PCM_PLAYBACK) && (usecase->stream.out != NULL)) {
-
- property_get("vendor.audio.playback.mch.downsample",value,"");
- if (!strncmp("true", value, sizeof("true"))) {
- if ((popcount(usecase->stream.out->channel_mask) > 2) &&
- (usecase->stream.out->app_type_cfg.sample_rate > CODEC_BACKEND_DEFAULT_SAMPLE_RATE) &&
- !(usecase->stream.out->flags &
- (audio_output_flags_t)AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH))
- sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
- }
-
- if (usecase->id == USECASE_AUDIO_PLAYBACK_VOIP) {
- usecase->stream.out->app_type_cfg.sample_rate = usecase->stream.out->sample_rate;
- } else if (usecase->stream.out->devices & AUDIO_DEVICE_OUT_SPEAKER) {
- if (platform_spkr_use_default_sample_rate(adev->platform)) {
- usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
- } else {
- platform_check_and_update_copp_sample_rate(adev->platform, snd_device,
- usecase->stream.out->sample_rate,
- &usecase->stream.out->app_type_cfg.sample_rate);
- }
-
- } else if ((snd_device == SND_DEVICE_OUT_HDMI ||
- snd_device == SND_DEVICE_OUT_USB_HEADSET ||
- snd_device == SND_DEVICE_OUT_DISPLAY_PORT) &&
- (usecase->stream.out->sample_rate >= OUTPUT_SAMPLING_RATE_44100)) {
- /*
- * To best utlize DSP, check if the stream sample rate is supported/multiple of
- * configured device sample rate, if not update the COPP rate to be equal to the
- * device sample rate, else open COPP at stream sample rate
- */
- platform_check_and_update_copp_sample_rate(adev->platform, snd_device,
- usecase->stream.out->sample_rate,
- &usecase->stream.out->app_type_cfg.sample_rate);
- } else if (((snd_device != SND_DEVICE_OUT_HEADPHONES_44_1 &&
- !audio_is_this_native_usecase(usecase)) &&
- usecase->stream.out->sample_rate == OUTPUT_SAMPLING_RATE_44100) ||
- (usecase->stream.out->sample_rate < OUTPUT_SAMPLING_RATE_44100)) {
- /* Reset to default if no native stream is active*/
- usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
- } else if (usecase->stream.out->devices & AUDIO_DEVICE_OUT_ALL_A2DP) {
- /*
- * For a2dp playback get encoder sampling rate and set copp sampling rate,
- * for bit width use the stream param only.
- */
- audio_extn_a2dp_get_enc_sample_rate(&usecase->stream.out->app_type_cfg.sample_rate);
- ALOGI("%s using %d sample rate rate for A2DP CoPP",
- __func__, usecase->stream.out->app_type_cfg.sample_rate);
- }
- audio_extn_btsco_get_sample_rate(snd_device, &usecase->stream.out->app_type_cfg.sample_rate);
- sample_rate = usecase->stream.out->app_type_cfg.sample_rate;
-
/* Interactive streams are supported with only direct app type id.
* Get Direct profile app type and use it for interactive streams
*/
@@ -1180,16 +1211,6 @@
app_type = usecase->stream.out->app_type_cfg.app_type;
app_type_cfg[len++] = app_type;
app_type_cfg[len++] = acdb_dev_id;
- if (((usecase->stream.out->format == AUDIO_FORMAT_E_AC3) ||
- (usecase->stream.out->format == AUDIO_FORMAT_E_AC3_JOC) ||
- (usecase->stream.out->format == AUDIO_FORMAT_DOLBY_TRUEHD))
- && audio_extn_passthru_is_passthrough_stream(usecase->stream.out)
- && !audio_extn_passthru_is_convert_supported(adev, usecase->stream.out)) {
-
- sample_rate = sample_rate * 4;
- if (sample_rate > HDMI_PASSTHROUGH_MAX_SAMPLE_RATE)
- sample_rate = HDMI_PASSTHROUGH_MAX_SAMPLE_RATE;
- }
app_type_cfg[len++] = sample_rate;
if (snd_device_be_idx > 0)
@@ -1202,19 +1223,6 @@
app_type = usecase->stream.in->app_type_cfg.app_type;
app_type_cfg[len++] = app_type;
app_type_cfg[len++] = acdb_dev_id;
- if (usecase->id == USECASE_AUDIO_RECORD_VOIP)
- usecase->stream.in->app_type_cfg.sample_rate = usecase->stream.in->sample_rate;
- if (voice_is_in_call_rec_stream(usecase->stream.in)) {
- audio_extn_btsco_get_sample_rate(usecase->in_snd_device, &usecase->stream.in->app_type_cfg.sample_rate);
- } else {
- audio_extn_btsco_get_sample_rate(snd_device, &usecase->stream.in->app_type_cfg.sample_rate);
- }
- if (usecase->stream.in->device & AUDIO_DEVICE_IN_BLUETOOTH_A2DP & ~AUDIO_DEVICE_BIT_IN) {
- audio_extn_a2dp_get_dec_sample_rate(&usecase->stream.in->app_type_cfg.sample_rate);
- ALOGI("%s using %d sample rate rate for A2DP dec CoPP",
- __func__, usecase->stream.in->app_type_cfg.sample_rate);
- }
- sample_rate = usecase->stream.in->app_type_cfg.sample_rate;
app_type_cfg[len++] = sample_rate;
if (snd_device_be_idx > 0)
app_type_cfg[len++] = snd_device_be_idx;
@@ -1223,7 +1231,6 @@
} else {
app_type = platform_get_default_app_type_v2(adev->platform, usecase->type);
if(usecase->type == TRANSCODE_LOOPBACK_RX) {
- sample_rate = usecase->stream.inout->out_config.sample_rate;
app_type = usecase->stream.inout->out_app_type_cfg.app_type;
}
app_type_cfg[len++] = app_type;
@@ -1583,29 +1590,15 @@
int type = usecase->type;
if (type == PCM_PLAYBACK && usecase->stream.out != NULL) {
- struct stream_out *out = usecase->stream.out;
- int snd_device = usecase->out_snd_device;
- snd_device = (snd_device == SND_DEVICE_OUT_SPEAKER) ?
- platform_get_spkr_prot_snd_device(snd_device) : snd_device;
platform_send_audio_calibration(adev->platform, usecase,
- out->app_type_cfg.app_type,
- usecase->stream.out->app_type_cfg.sample_rate);
+ usecase->stream.out->app_type_cfg.app_type);
} else if (type == PCM_CAPTURE && usecase->stream.in != NULL) {
platform_send_audio_calibration(adev->platform, usecase,
- usecase->stream.in->app_type_cfg.app_type,
- usecase->stream.in->app_type_cfg.sample_rate);
- } else if (type == PCM_HFP_CALL || type == PCM_CAPTURE) {
- /* when app type is default. the sample rate is not used to send cal */
+ 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)) {
platform_send_audio_calibration(adev->platform, usecase,
- platform_get_default_app_type_v2(adev->platform, usecase->type),
- 48000);
- } else if (type == TRANSCODE_LOOPBACK_RX && usecase->stream.inout != NULL) {
- int snd_device = usecase->out_snd_device;
- snd_device = (snd_device == SND_DEVICE_OUT_SPEAKER) ?
- platform_get_spkr_prot_snd_device(snd_device) : snd_device;
- platform_send_audio_calibration(adev->platform, usecase,
- platform_get_default_app_type_v2(adev->platform, usecase->type),
- usecase->stream.inout->out_config.sample_rate);
+ platform_get_default_app_type_v2(adev->platform, usecase->type));
} else {
/* No need to send audio calibration for voice and voip call usecases */
if ((type != VOICE_CALL) && (type != VOIP_CALL))
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index b2c23fe..3390527 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -93,6 +93,7 @@
#define MMAP_PLAYBACK_VOLUME_MAX 0x2000
#define PCM_PLAYBACK_VOLUME_MAX 0x2000
#define DSD_VOLUME_MIN_DB (-110)
+#define INVALID_OUT_VOLUME -1
#define RECORD_GAIN_MIN 0.0f
#define RECORD_GAIN_MAX 1.0f
@@ -784,6 +785,11 @@
(uc_id == USECASE_AUDIO_PLAYBACK_AFE_PROXY);
}
+static inline bool is_valid_volume(float left, float right)
+{
+ return ((left >= 0.0f && right >= 0.0f) ? true : false);
+}
+
static int enable_audio_route_for_voice_usecases(struct audio_device *adev,
struct audio_usecase *uc_info)
{
@@ -922,7 +928,12 @@
char mixer_ctl_name[] = "Audio Effect";
struct mixer_ctl *ctl;
long set_values[6];
- struct stream_in *in = adev->active_input;
+ struct stream_in *in = adev_get_active_input(adev);
+
+ if (in == NULL) {
+ ALOGE("%s: active input stream is NULL", __func__);
+ return -EINVAL;
+ }
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
if (!ctl) {
@@ -950,7 +961,12 @@
int ret = 0;
struct audio_effect_config other_effect_config;
struct audio_usecase *usecase = NULL;
- struct stream_in *in = adev->active_input;
+ struct stream_in *in = adev_get_active_input(adev);
+
+ if (in == NULL) {
+ ALOGE("%s: active input stream is NULL", __func__);
+ return -EINVAL;
+ }
usecase = get_usecase_from_list(adev, in->usecase);
if (!usecase)
@@ -980,7 +996,7 @@
struct audio_usecase *usecase = NULL;
int ret = 0;
unsigned int param_value = 0;
- struct stream_in *in = adev->active_input;
+ struct stream_in *in = adev_get_active_input(adev);
if(!voice_extn_is_dynamic_ecns_enabled())
return ENOSYS;
@@ -1029,13 +1045,16 @@
if(!voice_extn_is_dynamic_ecns_enabled())
return;
- if (adev->active_input->enable_aec) {
- enable_disable_effect(adev, EFFECT_AEC, true);
- }
+ struct stream_in *in = adev_get_active_input(adev);
- if (adev->active_input->enable_ns &&
- adev->active_input->source == AUDIO_SOURCE_VOICE_COMMUNICATION) {
- enable_disable_effect(adev, EFFECT_NS, true);
+ if (in != NULL && !in->standby) {
+ if (in->enable_aec)
+ enable_disable_effect(adev, EFFECT_AEC, true);
+
+ if (in->enable_ns &&
+ in->source == AUDIO_SOURCE_VOICE_COMMUNICATION) {
+ enable_disable_effect(adev, EFFECT_NS, true);
+ }
}
}
@@ -1242,7 +1261,7 @@
}
if (((snd_device == SND_DEVICE_IN_HANDSET_6MIC) ||
(snd_device == SND_DEVICE_IN_HANDSET_QMIC)) &&
- (audio_extn_ffv_get_stream() == adev->active_input)) {
+ (audio_extn_ffv_get_stream() == adev_get_active_input(adev))) {
ALOGD("%s: init ec ref loopback", __func__);
audio_extn_ffv_init_ec_ref_loopback(adev, snd_device);
}
@@ -1324,7 +1343,7 @@
audio_route_apply_and_update_path(adev->audio_route, "hph-lowpower-mode");
} else if (((snd_device == SND_DEVICE_IN_HANDSET_6MIC) ||
(snd_device == SND_DEVICE_IN_HANDSET_QMIC)) &&
- (audio_extn_ffv_get_stream() == adev->active_input)) {
+ (audio_extn_ffv_get_stream() == adev_get_active_input(adev))) {
ALOGD("%s: deinit ec ref loopback", __func__);
audio_extn_ffv_deinit_ec_ref_loopback(adev, snd_device);
}
@@ -1617,8 +1636,10 @@
/* Update voc calibration before enabling VoIP route */
if (usecase->type == VOIP_CALL)
status = platform_switch_voice_call_device_post(adev->platform,
- usecase->out_snd_device,
- platform_get_input_snd_device(adev->platform, uc_info->devices));
+ usecase->out_snd_device,
+ platform_get_input_snd_device(
+ adev->platform, NULL,
+ uc_info->devices));
enable_audio_route(adev, usecase);
if (usecase->stream.out && usecase->id == USECASE_AUDIO_PLAYBACK_VOIP) {
out_set_voip_volume(&usecase->stream.out->stream,
@@ -1973,19 +1994,6 @@
return NULL;
}
-struct stream_in *get_next_active_input(const struct audio_device *adev)
-{
- struct audio_usecase *usecase;
- struct listnode *node;
-
- list_for_each_reverse(node, &adev->usecase_list) {
- usecase = node_to_item(node, struct audio_usecase, list);
- if (usecase->type == PCM_CAPTURE)
- return usecase->stream.in;
- }
- return NULL;
-}
-
/*
* is a true native playback active
*/
@@ -2219,6 +2227,42 @@
int out_standby_l(struct audio_stream *stream);
+struct stream_in *adev_get_active_input(const struct audio_device *adev)
+{
+ struct listnode *node;
+ struct stream_in *last_active_in = NULL;
+
+ /* Get last added active input.
+ * TODO: We may use a priority mechanism to pick highest priority active source */
+ list_for_each(node, &adev->usecase_list)
+ {
+ struct audio_usecase *usecase = node_to_item(node, struct audio_usecase, list);
+ if (usecase->type == PCM_CAPTURE && usecase->stream.in != NULL)
+ last_active_in = usecase->stream.in;
+ }
+
+ return last_active_in;
+}
+
+struct stream_in *get_voice_communication_input(const struct audio_device *adev)
+{
+ struct listnode *node;
+
+ /* First check active inputs with voice communication source and then
+ * any input if audio mode is in communication */
+ list_for_each(node, &adev->usecase_list)
+ {
+ struct audio_usecase *usecase = node_to_item(node, struct audio_usecase, list);
+ if (usecase->type == PCM_CAPTURE && usecase->stream.in != NULL &&
+ usecase->stream.in->source == AUDIO_SOURCE_VOICE_COMMUNICATION)
+ return usecase->stream.in;
+ }
+ if (adev->mode == AUDIO_MODE_IN_COMMUNICATION)
+ return adev_get_active_input(adev);
+
+ return NULL;
+}
+
int select_devices(struct audio_device *adev, audio_usecase_t uc_id)
{
snd_device_t out_snd_device = SND_DEVICE_NONE;
@@ -2248,7 +2292,9 @@
}
out_snd_device = platform_get_output_snd_device(adev->platform,
usecase->stream.out);
- in_snd_device = platform_get_input_snd_device(adev->platform, usecase->stream.out->devices);
+ in_snd_device = platform_get_input_snd_device(adev->platform,
+ NULL,
+ usecase->stream.out->devices);
usecase->devices = usecase->stream.out->devices;
} else if (usecase->type == TRANSCODE_LOOPBACK_RX) {
if (usecase->stream.inout == NULL) {
@@ -2267,7 +2313,7 @@
ALOGE("%s: stream.inout is NULL", __func__);
return -EINVAL;
}
- in_snd_device = platform_get_input_snd_device(adev->platform, AUDIO_DEVICE_NONE);
+ in_snd_device = platform_get_input_snd_device(adev->platform, NULL, AUDIO_DEVICE_NONE);
usecase->devices = in_snd_device;
} else {
/*
@@ -2327,21 +2373,17 @@
usecase->devices = usecase->stream.out->devices;
in_snd_device = SND_DEVICE_NONE;
if (out_snd_device == SND_DEVICE_NONE) {
+ struct stream_out *voip_out = adev->primary_output;
+ struct stream_in *voip_in = get_voice_communication_input(adev);
out_snd_device = platform_get_output_snd_device(adev->platform,
- usecase->stream.out);
+ usecase->stream.out);
voip_usecase = get_usecase_from_list(adev, USECASE_AUDIO_PLAYBACK_VOIP);
- if (voip_usecase == NULL && adev->primary_output && !adev->primary_output->standby)
- voip_usecase = get_usecase_from_list(adev, adev->primary_output->usecase);
- if ((usecase->stream.out != NULL &&
- voip_usecase != NULL &&
- usecase->stream.out->usecase == voip_usecase->id) &&
- adev->active_input &&
- (adev->active_input->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
- adev->mode == AUDIO_MODE_IN_COMMUNICATION) &&
- out_snd_device != usecase->out_snd_device) {
- select_devices(adev, adev->active_input->usecase);
- }
+ if (voip_usecase)
+ voip_out = voip_usecase->stream.out;
+
+ if (usecase->stream.out == voip_out && voip_in != NULL)
+ select_devices(adev, voip_in->usecase);
}
} else if (usecase->type == PCM_CAPTURE) {
if (usecase->stream.in == NULL) {
@@ -2352,24 +2394,30 @@
out_snd_device = SND_DEVICE_NONE;
if (in_snd_device == SND_DEVICE_NONE) {
audio_devices_t out_device = AUDIO_DEVICE_NONE;
- if (adev->active_input &&
- (adev->active_input->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
- (adev->mode == AUDIO_MODE_IN_COMMUNICATION &&
- adev->active_input->source == AUDIO_SOURCE_MIC))) {
- voip_usecase = get_usecase_from_list(adev, USECASE_AUDIO_PLAYBACK_VOIP);
- if (voip_usecase != NULL && voip_usecase->stream.out != NULL)
- out_device = voip_usecase->stream.out->devices;
- else if (adev->primary_output && !adev->primary_output->standby)
- out_device = adev->primary_output->devices;
+ struct stream_in *voip_in = get_voice_communication_input(adev);
+
+ if (voip_in != NULL) {
+
+ struct audio_usecase *voip_usecase = get_usecase_from_list(adev,
+ USECASE_AUDIO_PLAYBACK_VOIP);
+
platform_set_echo_reference(adev, false, AUDIO_DEVICE_NONE);
- } else if (usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY) {
- out_device = AUDIO_DEVICE_OUT_TELEPHONY_TX;
- } else {
- /* forcing speaker o/p device to get matching i/p pair
- in case o/p is not routed from same primary HAL */
- out_device = AUDIO_DEVICE_OUT_SPEAKER;
+ if (usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY) {
+ out_device = AUDIO_DEVICE_OUT_TELEPHONY_TX;
+ } else if (voip_usecase) {
+ out_device = voip_usecase->stream.out->devices;
+ } else if (adev->primary_output &&
+ !adev->primary_output->standby) {
+ out_device = adev->primary_output->devices;
+ } else {
+ /* forcing speaker o/p device to get matching i/p pair
+ in case o/p is not routed from same primary HAL */
+ out_device = AUDIO_DEVICE_OUT_SPEAKER;
+ }
}
- in_snd_device = platform_get_input_snd_device(adev->platform, out_device);
+ in_snd_device = platform_get_input_snd_device(adev->platform,
+ usecase->stream.in,
+ out_device);
}
}
}
@@ -2537,8 +2585,7 @@
/* If input stream is already running then effect needs to be
applied on the new input device that's being enabled here. */
- if ((in_snd_device != SND_DEVICE_NONE) && (adev->active_input != NULL) &&
- (!adev->active_input->standby))
+ if (in_snd_device != SND_DEVICE_NONE)
check_and_enable_effect(adev);
if (usecase->type == VOICE_CALL || usecase->type == VOIP_CALL) {
@@ -2562,14 +2609,13 @@
in_snd_device);
if (is_btsco_device(out_snd_device, in_snd_device) || is_a2dp_device(out_snd_device)) {
-
+ struct stream_in *in = adev_get_active_input(adev);
if (usecase->type == VOIP_CALL) {
- if (adev->active_input != NULL &&
- !adev->active_input->standby) {
+ if (in != NULL && !in->standby) {
if (is_bt_soc_on(adev) == false){
ALOGD("BT SCO MIC disconnected while in connection");
- if (adev->active_input->pcm != NULL)
- pcm_stop(adev->active_input->pcm);
+ if (in->pcm != NULL)
+ pcm_stop(in->pcm);
}
}
if ((usecase->stream.out != NULL) && (usecase->stream.out != adev->primary_output)
@@ -2639,7 +2685,6 @@
list_remove(&uc_info->list);
free(uc_info);
- adev->active_input = get_next_active_input(adev);
enable_gcov();
ALOGV("%s: exit: status(%d)", __func__, ret);
return ret;
@@ -2701,7 +2746,6 @@
goto error_config;
}
- adev->active_input = in;
uc_info = (struct audio_usecase *)calloc(1, sizeof(struct audio_usecase));
if (!uc_info) {
@@ -2832,7 +2876,6 @@
stop_input_stream(in);
error_config:
- adev->active_input = get_next_active_input(adev);
/*
* sleep 50ms to allow sufficient time for kernel
* drivers to recover incases like SSR.
@@ -4825,6 +4868,12 @@
struct mixer_ctl *ctl;
long set_values[4];
+ if (!is_valid_volume(left, right)) {
+ ALOGE("%s: Invalid stream volume for left=%f, right=%f",
+ __func__, left, right);
+ return -EINVAL;
+ }
+
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
if (!ctl) {
ALOGE("%s: Could not get ctl for mixer cmd - %s",
@@ -7002,6 +7051,8 @@
AUDIO_CHANNEL_OUT_MONO : AUDIO_CHANNEL_OUT_STEREO;
out->usecase = USECASE_AUDIO_PLAYBACK_VOIP;
out->format = AUDIO_FORMAT_PCM_16_BIT;
+ out->volume_l = INVALID_OUT_VOLUME;
+ out->volume_r = INVALID_OUT_VOLUME;
out->config = default_pcm_config_voip_copp;
out->config.period_size = VOIP_IO_BUF_SIZE(out->sample_rate, DEFAULT_VOIP_BUF_DURATION_MS, DEFAULT_VOIP_BIT_DEPTH_BYTE)/2;
@@ -8679,7 +8730,7 @@
/* Disable echo reference if there are no active input, hfp call
* and sound trigger while closing input stream
*/
- if (!adev->active_input &&
+ if (adev_get_active_input(adev) == NULL &&
!audio_extn_hfp_is_active(adev) &&
!audio_extn_sound_trigger_check_ec_ref_enable())
platform_set_echo_reference(adev, false, AUDIO_DEVICE_NONE);
@@ -8827,13 +8878,10 @@
uc_info.id = audio_usecase;
uc_info.type = usecase_type;
if (dir) {
- adev->active_input = ∈
memset(&in, 0, sizeof(in));
in.device = audio_device;
in.source = AUDIO_SOURCE_VOICE_COMMUNICATION;
uc_info.stream.in = ∈
- } else {
- adev->active_input = NULL;
}
memset(&out, 0, sizeof(out));
out.devices = audio_device; /* only field needed in select_devices */
@@ -8868,7 +8916,6 @@
list_remove(&uc_info.list);
}
}
- adev->active_input = NULL; /* restore adev state */
return 0;
}
@@ -9182,7 +9229,6 @@
/* Set the default route before the PCM stream is opened */
adev->mode = AUDIO_MODE_NORMAL;
- adev->active_input = NULL;
adev->primary_output = NULL;
adev->out_device = AUDIO_DEVICE_NONE;
adev->bluetooth_nrec = true;
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
index 12312cc..2ea6198 100644
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -565,7 +565,6 @@
struct mixer *mixer;
audio_mode_t mode;
audio_devices_t out_device;
- struct stream_in *active_input;
struct stream_out *primary_output;
struct stream_out *voice_tx_output;
struct stream_out *current_call_output;
@@ -684,8 +683,6 @@
struct audio_usecase *get_usecase_from_list(const struct audio_device *adev,
audio_usecase_t uc_id);
-struct stream_in *get_next_active_input(const struct audio_device *adev);
-
bool is_offload_usecase(audio_usecase_t uc_id);
bool audio_is_true_native_stream_active(struct audio_device *adev);
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 80a52c7..41c5941 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -2765,7 +2765,7 @@
ALOGD("%s:DSD playback is supported", __func__);
my_data->is_dsd_supported = true;
my_data->is_asrc_supported = true;
- platform_set_native_support(NATIVE_AUDIO_MODE_MULTIPLE_44_1);
+ platform_set_native_support(NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC);
}
}
@@ -3396,12 +3396,14 @@
int platform_set_native_support(int na_mode)
{
if (NATIVE_AUDIO_MODE_SRC == na_mode || NATIVE_AUDIO_MODE_TRUE_44_1 == na_mode
- || NATIVE_AUDIO_MODE_MULTIPLE_44_1 == na_mode) {
+ || NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC == na_mode
+ || NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_DSP == na_mode) {
na_props.platform_na_prop_enabled = na_props.ui_na_prop_enabled = true;
na_props.na_mode = na_mode;
ALOGD("%s:napb: native audio playback enabled in (%s) mode", __func__,
((na_mode == NATIVE_AUDIO_MODE_SRC)?"SRC":
- (na_mode == NATIVE_AUDIO_MODE_TRUE_44_1)?"True":"Multiple"));
+ (na_mode == NATIVE_AUDIO_MODE_TRUE_44_1)?"True":
+ (na_mode == NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC)?"Multiple_Mix_Codec":"Multiple_Mix_DSP"));
} else {
na_props.platform_na_prop_enabled = false;
na_props.na_mode = NATIVE_AUDIO_MODE_INVALID;
@@ -3473,8 +3475,10 @@
mode = NATIVE_AUDIO_MODE_SRC;
else if (value && !strncmp(value, "true", sizeof("true")))
mode = NATIVE_AUDIO_MODE_TRUE_44_1;
- else if (value && !strncmp(value, "multiple", sizeof("multiple")))
- mode = NATIVE_AUDIO_MODE_MULTIPLE_44_1;
+ else if (value && !strncmp(value, "multiple_mix_codec", sizeof("multiple")))
+ mode = NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC;
+ else if (value && !strncmp(value, "multiple_mix_dsp", sizeof("multiple")))
+ mode = NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_DSP;
else {
mode = NATIVE_AUDIO_MODE_INVALID;
ALOGE("%s:napb:native_audio_mode in platform info xml,invalid mode string",
@@ -3618,7 +3622,7 @@
}
int platform_send_audio_calibration(void *platform, struct audio_usecase *usecase,
- int app_type, int sample_rate)
+ int app_type)
{
struct platform_data *my_data = (struct platform_data *)platform;
int acdb_dev_id, acdb_dev_type;
@@ -3627,6 +3631,7 @@
int i, num_devices = 1;
bool is_incall_rec_usecase = false;
snd_device_t incall_rec_device;
+ int sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
if (voice_is_in_call(my_data->adev))
is_incall_rec_usecase = voice_is_in_call_rec_stream(usecase->stream.in);
@@ -3656,11 +3661,16 @@
}
for (i = 0; i < num_devices; i++) {
- if (!is_incall_rec_usecase)
+ if (!is_incall_rec_usecase) {
acdb_dev_id = acdb_device_table[platform_get_spkr_prot_snd_device(new_snd_device[i])];
- else
+ sample_rate = audio_extn_utils_get_app_sample_rate_for_device(my_data->adev, usecase,
+ new_snd_device[i]);
+ } else {
// Use in_call_rec snd_device to extract the ACDB device ID instead of split snd devices
acdb_dev_id = acdb_device_table[platform_get_spkr_prot_snd_device(snd_device)];
+ sample_rate = audio_extn_utils_get_app_sample_rate_for_device(my_data->adev, usecase,
+ snd_device);
+ }
// Do not use Rx path default app type for TX path
if ((usecase->type == PCM_CAPTURE) && (app_type == DEFAULT_APP_TYPE_RX_PATH)) {
@@ -4153,6 +4163,7 @@
bool use_voip_out_devices = false;
bool prop_rec_play_enabled = false;
char recConcPropValue[PROPERTY_VALUE_MAX];
+ struct stream_in *in = adev_get_active_input(adev);
if (property_get("vendor.audio.rec.playback.conc.disabled", recConcPropValue, NULL)) {
prop_rec_play_enabled = atoi(recConcPropValue) || !strncmp("true", recConcPropValue, 4);
@@ -4161,8 +4172,8 @@
(my_data->rec_play_conc_set || adev->mode == AUDIO_MODE_IN_COMMUNICATION);
ALOGV("platform_get_output_snd_device use_voip_out_devices : %d",use_voip_out_devices);
- audio_channel_mask_t channel_mask = (adev->active_input == NULL) ?
- AUDIO_CHANNEL_IN_MONO : adev->active_input->channel_mask;
+ audio_channel_mask_t channel_mask = (in == NULL) ?
+ AUDIO_CHANNEL_IN_MONO : in->channel_mask;
int channel_count = popcount(channel_mask);
ALOGV("%s: enter: output devices(%#x)", __func__, devices);
@@ -4373,7 +4384,7 @@
} else if (NATIVE_AUDIO_MODE_SRC == na_mode &&
OUTPUT_SAMPLING_RATE_44100 == sample_rate) {
snd_device = SND_DEVICE_OUT_HEADPHONES_44_1;
- } else if (NATIVE_AUDIO_MODE_MULTIPLE_44_1 == na_mode &&
+ } else if (NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC == na_mode &&
(sample_rate % OUTPUT_SAMPLING_RATE_44100 == 0) &&
(out->format != AUDIO_FORMAT_DSD)) {
snd_device = SND_DEVICE_OUT_HEADPHONES_44_1;
@@ -4503,9 +4514,9 @@
{
struct audio_device *adev = my_data->adev;
snd_device_t snd_device = SND_DEVICE_NONE;
+ struct stream_in *in = adev_get_active_input(adev);
- if (adev->active_input->enable_aec &&
- adev->active_input->enable_ns) {
+ if (in != NULL && in->enable_aec && in->enable_ns) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
if (my_data->fluence_in_spkr_mode) {
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -4537,7 +4548,7 @@
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
}
platform_set_echo_reference(adev, true, out_device);
- } else if (adev->active_input->enable_aec) {
+ } else if (in != NULL && in->enable_aec) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
if (my_data->fluence_in_spkr_mode) {
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -4569,7 +4580,7 @@
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
}
platform_set_echo_reference(adev, true, out_device);
- } else if (adev->active_input->enable_ns) {
+ } else if (in != NULL && in->enable_ns) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
if (my_data->fluence_in_spkr_mode) {
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -4615,27 +4626,27 @@
return get_snd_device_for_voice_comm_ecns_disabled(my_data, out_device, in_device);
}
-snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_device)
+snd_device_t platform_get_input_snd_device(void *platform,
+ struct stream_in *in,
+ audio_devices_t out_device)
{
struct platform_data *my_data = (struct platform_data *)platform;
struct audio_device *adev = my_data->adev;
- /*
- * TODO: active_input always points to last opened input. Source returned will
- * be wrong if more than one active inputs are present.
- */
- audio_source_t source = (adev->active_input == NULL) ?
- AUDIO_SOURCE_DEFAULT : adev->active_input->source;
-
- audio_mode_t mode = adev->mode;
- audio_devices_t in_device = ((adev->active_input == NULL) ?
- AUDIO_DEVICE_NONE : adev->active_input->device)
- & ~AUDIO_DEVICE_BIT_IN;
- audio_channel_mask_t channel_mask = (adev->active_input == NULL) ?
- AUDIO_CHANNEL_IN_MONO : adev->active_input->channel_mask;
+ audio_mode_t mode = adev->mode;
snd_device_t snd_device = SND_DEVICE_NONE;
- int channel_count = popcount(channel_mask);
- int str_bitwidth = (adev->active_input == NULL) ?
- CODEC_BACKEND_DEFAULT_BIT_WIDTH : adev->active_input->bit_width;
+
+ if (in == NULL) {
+ in = adev_get_active_input(adev);
+ }
+
+ audio_source_t source = (in == NULL) ? AUDIO_SOURCE_DEFAULT : in->source;
+ audio_devices_t in_device =
+ ((in == NULL) ? AUDIO_DEVICE_NONE : in->device) & ~AUDIO_DEVICE_BIT_IN;
+ audio_channel_mask_t channel_mask = (in == NULL) ? AUDIO_CHANNEL_IN_MONO : in->channel_mask;
+ int channel_count = audio_channel_count_from_in_mask(channel_mask);
+
+ int str_bitwidth = (in == NULL) ?
+ CODEC_BACKEND_DEFAULT_BIT_WIDTH : in->bit_width;
ALOGV("%s: enter: out_device(%#x) in_device(%#x) channel_count (%d) channel_mask (0x%x)",
__func__, out_device, in_device, channel_count, channel_mask);
@@ -4824,7 +4835,7 @@
snd_device = SND_DEVICE_IN_QUAD_MIC;
}
if (snd_device == SND_DEVICE_NONE) {
- if (adev->active_input->enable_ns)
+ if (in != NULL && in->enable_ns)
snd_device = SND_DEVICE_IN_VOICE_REC_MIC_NS;
else
snd_device = SND_DEVICE_IN_VOICE_REC_MIC;
@@ -4866,16 +4877,15 @@
in_device = ((out_device == AUDIO_DEVICE_NONE) ?
AUDIO_DEVICE_IN_BUILTIN_MIC : in_device) & ~AUDIO_DEVICE_BIT_IN;
- if (adev->active_input) {
+ if (in)
snd_device = get_snd_device_for_voice_comm(my_data, out_device, in_device);
- }
} else if (source == AUDIO_SOURCE_MIC) {
if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC &&
channel_count == 1) {
if(my_data->fluence_in_audio_rec) {
if ((my_data->fluence_type & FLUENCE_HEX_MIC) &&
(my_data->source_mic_type & SOURCE_HEX_MIC) &&
- (audio_extn_ffv_get_stream() == adev->active_input)) {
+ (audio_extn_ffv_get_stream() == in)) {
snd_device = audio_extn_ffv_get_capture_snd_device();
} else if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
@@ -4897,7 +4907,7 @@
goto exit;
}
- if (adev->active_input && (audio_extn_ssr_get_stream() == adev->active_input))
+ if (in && (audio_extn_ssr_get_stream() == in))
snd_device = SND_DEVICE_IN_THREE_MIC;
if (snd_device != SND_DEVICE_NONE) {
@@ -4908,7 +4918,7 @@
!(in_device & AUDIO_DEVICE_IN_VOICE_CALL) &&
!(in_device & AUDIO_DEVICE_IN_COMMUNICATION)) {
if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
- if (adev->active_input && (audio_extn_ssr_get_stream() == adev->active_input))
+ if (in && (audio_extn_ssr_get_stream() == in))
snd_device = SND_DEVICE_IN_QUAD_MIC;
else if ((my_data->fluence_type & (FLUENCE_DUAL_MIC | FLUENCE_TRI_MIC | FLUENCE_QUAD_MIC)) &&
(channel_count == 2) && (my_data->source_mic_type & SOURCE_DUAL_MIC))
@@ -5233,9 +5243,9 @@
goto done_key_audcal;
}
- if(cal.dev_id) {
- if(audio_is_input_device(cal.dev_id)) {
- cal.snd_dev_id = platform_get_input_snd_device(platform, cal.dev_id);
+ if (cal.dev_id) {
+ if (audio_is_input_device(cal.dev_id)) {
+ cal.snd_dev_id = platform_get_input_snd_device(platform, NULL, cal.dev_id);
} else {
out.devices = cal.dev_id;
out.sample_rate = cal.sampling_rate;
@@ -5559,7 +5569,7 @@
}
if(cal.dev_id & AUDIO_DEVICE_BIT_IN) {
- cal.snd_dev_id = platform_get_input_snd_device(platform, cal.dev_id);
+ cal.snd_dev_id = platform_get_input_snd_device(platform, NULL, cal.dev_id);
} else if(cal.dev_id) {
out.devices = cal.dev_id;
out.sample_rate = cal.sampling_rate;
@@ -6442,7 +6452,7 @@
ALOGD("%s:becf: afe: true napb active set rate to 44.1 khz",
__func__);
}
- } else if (na_mode != NATIVE_AUDIO_MODE_MULTIPLE_44_1) {
+ } else if (na_mode != NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC) {
/*
* Map native sampling rates to upper limit range
* if multiple of native sampling rates are not supported.
@@ -8520,7 +8530,7 @@
size_t actual_mic_count = 0;
snd_device_t active_input_snd_device =
- platform_get_input_snd_device(platform, usecase->stream.in->device);
+ platform_get_input_snd_device(platform, usecase->stream.in, AUDIO_DEVICE_NONE);
if (active_input_snd_device == SND_DEVICE_NONE) {
ALOGI("%s: No active microphones found", __func__);
goto end;
diff --git a/hal/msm8960/platform.c b/hal/msm8960/platform.c
index e16d20a..8122827 100644
--- a/hal/msm8960/platform.c
+++ b/hal/msm8960/platform.c
@@ -522,7 +522,7 @@
}
int platform_send_audio_calibration(void *platform, struct audio_usecase *usecase,
- int app_type __unused, int sample_rate __unused)
+ int app_type __unused)
{
struct platform_data *my_data = (struct platform_data *)platform;
int acdb_dev_id, acdb_dev_type;
@@ -536,7 +536,7 @@
voice_is_in_call_rec_stream(usecase->stream.in))
snd_device = voice_get_incall_rec_snd_device(usecase->in_snd_device);
else if ((usecase->type == PCM_HFP_CALL) || (usecase->type == PCM_CAPTURE))
- snd_device = platform_get_input_snd_device(adev->platform,
+ snd_device = platform_get_input_snd_device(adev->platform, NULL,
adev->primary_output->devices);
acdb_dev_id = acdb_device_table[snd_device];
if (acdb_dev_id < 0) {
@@ -794,21 +794,23 @@
return snd_device;
}
-snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_device)
+snd_device_t platform_get_input_snd_device(void *platform,
+ struct stream_in *in,
+ audio_devices_t out_device)
{
struct platform_data *my_data = (struct platform_data *)platform;
struct audio_device *adev = my_data->adev;
- audio_source_t source = (adev->active_input == NULL) ?
- AUDIO_SOURCE_DEFAULT : adev->active_input->source;
-
- audio_mode_t mode = adev->mode;
- audio_devices_t in_device = ((adev->active_input == NULL) ?
- AUDIO_DEVICE_NONE : adev->active_input->device)
- & ~AUDIO_DEVICE_BIT_IN;
- audio_channel_mask_t channel_mask = (adev->active_input == NULL) ?
- AUDIO_CHANNEL_IN_MONO : adev->active_input->channel_mask;
+ audio_mode_t mode = adev->mode;
snd_device_t snd_device = SND_DEVICE_NONE;
+ if (in == NULL)
+ in = adev_get_active_input(adev);
+
+ audio_source_t source = (in == NULL) ? AUDIO_SOURCE_DEFAULT : in->source;
+ audio_devices_t in_device =
+ ((in == NULL) ? AUDIO_DEVICE_NONE : in->device) & ~AUDIO_DEVICE_BIT_IN;
+ audio_channel_mask_t channel_mask = (in == NULL) ? AUDIO_CHANNEL_IN_MONO : in->channel_mask;
+
ALOGV("%s: enter: out_device(%#x) in_device(%#x)",
__func__, out_device, in_device);
if ((out_device != AUDIO_DEVICE_NONE) && (mode == AUDIO_MODE_IN_CALL)) {
@@ -882,8 +884,8 @@
} else if (source == AUDIO_SOURCE_VOICE_COMMUNICATION) {
if (out_device & AUDIO_DEVICE_OUT_SPEAKER)
in_device = AUDIO_DEVICE_IN_BACK_MIC;
- if (adev->active_input) {
- if (adev->active_input->enable_aec) {
+ if (in) {
+ if (in->enable_aec) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
snd_device = SND_DEVICE_IN_SPEAKER_MIC_AEC;
} else if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 01d75e4..a51a837 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1679,12 +1679,12 @@
{
struct platform_data *my_data = (struct platform_data *)platform;
struct audio_device *adev = my_data->adev;
- if (adev->active_input == NULL) {
+ struct stream_in *in = adev_get_active_input(adev);
+ if (in == NULL)
return base;
- }
- unsigned int sr = adev->active_input->sample_rate;
- unsigned int ch = popcount(adev->active_input->channel_mask);
- unsigned int bit_width = adev->active_input->bit_width;
+ unsigned int sr = in->sample_rate;
+ unsigned int ch = popcount(in->channel_mask);
+ unsigned int bit_width = in->bit_width;
if (audio_extn_usb_is_config_supported(&bit_width, &sr, &ch, false)
&& ((ch == 6) || (ch == 8))) {
return other;
@@ -3083,11 +3083,11 @@
}
}
/* Check for Ambisonic Capture Enablement */
- if (property_get_bool("persist.vendor.audio.ambisonic.capture",false))
+ if (property_get_bool("vendor.audio.ambisonic.capture",false))
my_data->ambisonic_capture = true;
/* Check for Ambisonic Profile Assignment*/
- if (property_get_bool("persist.vendor.audio.ambisonic.auto.profile",false))
+ if (property_get_bool("vendor.audio.ambisonic.auto.profile",false))
my_data->ambisonic_profile = true;
if (check_and_get_wsa_info((char *)snd_card_name, &wsaCount, &is_wsa_combo_supported)
@@ -3422,6 +3422,17 @@
strdup("RX_CDC_DMA_RX_0 Format");
my_data->current_backend_cfg[HEADPHONE_BACKEND].samplerate_mixer_ctl =
strdup("RX_CDC_DMA_RX_0 SampleRate");
+ /*
+ * TODO: enable CONCURRENT_CAPTURE_ENABLED flag only if separate backend
+ * is defined for headset-mic. This is to capture separate data from
+ * headset-mic and handset-mic.
+ */
+ if(audio_extn_is_concurrent_capture_enabled()) {
+ my_data->current_backend_cfg[HEADSET_TX_BACKEND].bitwidth_mixer_ctl =
+ strdup("TX_CDC_DMA_TX_4 Format");
+ my_data->current_backend_cfg[HEADSET_TX_BACKEND].samplerate_mixer_ctl =
+ strdup("TX_CDC_DMA_TX_4 SampleRate");
+ }
if (default_rx_backend)
free(default_rx_backend);
@@ -3628,7 +3639,7 @@
ALOGD("%s:DSD playback is supported", __func__);
my_data->is_dsd_supported = true;
my_data->is_asrc_supported = true;
- platform_set_native_support(NATIVE_AUDIO_MODE_MULTIPLE_44_1);
+ platform_set_native_support(NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC);
}
}
@@ -4536,12 +4547,14 @@
int platform_set_native_support(int na_mode)
{
if (NATIVE_AUDIO_MODE_SRC == na_mode || NATIVE_AUDIO_MODE_TRUE_44_1 == na_mode
- || NATIVE_AUDIO_MODE_MULTIPLE_44_1 == na_mode) {
+ || NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC == na_mode
+ || NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_DSP == na_mode) {
na_props.platform_na_prop_enabled = na_props.ui_na_prop_enabled = true;
na_props.na_mode = na_mode;
ALOGD("%s:napb: native audio playback enabled in (%s) mode", __func__,
((na_mode == NATIVE_AUDIO_MODE_SRC)?"SRC":
- (na_mode == NATIVE_AUDIO_MODE_TRUE_44_1)?"True":"Multiple"));
+ (na_mode == NATIVE_AUDIO_MODE_TRUE_44_1)?"True":
+ (na_mode == NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC)?"Multiple_Mix_Codec":"Multiple_Mix_DSP"));
}
else {
na_props.platform_na_prop_enabled = false;
@@ -4616,8 +4629,10 @@
mode = NATIVE_AUDIO_MODE_SRC;
else if (value && !strncmp(value, "true", sizeof("true")))
mode = NATIVE_AUDIO_MODE_TRUE_44_1;
- else if (value && !strncmp(value, "multiple", sizeof("multiple")))
- mode = NATIVE_AUDIO_MODE_MULTIPLE_44_1;
+ else if (value && !strncmp(value, "multiple_mix_codec", sizeof("multiple_mix_codec")))
+ mode = NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC;
+ else if (value && !strncmp(value, "multiple_mix_dsp", sizeof("multiple_mix_dsp")))
+ mode = NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_DSP;
else {
mode = NATIVE_AUDIO_MODE_INVALID;
ALOGE("%s:napb:native_audio_mode in platform info xml,invalid mode string",
@@ -4747,7 +4762,7 @@
}
int platform_send_audio_calibration(void *platform, struct audio_usecase *usecase,
- int app_type, int sample_rate)
+ int app_type)
{
struct platform_data *my_data = (struct platform_data *)platform;
int acdb_dev_id, acdb_dev_type;
@@ -4756,6 +4771,7 @@
int i, num_devices = 1;
bool is_incall_rec_usecase = false;
snd_device_t incall_rec_device;
+ int sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
if (voice_is_in_call(my_data->adev))
is_incall_rec_usecase = voice_is_in_call_rec_stream(usecase->stream.in);
@@ -4790,11 +4806,16 @@
}
for (i = 0; i < num_devices; i++) {
- if (!is_incall_rec_usecase)
+ if (!is_incall_rec_usecase) {
acdb_dev_id = acdb_device_table[platform_get_spkr_prot_snd_device(new_snd_device[i])];
- else
+ sample_rate = audio_extn_utils_get_app_sample_rate_for_device(my_data->adev, usecase,
+ new_snd_device[i]);
+ } else {
// Use in_call_rec snd_device to extract the ACDB device ID instead of split snd devices
acdb_dev_id = acdb_device_table[platform_get_spkr_prot_snd_device(snd_device)];
+ sample_rate = audio_extn_utils_get_app_sample_rate_for_device(my_data->adev, usecase,
+ snd_device);
+ }
// Do not use Rx path default app type for TX path
if ((usecase->type == PCM_CAPTURE) && (app_type == DEFAULT_APP_TYPE_RX_PATH)) {
@@ -5441,9 +5462,10 @@
audio_devices_t devices = out->devices;
unsigned int sample_rate = out->sample_rate;
int na_mode = platform_get_native_support();
+ struct stream_in *in = adev_get_active_input(adev);
- audio_channel_mask_t channel_mask = (adev->active_input == NULL) ?
- AUDIO_CHANNEL_IN_MONO : adev->active_input->channel_mask;
+ audio_channel_mask_t channel_mask = (in == NULL) ?
+ AUDIO_CHANNEL_IN_MONO : in->channel_mask;
int channel_count = popcount(channel_mask);
ALOGV("%s: enter: output devices(%#x)", __func__, devices);
@@ -5744,7 +5766,7 @@
} else if (NATIVE_AUDIO_MODE_SRC == na_mode &&
OUTPUT_SAMPLING_RATE_44100 == sample_rate) {
snd_device = SND_DEVICE_OUT_HEADPHONES_44_1;
- } else if (NATIVE_AUDIO_MODE_MULTIPLE_44_1 == na_mode &&
+ } else if (NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC == na_mode &&
(sample_rate % OUTPUT_SAMPLING_RATE_44100 == 0) &&
(out->format != AUDIO_FORMAT_DSD)) {
snd_device = SND_DEVICE_OUT_HEADPHONES_44_1;
@@ -5897,9 +5919,9 @@
{
struct audio_device *adev = my_data->adev;
snd_device_t snd_device = SND_DEVICE_NONE;
+ struct stream_in *in = adev_get_active_input(adev);
- if (adev->active_input->enable_aec &&
- adev->active_input->enable_ns) {
+ if (in != NULL && in->enable_aec && in->enable_ns) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
if (my_data->fluence_in_spkr_mode) {
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -5945,7 +5967,7 @@
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
}
platform_set_echo_reference(adev, true, out_device);
- } else if (adev->active_input->enable_aec) {
+ } else if (in != NULL && in->enable_aec) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
if (my_data->fluence_in_spkr_mode) {
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -5989,7 +6011,7 @@
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
}
platform_set_echo_reference(adev, true, out_device);
- } else if (adev->active_input->enable_ns) {
+ } else if (in != NULL && in->enable_ns) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
if (my_data->fluence_in_spkr_mode) {
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
@@ -6047,27 +6069,25 @@
return get_snd_device_for_voice_comm_ecns_disabled(my_data, out_device, in_device);
}
-snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_device)
+snd_device_t platform_get_input_snd_device(void *platform,
+ struct stream_in *in,
+ audio_devices_t out_device)
{
struct platform_data *my_data = (struct platform_data *)platform;
struct audio_device *adev = my_data->adev;
- /*
- * TODO: active_input always points to last opened input. Source returned will
- * be wrong if more than one active inputs are present.
- */
- audio_source_t source = (adev->active_input == NULL) ?
- AUDIO_SOURCE_DEFAULT : adev->active_input->source;
-
- audio_mode_t mode = adev->mode;
- audio_devices_t in_device = ((adev->active_input == NULL) ?
- AUDIO_DEVICE_NONE : adev->active_input->device)
- & ~AUDIO_DEVICE_BIT_IN;
- audio_channel_mask_t channel_mask = (adev->active_input == NULL) ?
- AUDIO_CHANNEL_IN_MONO : adev->active_input->channel_mask;
+ audio_mode_t mode = adev->mode;
snd_device_t snd_device = SND_DEVICE_NONE;
- int channel_count = popcount(channel_mask);
- int str_bitwidth = (adev->active_input == NULL) ?
- CODEC_BACKEND_DEFAULT_BIT_WIDTH : adev->active_input->bit_width;
+
+ if (in == NULL)
+ in = adev_get_active_input(adev);
+
+ audio_source_t source = (in == NULL) ? AUDIO_SOURCE_DEFAULT : in->source;
+ audio_devices_t in_device =
+ ((in == NULL) ? AUDIO_DEVICE_NONE : in->device) & ~AUDIO_DEVICE_BIT_IN;
+ audio_channel_mask_t channel_mask = (in == NULL) ? AUDIO_CHANNEL_IN_MONO : in->channel_mask;
+ int channel_count = audio_channel_count_from_in_mask(channel_mask);
+ int str_bitwidth = (in == NULL) ? CODEC_BACKEND_DEFAULT_BIT_WIDTH : in->bit_width;
+ int sample_rate = (in == NULL) ? 8000 : in->sample_rate;
ALOGV("%s: enter: out_device(%#x) in_device(%#x) channel_count (%d) channel_mask (0x%x)",
__func__, out_device, in_device, channel_count, channel_mask);
@@ -6278,23 +6298,25 @@
(in_device & AUDIO_DEVICE_IN_BACK_MIC)) && // OR Back-mic
(source == AUDIO_SOURCE_MIC || // AND source is MIC for 16bit
source == AUDIO_SOURCE_UNPROCESSED || // OR unprocessed for 24bit
- source == AUDIO_SOURCE_CAMCORDER)) { // OR camera usecase
+ source == AUDIO_SOURCE_CAMCORDER) && // OR camera usecase
+ ((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) && // AND 4mic channel mask
+ (sample_rate == 48000)) { // AND sample rate is 48Khz
snd_device = SND_DEVICE_IN_HANDSET_GENERIC_QMIC;
/* Below check is true only in LA build to set
ambisonic profile. In LE hal client will set profile
*/
- if (my_data->ambisonic_profile == true) {
- strlcpy(adev->active_input->profile, "record_ambisonic",
- sizeof(adev->active_input->profile));
- }
+ if (my_data->ambisonic_profile == true &&
+ in != NULL)
+ strlcpy(in->profile, "record_ambisonic",
+ sizeof(in->profile));
- if (!strncmp(adev->active_input->profile, "record_ambisonic",
- strlen("record_ambisonic"))) {
+ if (in != NULL && !strncmp(in->profile, "record_ambisonic",
+ strlen("record_ambisonic"))) {
/* Validate input stream configuration for
Ambisonic capture.
*/
if (((int)channel_mask != (int)AUDIO_CHANNEL_INDEX_MASK_4) ||
- (adev->active_input->sample_rate != 48000)) {
+ (sample_rate != 48000)) {
snd_device = SND_DEVICE_NONE;
ALOGW("Unsupported Input configuration for ambisonic capture");
goto exit;
@@ -6360,19 +6382,19 @@
if (my_data->fluence_in_voice_rec && channel_count == 1) {
if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
- if (adev->active_input->enable_aec)
+ if (in != NULL && in->enable_aec)
snd_device = SND_DEVICE_IN_HANDSET_QMIC_AEC;
else
snd_device = SND_DEVICE_IN_VOICE_REC_QMIC_FLUENCE;
} else if ((my_data->fluence_type & FLUENCE_QUAD_MIC) &&
(my_data->source_mic_type & SOURCE_THREE_MIC)) {
- if (adev->active_input->enable_aec)
+ if (in != NULL && in->enable_aec)
snd_device = SND_DEVICE_IN_HANDSET_TMIC_AEC;
else
snd_device = SND_DEVICE_IN_VOICE_REC_TMIC;
} else if ((my_data->fluence_type & FLUENCE_DUAL_MIC) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
- if (adev->active_input->enable_aec)
+ if (in != NULL && in->enable_aec)
snd_device = SND_DEVICE_IN_HANDSET_DMIC_AEC;
else
snd_device = SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE;
@@ -6390,14 +6412,14 @@
snd_device = SND_DEVICE_IN_QUAD_MIC;
}
if (snd_device == SND_DEVICE_NONE) {
- if (adev->active_input->enable_aec) {
- if (adev->active_input->enable_ns) {
+ if (in != NULL && in->enable_aec) {
+ if (in->enable_ns) {
snd_device = SND_DEVICE_IN_VOICE_REC_MIC_AEC_NS;
} else {
snd_device = SND_DEVICE_IN_VOICE_REC_MIC_AEC;
}
platform_set_echo_reference(adev, true, out_device);
- } else if (adev->active_input->enable_ns)
+ } else if (in != NULL && in->enable_ns)
snd_device = SND_DEVICE_IN_VOICE_REC_MIC_NS;
else
snd_device = SND_DEVICE_IN_VOICE_REC_MIC;
@@ -6448,9 +6470,8 @@
in_device = ((out_device == AUDIO_DEVICE_NONE) ?
AUDIO_DEVICE_IN_BUILTIN_MIC : in_device) & ~AUDIO_DEVICE_BIT_IN;
- if (adev->active_input) {
+ if (in)
snd_device = get_snd_device_for_voice_comm(my_data, out_device, in_device);
- }
} else if (source == AUDIO_SOURCE_MIC) {
if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC &&
channel_count == 1 ) {
@@ -6478,7 +6499,7 @@
goto exit;
}
- if (adev->active_input && (audio_extn_ssr_get_stream() == adev->active_input))
+ if (in && (audio_extn_ssr_get_stream() == in))
snd_device = SND_DEVICE_IN_THREE_MIC;
if (snd_device != SND_DEVICE_NONE) {
@@ -6489,7 +6510,7 @@
!(in_device & AUDIO_DEVICE_IN_VOICE_CALL) &&
!(in_device & AUDIO_DEVICE_IN_COMMUNICATION)) {
if (in_device & AUDIO_DEVICE_IN_BUILTIN_MIC) {
- if ((adev->active_input && (audio_extn_ssr_get_stream() == adev->active_input)) ||
+ if ((in && (audio_extn_ssr_get_stream() == in)) ||
((my_data->source_mic_type & SOURCE_QUAD_MIC) &&
channel_mask == AUDIO_CHANNEL_INDEX_MASK_4))
snd_device = SND_DEVICE_IN_QUAD_MIC;
@@ -6892,9 +6913,11 @@
goto done_key_audcal;
}
- if(cal.dev_id) {
- if(audio_is_input_device(cal.dev_id)) {
- cal.snd_dev_id = platform_get_input_snd_device(platform, cal.dev_id);
+ if (cal.dev_id) {
+ if (audio_is_input_device(cal.dev_id)) {
+ // FIXME: why pass an input device whereas
+ // platform_get_input_snd_device() expects as an output device?
+ cal.snd_dev_id = platform_get_input_snd_device(platform, NULL, cal.dev_id);
} else {
out.devices = cal.dev_id;
out.sample_rate = cal.sampling_rate;
@@ -7449,8 +7472,8 @@
goto done;
}
- if(cal.dev_id & AUDIO_DEVICE_BIT_IN) {
- cal.snd_dev_id = platform_get_input_snd_device(platform, cal.dev_id);
+ if (cal.dev_id & AUDIO_DEVICE_BIT_IN) {
+ cal.snd_dev_id = platform_get_input_snd_device(platform, NULL, cal.dev_id);
} else if(cal.dev_id) {
out.devices = cal.dev_id;
out.sample_rate = cal.sampling_rate;
@@ -8360,7 +8383,26 @@
ALOGD("%s:becf: afe: true napb active set rate to 44.1 khz",
__func__);
}
- } else if (na_mode != NATIVE_AUDIO_MODE_MULTIPLE_44_1) {
+ } else if (na_mode == NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_DSP) {
+ struct listnode *node;
+ list_for_each(node, &adev->usecase_list) {
+ struct audio_usecase *uc;
+ uc = node_to_item(node, struct audio_usecase, list);
+ struct stream_out *curr_out =
+ (struct stream_out*) uc->stream.out;
+
+ /*if native audio playback
+ * is active then it will take priority
+ */
+ if (curr_out && PCM_PLAYBACK == uc->type) {
+ 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;
+ }
+ }
+ }
+ } else if (na_mode != NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC) {
/*
* Map native sampling rates to upper limit range
* if multiple of native sampling rates are not supported.
@@ -8613,6 +8655,7 @@
unsigned int channels;
unsigned int format;
struct platform_data *my_data = (struct platform_data *)adev->platform;
+ struct stream_in *in = adev_get_active_input(adev);
bit_width = backend_cfg->bit_width;
sample_rate = backend_cfg->sample_rate;
@@ -8636,7 +8679,7 @@
} else if (my_data->is_internal_codec && !audio_is_usb_in_device(snd_device)) {
sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
channels = CODEC_BACKEND_DEFAULT_TX_CHANNELS;
- if (adev->active_input && adev->active_input->bit_width == 24)
+ if (in && in->bit_width == 24)
bit_width = platform_get_snd_device_bit_width(snd_device);
} else {
struct listnode *node;
@@ -10531,7 +10574,7 @@
size_t actual_mic_count = 0;
snd_device_t active_input_snd_device =
- platform_get_input_snd_device(platform, usecase->stream.in->device);
+ platform_get_input_snd_device(platform, usecase->stream.in, AUDIO_DEVICE_NONE);
if (active_input_snd_device == SND_DEVICE_NONE) {
ALOGI("%s: No active microphones found", __func__);
goto end;
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index 7da728c..b1e10f8 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -639,9 +639,9 @@
#define FM_RX_VOLUME "Quat MI2S FM RX Volume"
#elif PLATFORM_MSM8994
#define FM_RX_VOLUME "PRI MI2S LOOPBACK Volume"
-#elif defined (PLATFORM_MSM8996) || defined (PLATFORM_KONA) || defined (PLATFORM_LITO)
+#elif defined (PLATFORM_MSM8996) || defined (PLATFORM_KONA)
#define FM_RX_VOLUME "Tert MI2S LOOPBACK Volume"
-#elif defined (PLATFORM_MSM8998) || defined (PLATFORM_SDM845) || defined (PLATFORM_MSMFALCON) || defined (PLATFORM_SDM710) || defined (PLATFORM_QCS605) || defined (PLATFORM_MSMNILE) || defined (PLATFORM_MSMSTEPPE) || defined (PLATFORM_QCS405) || defined (PLATFORM_TRINKET)
+#elif defined (PLATFORM_MSM8998) || defined (PLATFORM_SDM845) || defined (PLATFORM_MSMFALCON) || defined (PLATFORM_SDM710) || defined (PLATFORM_QCS605) || defined (PLATFORM_MSMNILE) || defined (PLATFORM_MSMSTEPPE) || defined (PLATFORM_QCS405) || defined (PLATFORM_TRINKET) || defined (PLATFORM_LITO)
#define FM_RX_VOLUME "SLIMBUS_8 LOOPBACK Volume"
#else
#define FM_RX_VOLUME "Internal FM RX Volume"
diff --git a/hal/platform_api.h b/hal/platform_api.h
index f43aa88..192022c 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -63,7 +63,8 @@
enum {
NATIVE_AUDIO_MODE_SRC = 1,
NATIVE_AUDIO_MODE_TRUE_44_1,
- NATIVE_AUDIO_MODE_MULTIPLE_44_1,
+ NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_CODEC,
+ NATIVE_AUDIO_MODE_MULTIPLE_MIX_IN_DSP,
NATIVE_AUDIO_MODE_INVALID
};
@@ -154,7 +155,7 @@
int platform_set_native_support(int na_mode);
int platform_get_native_support();
int platform_send_audio_calibration(void *platform, struct audio_usecase *usecase,
- int app_type, int sample_rate);
+ int app_type);
int platform_get_default_app_type(void *platform);
int platform_get_default_app_type_v2(void *platform, usecase_type_t type);
int platform_switch_voice_call_device_pre(void *platform);
@@ -178,7 +179,9 @@
int platform_get_sample_rate(void *platform, uint32_t *rate);
int platform_set_device_mute(void *platform, bool state, char *dir);
snd_device_t platform_get_output_snd_device(void *platform, struct stream_out *out);
-snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_device);
+snd_device_t platform_get_input_snd_device(void *platform,
+ struct stream_in *in,
+ audio_devices_t out_device);
int platform_set_hdmi_channels(void *platform, int channel_count);
int platform_edid_get_max_channels(void *platform);
void platform_add_operator_specific_device(snd_device_t snd_device,
@@ -355,4 +358,7 @@
struct audio_custom_mtmx_params_info *info);
int platform_add_custom_mtmx_params(void *platform,
struct audio_custom_mtmx_params_info *info);
+/* callback functions from platform to common audio HAL */
+struct stream_in *adev_get_active_input(const struct audio_device *adev);
+
#endif // AUDIO_PLATFORM_API_H
diff --git a/hal/voice_extn/compress_voip.c b/hal/voice_extn/compress_voip.c
index e4bc210..fbd6d6f 100644
--- a/hal/voice_extn/compress_voip.c
+++ b/hal/voice_extn/compress_voip.c
@@ -501,7 +501,6 @@
if (!voip_data.in_stream_count)
ret = compress_voip_open_input_stream(in);
- adev->active_input = in;
ret = voip_start_call(adev, &in->config);
in->pcm = voip_data.pcm_tx;
@@ -539,7 +538,6 @@
if(voip_data.in_stream_count > 0) {
voip_data.in_stream_count--;
status = voip_stop_call(adev);
- adev->active_input = get_next_active_input(adev);
in->pcm = NULL;
}