configs: msmnile_au: add routing for car streams
Update audio policy configuration and mixer paths
to support routing of the car streams to bus devices
for automotive platforms.
Add audio HAL maj version 3 for automotive.
Enable auto hal audio extension feature flag.
Change-Id: Ib35e1e531fcb305b328767fb53bfcb403aaa5d21
diff --git a/configs/msmnile_au/audio_platform_info.xml b/configs/msmnile_au/audio_platform_info.xml
index 1dbaac1..e02397c 100644
--- a/configs/msmnile_au/audio_platform_info.xml
+++ b/configs/msmnile_au/audio_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2014, 2016-2018, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2014, 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 -->
@@ -29,6 +29,10 @@
<device name="SND_DEVICE_OUT_HANDSET" acdb_id="78"/>
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="78"/>
<device name="SND_DEVICE_OUT_HEADPHONES" acdb_id="78"/>
+ <device name="SND_DEVICE_OUT_BUS_MEDIA" acdb_id="78"/>
+ <device name="SND_DEVICE_OUT_BUS_SYS" acdb_id="78"/>
+ <device name="SND_DEVICE_OUT_BUS_NAV" acdb_id="14"/>
+ <device name="SND_DEVICE_OUT_BUS_PHN" acdb_id="94"/>
<device name="SND_DEVICE_OUT_BT_SCO" acdb_id="94"/>
<device name="SND_DEVICE_OUT_BT_SCO_WB" acdb_id="94"/>
<device name="SND_DEVICE_OUT_BT_A2DP" acdb_id="78"/>
@@ -36,6 +40,7 @@
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="94"/>
<device name="SND_DEVICE_IN_HANDSET_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="11"/>
+ <device name="SND_DEVICE_IN_BUS" acdb_id="11"/>
<device name="SND_DEVICE_IN_HEADSET_MIC" acdb_id="11"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="95"/>
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" acdb_id="95"/>
diff --git a/configs/msmnile_au/audio_policy_configuration.xml b/configs/msmnile_au/audio_policy_configuration.xml
index e4aec16..fcba319 100644
--- a/configs/msmnile_au/audio_policy_configuration.xml
+++ b/configs/msmnile_au/audio_policy_configuration.xml
@@ -23,7 +23,6 @@
<!-- Global configuration Decalaration -->
<globalConfiguration speaker_drc_enabled="true"/>
-
<!-- Modules section:
There is one section per audio HW module present on the platform.
Each module section will contains two mandatory tags for audio HAL “halVersion” and “name”.
@@ -33,6 +32,11 @@
“devicePorts”: a list of device descriptors for all input and output devices accessible via this
module.
This contains both permanently attached devices and removable devices.
+ "gain": constraints applied to the millibel values:
+ - maxValueMB >= minValueMB
+ - defaultValueMB >= minValueMB && defaultValueMB <= maxValueMB
+ - (maxValueMB - minValueMB) % stepValueMB == 0
+ - (defaultValueMB - minValueMB) % stepValueMB == 0
“mixPorts”: listing all output and input streams exposed by the audio HAL
“routes”: list of possible connections between input and output devices or between stream and
devices.
@@ -47,18 +51,37 @@
-->
<modules>
<!-- Primary Audio HAL -->
- <module name="primary" halVersion="2.0">
+ <module name="primary" halVersion="3.0">
<attachedDevices>
- <item>Earpiece</item>
- <item>Speaker</item>
+ <item>Media Bus</item>
+ <item>Sys Notification Bus</item>
+ <item>Nav Guidance Bus</item>
+ <item>Phone Bus</item>
<item>Telephony Tx</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>FM Tuner</item>
<item>Telephony Rx</item>
</attachedDevices>
- <defaultOutputDevice>Speaker</defaultOutputDevice>
+ <defaultOutputDevice>Media Bus</defaultOutputDevice>
<mixPorts>
+ <mixPort name="media" role="source"
+ flags="AUDIO_OUTPUT_FLAG_PRIMARY">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="sys_notification" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="nav_guidance" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
+ <mixPort name="phone" role="source">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </mixPort>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_PRIMARY">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
@@ -197,6 +220,42 @@
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
+ <devicePort tagName="Media Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
+ address="BUS00_MEDIA">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
+ <devicePort tagName="Sys Notification Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
+ address="BUS01_SYS_NOTIFICATION">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
+ <devicePort tagName="Nav Guidance Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
+ address="BUS02_NAV_GUIDANCE">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
+ <devicePort tagName="Phone Bus" role="sink" type="AUDIO_DEVICE_OUT_BUS"
+ address="BUS03_PHONE">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ <gains>
+ <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+ minValueMB="-6000" maxValueMB="600" defaultValueMB="0" stepValueMB="100"/>
+ </gains>
+ </devicePort>
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
@@ -295,6 +354,14 @@
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
+ <route type="mix" sink="Media Bus"
+ sources="media,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
+ <route type="mix" sink="Sys Notification Bus"
+ sources="sys_notification"/>
+ <route type="mix" sink="Nav Guidance Bus"
+ sources="nav_guidance"/>
+ <route type="mix" sink="Phone Bus"
+ sources="phone"/>
<route type="mix" sink="Earpiece"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Speaker"
diff --git a/configs/msmnile_au/mixer_paths_adp.xml b/configs/msmnile_au/mixer_paths_adp.xml
index 78f815a..eb540c2 100644
--- a/configs/msmnile_au/mixer_paths_adp.xml
+++ b/configs/msmnile_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 -->
@@ -1387,6 +1387,27 @@
<path name="compress-offload-playback9" />
</path>
+ <!-- The following use cases are used for car streams -->
+ <path name="media-playback">
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="sys-notification-playback">
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="nav-guidance-playback">
+ <ctl name="TERT_TDM_RX_1 Channels" value="One" />
+ <ctl name="TERT_TDM_RX_1 Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="phone-playback">
+ <ctl name="TERT_TDM_RX_2 Channels" value="One" />
+ <ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
<path name="audio-record">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
@@ -1957,9 +1978,15 @@
</path>
<path name="speaker-adp">
+ <!--ctl name="TERT_TDM_RX_0 Channels" value="Six" /-->
</path>
<path name="speaker-custom">
+ <!--ctl name="TERT_TDM_RX_0 Channels" value="Six" /-->
+ </path>
+
+ <path name="bus-speaker">
+ <!--ctl name="TERT_TDM_RX_0 Channels" value="Six" /-->
</path>
<path name="sidetone-iir">
diff --git a/configs/msmnile_au/mixer_paths_custom.xml b/configs/msmnile_au/mixer_paths_custom.xml
index 774ec65..5393e32 100644
--- a/configs/msmnile_au/mixer_paths_custom.xml
+++ b/configs/msmnile_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 -->
@@ -1383,6 +1383,27 @@
<path name="compress-offload-playback9" />
</path>
+ <!-- The following use cases are used for car streams -->
+ <path name="media-playback">
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="sys-notification-playback">
+ <ctl name="TERT_TDM_RX_0 Channels" value="Six" />
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="nav-guidance-playback">
+ <ctl name="TERT_TDM_RX_1 Channels" value="One" />
+ <ctl name="TERT_TDM_RX_1 Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="phone-playback">
+ <ctl name="TERT_TDM_RX_2 Channels" value="One" />
+ <ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia10" value="1" />
+ </path>
+
<path name="audio-record">
<ctl name="TERT_TDM_TX_0 Channels" value="One" />
<ctl name="MultiMedia1 Mixer TERT_TDM_TX_0" value="1" />
@@ -1953,9 +1974,15 @@
</path>
<path name="speaker-adp">
+ <!--ctl name="TERT_TDM_RX_0 Channels" value="Six" /-->
</path>
<path name="speaker-custom">
+ <!--ctl name="TERT_TDM_RX_0 Channels" value="Six" /-->
+ </path>
+
+ <path name="bus-speaker">
+ <!--ctl name="TERT_TDM_RX_0 Channels" value="Six" /-->
</path>
<path name="sidetone-iir">
diff --git a/configs/msmnile_au/msmnile_au.mk b/configs/msmnile_au/msmnile_au.mk
index 5a7366f..0096a06 100644
--- a/configs/msmnile_au/msmnile_au.mk
+++ b/configs/msmnile_au/msmnile_au.mk
@@ -69,8 +69,8 @@
AUDIO_FEATURE_ENABLED_BATTERY_LISTENER := false
##AUDIO_FEATURE_FLAGS
+AUDIO_FEATURE_ENABLED_AUTO_HAL := true
AUDIO_FEATURE_ENABLED_EXT_HW_PLUGIN := true
-AUDIO_FEATURE_ENABLED_BUS_ADDRESS := true
AUDIO_FEATURE_ENABLED_AUDIO_CONTROL_HAL := true
##AUTOMOTIVE_AUDIO_FEATURE_FLAGS
@@ -110,6 +110,10 @@
PRODUCT_COPY_FILES += \
vendor/qcom/opensource/audio-hal/primary-hal/configs/msmnile_au/listen_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/listen_platform_info.xml
+#Audio HAL version
+PRODUCT_PROPERTY_OVERRIDES += \
+vendor.audio.hal.maj.version=3
+
# Reduce client buffer size for fast audio output tracks
PRODUCT_PROPERTY_OVERRIDES += \
af.fast_track_multiplier=1
@@ -273,3 +277,8 @@
android.hardware.audio@4.0-impl \
android.hardware.audio.effect@4.0 \
android.hardware.audio.effect@4.0-impl
+
+# for HIDL related audiocontrol packages
+PRODUCT_PACKAGES += \
+ vendor.qti.hardware.automotive.audiocontrol@1.0-service \
+ android.hardware.automotive.audiocontrol@1.0