Merge "configs: sdm845: update speaker path for QVR845"
diff --git a/configs/apq8098_latv/apq8098_latv.mk b/configs/apq8098_latv/apq8098_latv.mk
old mode 100644
new mode 100755
index c9178cf..7a74e58
--- a/configs/apq8098_latv/apq8098_latv.mk
+++ b/configs/apq8098_latv/apq8098_latv.mk
@@ -30,7 +30,7 @@
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
AUDIO_FEATURE_ENABLED_USB_TUNNEL_AUDIO := true
AUDIO_FEATURE_ENABLED_SPLIT_A2DP := true
-AUDIO_FEATURE_ENABLED_3D_AUDIO := false
+AUDIO_FEATURE_ENABLED_3D_AUDIO := true
AUDIO_FEATURE_ENABLED_VOICE_PRINT := false
USE_LEGACY_AUDIO_DAEMON := false
USE_LEGACY_AUDIO_MEASUREMENT := false
@@ -46,7 +46,7 @@
AUDIO_FEATURE_ENABLED_FLUENCE := true
AUDIO_FEATURE_ENABLED_HDMI_EDID := true
AUDIO_FEATURE_ENABLED_HDMI_PASSTHROUGH := true
-#AUDIO_FEATURE_ENABLED_KEEP_ALIVE := true
+AUDIO_FEATURE_ENABLED_KEEP_ALIVE := true
AUDIO_FEATURE_ENABLED_DISPLAY_PORT := true
AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false
AUDIO_FEATURE_ENABLED_HFP := true
@@ -62,6 +62,7 @@
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true
BOARD_SUPPORTS_QAHW := true
+AUDIO_FEATURE_ENABLED_QAF := true
AUDIO_FEATURE_ENABLED_RAS := true
AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
@@ -97,8 +98,7 @@
hardware/qcom/audio/configs/msm8998/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
hardware/qcom/audio/configs/msm8998/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
hardware/qcom/audio/configs/msm8998/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
- hardware/qcom/audio/configs/msm8998/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
- vendor/qcom/proprietary/mm-audio/audio-log-utils/audio_dynamic_log.xml:$(TARGET_COPY_OUT_VENDOR)/data/vendor/misc/audio/audio_dynamic_log.xml
+ hardware/qcom/audio/configs/msm8998/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
@@ -150,6 +150,14 @@
PRODUCT_PROPERTY_OVERRIDES += \
audio.offload.video=true
+#Enable 16 bit PCM offload by default
+PRODUCT_PROPERTY_OVERRIDES += \
+audio.offload.pcm.16bit.enable=true
+
+#Enable 24 bit PCM offload by default
+PRODUCT_PROPERTY_OVERRIDES += \
+audio.offload.pcm.24bit.enable=true
+
#Enable audio track offload by default
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.offload.track.enable=true
@@ -158,6 +166,10 @@
PRODUCT_PROPERTY_OVERRIDES += \
audio.deep_buffer.media=true
+#QC property used when calculating client heap size in audio flinger
+PRODUCT_PROPERTY_OVERRIDES += \
+audio.heap.size.multiplier=7
+
#enable voice path for PCM VoIP by default
PRODUCT_PROPERTY_OVERRIDES += \
vendor.voice.path.for.pcm.voip=true
@@ -173,11 +185,11 @@
#Disable Multiple offload sesison
PRODUCT_PROPERTY_OVERRIDES += \
-vendor.audio.offload.multiple.enabled=false
+vendor.audio.offload.multiple.enabled=true
#Disable Compress passthrough playback
PRODUCT_PROPERTY_OVERRIDES += \
-vendor.audio.offload.passthrough=false
+vendor.audio.offload.passthrough=true
#Disable surround sound recording
PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/configs/apq8098_latv/audio_policy_configuration.xml b/configs/apq8098_latv/audio_policy_configuration.xml
old mode 100644
new mode 100755
index c8707e3..484f96a
--- a/configs/apq8098_latv/audio_policy_configuration.xml
+++ b/configs/apq8098_latv/audio_policy_configuration.xml
@@ -68,6 +68,10 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
+ <mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="deep_buffer" role="source"
flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -194,6 +198,11 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
+ <mixPort name="mmap_no_irq_in" role="sink" flags="AUDIO_INPUT_FLAG_MMAP_NOIRQ">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
+ </mixPort>
</mixPorts>
<devicePorts>
@@ -305,15 +314,15 @@
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Earpiece"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Speaker"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Wired Headset"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx"/>
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Wired Headphones"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx"/>
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Line"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx"/>
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,dsd_compress_passthrough,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="HDMI"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,compress_passthrough"/>
<route type="mix" sink="Proxy"
@@ -321,19 +330,21 @@
<route type="mix" sink="FM"
sources="primary output"/>
<route type="mix" sink="BT SCO All"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="USB Device Out"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
+ sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
- sources="Built-In Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,Telephony Rx"/>
+ sources="Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,Telephony Rx"/>
<route type="mix" sink="surround_sound"
sources="Built-In Mic,Built-In Back Mic"/>
<route type="mix" sink="record_24"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
+ <route type="mix" sink="mmap_no_irq_in"
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,USB Device In"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="BT A2DP Headphones"
diff --git a/configs/msm8909/msm8909.mk b/configs/msm8909/msm8909.mk
index c3305e9..9a32dee 100755
--- a/configs/msm8909/msm8909.mk
+++ b/configs/msm8909/msm8909.mk
@@ -65,8 +65,7 @@
hardware/qcom/audio/configs/msm8909/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
hardware/qcom/audio/configs/msm8909/sound_trigger_mixer_paths_wcd9326.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9326.xml \
hardware/qcom/audio/configs/msm8909/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
- hardware/qcom/audio/configs/msm8909/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
- vendor/qcom/proprietary/mm-audio/audio-log-utils/audio_dynamic_log.xml:$(TARGET_COPY_OUT_VENDOR)/data/vendor/misc/audio/audio_dynamic_log.xml
+ hardware/qcom/audio/configs/msm8909/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index 9de472f..6200705 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -95,8 +95,7 @@
hardware/qcom/audio/configs/msm8937/mixer_paths_qrd_sku2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd_sku2.xml \
hardware/qcom/audio/configs/msm8937/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
hardware/qcom/audio/configs/msm8937/audio_platform_info_extcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_extcodec.xml \
-hardware/qcom/audio/configs/msm8937/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
-vendor/qcom/proprietary/mm-audio/audio-log-utils/audio_dynamic_log.xml:$(TARGET_COPY_OUT_VENDOR)/data/vendor/misc/audio/audio_dynamic_log.xml
+hardware/qcom/audio/configs/msm8937/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index 035c3f3..068317d 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -94,8 +94,7 @@
hardware/qcom/audio/configs/msm8953/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
hardware/qcom/audio/configs/msm8953/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
hardware/qcom/audio/configs/msm8953/audio_platform_info_extcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_extcodec.xml \
-hardware/qcom/audio/configs/msm8953/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
-vendor/qcom/proprietary/mm-audio/audio-log-utils/audio_dynamic_log.xml:$(TARGET_COPY_OUT_VENDOR)/data/vendor/misc/audio/audio_dynamic_log.xml
+hardware/qcom/audio/configs/msm8953/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
diff --git a/configs/msm8996/msm8996.mk b/configs/msm8996/msm8996.mk
index 178de2e..2b815ae 100644
--- a/configs/msm8996/msm8996.mk
+++ b/configs/msm8996/msm8996.mk
@@ -82,8 +82,7 @@
hardware/qcom/audio/configs/msm8996/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
hardware/qcom/audio/configs/msm8996/sound_trigger_mixer_paths_wcd9330.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9330.xml \
hardware/qcom/audio/configs/msm8996/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
- hardware/qcom/audio/configs/msm8996/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
- vendor/qcom/proprietary/mm-audio/audio-log-utils/audio_dynamic_log.xml:$(TARGET_COPY_OUT_VENDOR)/data/vendor/misc/audio/audio_dynamic_log.xml
+ hardware/qcom/audio/configs/msm8996/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
diff --git a/configs/msm8998/msm8998.mk b/configs/msm8998/msm8998.mk
index e190e29..dd68841 100644
--- a/configs/msm8998/msm8998.mk
+++ b/configs/msm8998/msm8998.mk
@@ -96,8 +96,7 @@
hardware/qcom/audio/configs/msm8998/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
hardware/qcom/audio/configs/msm8998/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
hardware/qcom/audio/configs/msm8998/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
- hardware/qcom/audio/configs/msm8998/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
- vendor/qcom/proprietary/mm-audio/audio-log-utils/audio_dynamic_log.xml:$(TARGET_COPY_OUT_VENDOR)/data/vendor/misc/audio/audio_dynamic_log.xml
+ hardware/qcom/audio/configs/msm8998/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
diff --git a/configs/sdm660/sdm660.mk b/configs/sdm660/sdm660.mk
index f805467..6834479 100644
--- a/configs/sdm660/sdm660.mk
+++ b/configs/sdm660/sdm660.mk
@@ -100,8 +100,7 @@
hardware/qcom/audio/configs/sdm660/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
hardware/qcom/audio/configs/sdm660/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
hardware/qcom/audio/configs/sdm660/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
- hardware/qcom/audio/configs/sdm660/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
- vendor/qcom/proprietary/mm-audio/audio-log-utils/audio_dynamic_log.xml:$(TARGET_COPY_OUT_VENDOR)/data/vendor/misc/audio/audio_dynamic_log.xml
+ hardware/qcom/audio/configs/sdm660/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
diff --git a/configs/sdm670/sdm670.mk b/configs/sdm670/sdm670.mk
index ae7ddbf..d220650 100644
--- a/configs/sdm670/sdm670.mk
+++ b/configs/sdm670/sdm670.mk
@@ -100,8 +100,7 @@
hardware/qcom/audio/configs/sdm670/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
hardware/qcom/audio/configs/sdm670/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
hardware/qcom/audio/configs/sdm670/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
- hardware/qcom/audio/configs/sdm670/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
- vendor/qcom/proprietary/mm-audio/audio-log-utils/audio_dynamic_log.xml:$(TARGET_COPY_OUT_VENDOR)/data/vendor/misc/audio/audio_dynamic_log.xml
+ hardware/qcom/audio/configs/sdm670/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
diff --git a/configs/sdm845/audio_platform_info_i2s.xml b/configs/sdm845/audio_platform_info_i2s.xml
index 5458b60..0dbc7c9 100644
--- a/configs/sdm845/audio_platform_info_i2s.xml
+++ b/configs/sdm845/audio_platform_info_i2s.xml
@@ -25,11 +25,19 @@
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<audio_platform_info_i2s>
- <device name="SND_DEVICE_IN_HANDSET_MIC" acdb_id="8" />
- <device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="8" />
- <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="8" />
- <device name="SND_DEVICE_OUT_HANDSET" acdb_id="10" />
- <device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="10" />
- <device name="SND_DEVICE_OUT_SPEAKER" acdb_id="10" />
- <device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="10" />
+ <acdb_ids>
+ <device name="SND_DEVICE_IN_HANDSET_MIC" acdb_id="8" />
+ <device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="8" />
+ <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="8" />
+ <device name="SND_DEVICE_OUT_HANDSET" acdb_id="10" />
+ <device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="10" />
+ <device name="SND_DEVICE_OUT_SPEAKER" acdb_id="10" />
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="10" />
+ </acdb_ids>
+ <pcm_ids>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="2"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="2"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="3"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="3"/>
+ </pcm_ids>
</audio_platform_info_i2s>
diff --git a/configs/sdm845/mixer_paths_i2s.xml b/configs/sdm845/mixer_paths_i2s.xml
index fa8377b..10d5ec5 100644
--- a/configs/sdm845/mixer_paths_i2s.xml
+++ b/configs/sdm845/mixer_paths_i2s.xml
@@ -68,15 +68,30 @@
<ctl name="SLIM RX3 MUX" value="AIF1_PB" />
<ctl name="CLASS_H_DSM MUX" value="ZERO" />
+ <!-- Multimode Voice1 -->
+ <ctl name="Voice Stub Tx Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="QUAT_MI2S_RX_Voice Mixer Voice Stub" value="0" />
+ <ctl name="Voice Stub Tx Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="TERT_MI2S_RX_Voice Mixer Voice Stub" value="0" />
+ <ctl name="QUAT_MI2S_RX Port Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="TERT_MI2S_RX Port Mixer QUAT_MI2S_TX" value="0" />
+ <!-- Multimode Voice1 end -->
+
+ <!-- Multimode Voice2 -->
+ <ctl name="Voice2 Stub Tx Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="QUAT_MI2S_RX_Voice Mixer Voice2 Stub" value="0" />
+ <ctl name="Voice2 Stub Tx Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="TERT_MI2S_RX_Voice Mixer Voice2 Stub" value="0" />
+ <ctl name="QUAT_MI2S_RX Port Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="TERT_MI2S_RX Port Mixer QUAT_MI2S_TX" value="0" />
+ <!-- Multimode Voice2 end -->
+
+
<!-- RT Proxy Cal -->
<ctl name="RT_PROXY_1_RX SetCalMode" value="CAL_MODE_NONE" />
<ctl name="RT_PROXY_1_TX SetCalMode" value="CAL_MODE_NONE" />
<!-- RT Proxy Cal end -->
- <!-- 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="deep-buffer-playback">
<ctl name="AUX_PCM_RX Audio Mixer MultiMedia1" value="1" />
@@ -86,10 +101,6 @@
<ctl name="AUX_PCM_RX Audio Mixer MultiMedia5" value="1" />
</path>
- <path name="low-latency-playback resume">
- <ctl name="MultiMedia5_RX QOS Vote" value="Enable" />
- </path>
-
<path name="compress-offload-playback">
<ctl name="AUX_PCM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -102,6 +113,28 @@
<ctl name="MultiMedia8 Mixer AUX_PCM_UL_TX" value="1" />
</path>
+ <path name="voicemmode1-call">
+ <ctl name="Voice Stub Tx Mixer TERT_MI2S_TX" value="1" />
+ <ctl name="QUAT_MI2S_RX_Voice Mixer Voice Stub" value="1" />
+ <ctl name="Voice Stub Tx Mixer QUAT_MI2S_TX" value="1" />
+ <ctl name="TERT_MI2S_RX_Voice Mixer Voice Stub" value="1" />
+ <ctl name="QUAT_MI2S_RX Port Mixer TERT_MI2S_TX" value="1" />
+ <ctl name="TERT_MI2S_RX Port Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="voicemmode2-call">
+ <ctl name="Voice2 Stub Tx Mixer TERT_MI2S_TX" value="1" />
+ <ctl name="QUAT_MI2S_RX_Voice Mixer Voice2 Stub" value="1" />
+ <ctl name="Voice2 Stub Tx Mixer QUAT_MI2S_TX" value="1" />
+ <ctl name="TERT_MI2S_RX_Voice Mixer Voice2 Stub" value="1" />
+ <ctl name="QUAT_MI2S_RX Port Mixer TERT_MI2S_TX" value="1" />
+ <ctl name="TERT_MI2S_RX Port Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="gsm-mode">
+ <ctl name="GSM mode Enable" value="ON" />
+ </path>
+
<!-- These are actual sound device specific mixer settings -->
<path name="adc1">
<ctl name="AIF1_CAP Mixer SLIM TX9" value="1"/>
@@ -111,10 +144,11 @@
</path>
<path name="adc2">
- <ctl name="AIF1_CAP Mixer SLIM TX9" value="1"/>
- <ctl name="QUAT_MI2S_TX Channels" value="One" />
- <ctl name="SLIM TX9 MUX" value="DEC5" />
- <ctl name="DEC5 MUX" value="ADC2" />
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="AIF1_CAP Mixer SLIM TX8" value="1"/>
+ <ctl name="SLIM TX8 MUX" value="DEC8" />
+ <ctl name="ADC MUX8" value="AMIC" />
+ <ctl name="AMIC MUX8" value="ADC2" />
</path>
<path name="dmic1">
@@ -176,23 +210,20 @@
</path>
<path name="headphones">
+ <ctl name="SLIM RX2 MUX" value="AIF1_PB" />
<ctl name="SLIM RX3 MUX" value="AIF1_PB" />
- <ctl name="SLIM RX4 MUX" value="AIF1_PB" />
- <ctl name="QUAT_MI2S_RX Channels" value="Two" />
- <ctl name="RX1 MIX1 INP1" value="RX3" />
- <ctl name="RX2 MIX1 INP1" value="RX4" />
- <ctl name="CLASS_H_DSM MUX" value="DSM_HPHL_RX1" />
- <ctl name="HPHL DAC Switch" value="1" />
+ <ctl name="MI2S_RX Channels" value="Two" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX2" />
+ <ctl name="RX INT2_1 MIX1 INP0" value="RX3" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT2 DEM MUX" value="CLSH_DSM_OUT" />
<ctl name="COMP1 Switch" value="1" />
- </path>
-
- <path name="line">
- <path name="headphones" />
+ <ctl name="COMP2 Switch" value="1" />
</path>
<path name="headset-mic">
<path name="adc2" />
- <ctl name="ADC2 Volume" value="13" />
+ <ctl name="DEC8 Volume" value="84" />
</path>
<path name="voice-handset">
@@ -215,10 +246,6 @@
<path name="headphones" />
</path>
- <path name="voice-line">
- <path name="voice-headphones" />
- </path>
-
<path name="voice-headset-mic">
<path name="headset-mic" />
<path name="sidetone-headphones" />
@@ -231,10 +258,6 @@
<ctl name="COMP0 Switch" value="1" />
</path>
- <path name="speaker-and-line">
- <path name="speaker-and-headphones" />
- </path>
-
<path name="voice-rec-mic">
<path name="handset-mic" />
</path>
diff --git a/configs/sdm845/sdm845.mk b/configs/sdm845/sdm845.mk
index 72e00c9..e6f2b3d 100644
--- a/configs/sdm845/sdm845.mk
+++ b/configs/sdm845/sdm845.mk
@@ -88,8 +88,7 @@
hardware/qcom/audio/configs/sdm845/sound_trigger_mixer_paths_wcd9340.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9340.xml \
hardware/qcom/audio/configs/sdm845/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
hardware/qcom/audio/configs/sdm845/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
- hardware/qcom/audio/configs/sdm845/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
- vendor/qcom/proprietary/mm-audio/audio-log-utils/audio_dynamic_log.xml:$(TARGET_COPY_OUT_VENDOR)/data/vendor/misc/audio/audio_dynamic_log.xml
+ hardware/qcom/audio/configs/sdm845/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
diff --git a/hal/audio_extn/keep_alive.c b/hal/audio_extn/keep_alive.c
index 3e9a91c..dad4946 100644
--- a/hal/audio_extn/keep_alive.c
+++ b/hal/audio_extn/keep_alive.c
@@ -124,7 +124,7 @@
if (cmd == NULL) {
ALOGE("%s: cmd is NULL", __func__);
- return -ENOMEM;
+ return;
}
cmd->req = r;
diff --git a/hal/audio_extn/qaf.c b/hal/audio_extn/qaf.c
index 44d471c..20d0ae4 100644
--- a/hal/audio_extn/qaf.c
+++ b/hal/audio_extn/qaf.c
@@ -2541,7 +2541,12 @@
struct stream_out *out = (struct stream_out *)stream;
struct qaf_module* qaf_mod = get_qaf_module_for_input_stream(out);
- if (!qaf_mod) return;
+ if (!qaf_mod) {
+ DEBUG_MSG("qaf module is NULL, by passing qaf on close output stream");
+ /*closing non-MS12/default output stream opened with qaf */
+ adev_close_output_stream(dev, stream);
+ return;
+ }
DEBUG_MSG("stream_handle(%p) format = %x", out, out->format);
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index 9f99a94..4b48e3d 100644
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -705,7 +705,7 @@
if (!strncmp("true", value, sizeof("true"))) {
if ((popcount(channel_mask) > 2) &&
(sample_rate > CODEC_BACKEND_DEFAULT_SAMPLE_RATE) &&
- !(flags & AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH)) {
+ !(flags & (audio_output_flags_t)AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH)) {
sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
ALOGD("%s: MCH session defaulting sample rate to %d",
__func__, sample_rate);
@@ -717,7 +717,7 @@
* Set Bit Width to 16. output will be 16 bit
* post DoP in ASM.
*/
- if ((flags & AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH) &&
+ if ((flags & (audio_output_flags_t)AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH) &&
(format == AUDIO_FORMAT_DSD)) {
bit_width = 16;
if (sample_rate == INPUT_SAMPLING_RATE_DSD64)
@@ -951,7 +951,8 @@
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_FLAG_COMPRESS_PASSTHROUGH))
+ !(usecase->stream.out->flags &
+ (audio_output_flags_t)AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH))
sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
}
@@ -985,12 +986,12 @@
*/
list_for_each(node, &adev->streams_output_cfg_list) {
s_info = node_to_item(node, struct streams_io_cfg, list);
- if (s_info->flags.out_flags == (AUDIO_OUTPUT_FLAG_BD |
+ if (s_info->flags.out_flags == (audio_output_flags_t)(AUDIO_OUTPUT_FLAG_BD |
AUDIO_OUTPUT_FLAG_DIRECT_PCM |
AUDIO_OUTPUT_FLAG_DIRECT))
bd_app_type = s_info->app_type_cfg.app_type;
}
- if (usecase->stream.out->flags == AUDIO_OUTPUT_FLAG_INTERACTIVE)
+ if (usecase->stream.out->flags == (audio_output_flags_t)AUDIO_OUTPUT_FLAG_INTERACTIVE)
app_type = bd_app_type;
else
app_type = usecase->stream.out->app_type_cfg.app_type;
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 3ba3f77..be65139 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -5628,12 +5628,10 @@
goto error_open;
}
- if (out->devices & AUDIO_DEVICE_OUT_AUX_DIGITAL) {
- if(config->offload_info.format == 0)
- config->offload_info.format = out->supported_formats[0];
- if (config->offload_info.sample_rate == 0)
- config->offload_info.sample_rate = out->supported_sample_rates[0];
- }
+ if (config->offload_info.format == 0)
+ config->offload_info.format = config->format;
+ if (config->offload_info.sample_rate == 0)
+ config->offload_info.sample_rate = config->sample_rate;
if (!is_supported_format(config->offload_info.format) &&
!audio_extn_passthru_is_supported_format(config->offload_info.format)) {
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 45b02e3..50ab6f9 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -6708,6 +6708,9 @@
} else
*sample_rate = stream_sr;
+ if (snd_device == SND_DEVICE_OUT_HDMI)
+ *sample_rate = platform_get_supported_sampling_rate_on_hdmi(stream_sr);
+
ALOGI("sn_device %d device sr %d stream sr %d copp sr %d", snd_device, device_sr, stream_sr
, *sample_rate);
@@ -7811,6 +7814,48 @@
return MAX_CODEC_BACKENDS;
}
+int platform_get_supported_sampling_rate_on_hdmi(uint32_t stream_sr)
+{
+ int sample_rate;
+ switch (stream_sr){
+ case 8000:
+ case 11025:
+ case 16000:
+ case 22050:
+ case 32000:
+ case 48000:
+ sample_rate = 48000;
+ break;
+ case 44100:
+ sample_rate = 44100;
+ break;
+ case 64000:
+ case 96000:
+ sample_rate = 96000;
+ break;
+ case 88200:
+ sample_rate = 88200;
+ break;
+ case 176400:
+ sample_rate = 176400;
+ break;
+ case 192000:
+ sample_rate = 192000;
+ break;
+ case 352800:
+ sample_rate = 352800;
+ break;
+ case 384000:
+ sample_rate = 384000;
+ break;
+ case 144000:
+ default:
+ sample_rate = 48000;
+ break;
+ }
+ return sample_rate;
+}
+
#if defined(PLATFORM_MSMFALCON)
int platform_get_mmap_data_fd(void *platform, int fe_dev, int dir, int *fd,
uint32_t *size)
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 64dde86..2f2128a 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -6739,8 +6739,10 @@
} else
*sample_rate = stream_sr;
- ALOGI("sn_device %d device sr %d stream sr %d copp sr %d", snd_device, device_sr, stream_sr
-, *sample_rate);
+ if (snd_device == SND_DEVICE_OUT_HDMI)
+ *sample_rate = platform_get_supported_sampling_rate_on_hdmi(stream_sr);
+
+ ALOGI("sn_device %d device sr %d stream sr %d copp sr %d", snd_device, device_sr, stream_sr, *sample_rate);
}
@@ -7548,6 +7550,47 @@
return MAX_CODEC_BACKENDS;
}
+int platform_get_supported_sampling_rate_on_hdmi(uint32_t stream_sr)
+{
+ int sample_rate;
+ switch (stream_sr){
+ case 8000:
+ case 11025:
+ case 16000:
+ case 22050:
+ case 32000:
+ case 48000:
+ sample_rate = 48000;
+ break;
+ case 44100:
+ sample_rate = 44100;
+ break;
+ case 64000:
+ case 96000:
+ sample_rate = 96000;
+ break;
+ case 88200:
+ sample_rate = 88200;
+ break;
+ case 176400:
+ sample_rate = 176400;
+ break;
+ case 192000:
+ sample_rate = 192000;
+ break;
+ case 352800:
+ sample_rate = 352800;
+ break;
+ case 384000:
+ sample_rate = 384000;
+ break;
+ case 144000:
+ default:
+ sample_rate = 48000;
+ break;
+ }
+ return sample_rate;
+}
#if defined (PLATFORM_MSM8998) || (PLATFORM_SDM845) || (PLATFORM_SDM670)
int platform_get_mmap_data_fd(void *platform, int fe_dev, int dir, int *fd,
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index 387ef25..4fa9442 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -491,7 +491,7 @@
#define FM_RX_VOLUME "PRI MI2S LOOPBACK Volume"
#elif PLATFORM_MSM8996
#define FM_RX_VOLUME "Tert MI2S LOOPBACK Volume"
-#elif defined (PLATFORM_MSM8998) || defined (PLATFORM_SDM845) || defined (PLATFORM_MSMFALCON)
+#elif defined (PLATFORM_MSM8998) || defined (PLATFORM_SDM845) || defined (PLATFORM_MSMFALCON) || defined (PLATFORM_SDM670)
#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 4407d2c..0674761 100644
--- a/hal/platform_api.h
+++ b/hal/platform_api.h
@@ -184,6 +184,7 @@
int platform_set_channel_allocation(void *platform, int channel_alloc);
int platform_get_edid_info(void *platform);
+int platform_get_supported_sampling_rate_on_hdmi(uint32_t stream_sr);
int platform_set_channel_map(void *platform, int ch_count, char *ch_map,
int snd_id);
int platform_set_stream_channel_map(void *platform, audio_channel_mask_t channel_mask,