Merge "configs: add mmap-playback paths for buses"
diff --git a/configs/msmnile_au/audio_platform_info.xml b/configs/msmnile_au/audio_platform_info.xml
index 76fcc10..90cc644 100644
--- a/configs/msmnile_au/audio_platform_info.xml
+++ b/configs/msmnile_au/audio_platform_info.xml
@@ -202,6 +202,12 @@
<device name="SND_DEVICE_IN_ICC" interface="TERT_TDM_TX_0"/>
<!-- multi-mic surround ECNS mixer path definition -->
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP_MMSECNS" backend="bt-sco-mmsecns" interface="TERT_TDM_TX_0"/>
+ <!-- bus device mixer path definitions -->
+ <device name="SND_DEVICE_OUT_BUS_SYS" backend="sys-bus-out" interface="TERT_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_BUS_NAV" backend="nav-bus-out" interface="TERT_TDM_RX_1"/>
+ <device name="SND_DEVICE_OUT_BUS_PHN" backend="phone-bus-out" interface="TERT_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_BUS_PAX" backend="pax-bus-out" interface="QUAT_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_BUS_RSE" backend="rse-bus-out" interface="QUIN_TDM_RX_0"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msmnile_au/audio_policy_configuration.xml b/configs/msmnile_au/audio_policy_configuration.xml
index 9df9d5e..4193abd 100644
--- a/configs/msmnile_au/audio_policy_configuration.xml
+++ b/configs/msmnile_au/audio_policy_configuration.xml
@@ -393,15 +393,15 @@
<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"/>
+ sources="sys_notification,mmap_no_irq_out"/>
<route type="mix" sink="Nav Guidance Bus"
- sources="nav_guidance"/>
+ sources="nav_guidance,mmap_no_irq_out"/>
<route type="mix" sink="Phone Bus"
- sources="phone"/>
+ sources="phone,mmap_no_irq_out"/>
<route type="mix" sink="Front Passenger Bus"
- sources="front_passenger"/>
+ sources="front_passenger,mmap_no_irq_out"/>
<route type="mix" sink="Rear Seat Bus"
- sources="rear_seat"/>
+ sources="rear_seat,mmap_no_irq_out"/>
<route type="mix" sink="Earpiece"
sources="primary output,raw,deep_buffer,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 5f7cca7..3c21e2e 100644
--- a/configs/msmnile_au/mixer_paths_adp.xml
+++ b/configs/msmnile_au/mixer_paths_adp.xml
@@ -1308,27 +1308,27 @@
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
</path>
- <path name="sys-notification-playback">
+ <path name="sys-notification-playback sys-bus-out">
<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">
+ <path name="nav-guidance-playback nav-bus-out">
<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">
+ <path name="phone-playback phone-bus-out">
<ctl name="TERT_TDM_RX_2 Channels" value="One" />
<ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia10" value="1" />
</path>
- <path name="front-passenger-playback">
+ <path name="front-passenger-playback pax-bus-out">
<ctl name="QUAT_TDM_RX_0 Channels" value="Eight" />
<ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia23" value="1" />
</path>
- <path name="rear-seat-playback">
+ <path name="rear-seat-playback rse-bus-out">
<ctl name="QUIN_TDM_RX_0 Channels" value="Sixteen" />
<ctl name="QUIN_TDM_RX_0 Audio Mixer MultiMedia22" value="1" />
</path>
@@ -2724,6 +2724,26 @@
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
+ <path name="mmap-playback sys-bus-out">
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback nav-bus-out">
+ <ctl name="TERT_TDM_RX_1 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback phone-bus-out">
+ <ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback pax-bus-out">
+ <ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback rse-bus-out">
+ <ctl name="QUIN_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
<path name="mmap-playback headphones">
<ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
</path>
diff --git a/configs/msmsteppe_au/audio_platform_info.xml b/configs/msmsteppe_au/audio_platform_info.xml
index 9e11e89..8cc7b04 100644
--- a/configs/msmsteppe_au/audio_platform_info.xml
+++ b/configs/msmsteppe_au/audio_platform_info.xml
@@ -202,6 +202,12 @@
<device name="SND_DEVICE_IN_ICC" interface="TERT_TDM_TX_0"/>
<!-- multi-mic surround ECNS mixer path definition -->
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP_MMSECNS" backend="bt-sco-mmsecns" interface="TERT_TDM_TX_0"/>
+ <!-- bus device mixer path definitions -->
+ <device name="SND_DEVICE_OUT_BUS_SYS" backend="sys-bus-out" interface="TERT_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_BUS_NAV" backend="nav-bus-out" interface="TERT_TDM_RX_1"/>
+ <device name="SND_DEVICE_OUT_BUS_PHN" backend="phone-bus-out" interface="TERT_TDM_RX_2"/>
+ <device name="SND_DEVICE_OUT_BUS_PAX" backend="pax-bus-out" interface="QUAT_TDM_RX_0"/>
+ <device name="SND_DEVICE_OUT_BUS_RSE" backend="rse-bus-out" interface="QUIN_TDM_RX_0"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msmsteppe_au/audio_policy_configuration.xml b/configs/msmsteppe_au/audio_policy_configuration.xml
index 7229118..24d1447 100644
--- a/configs/msmsteppe_au/audio_policy_configuration.xml
+++ b/configs/msmsteppe_au/audio_policy_configuration.xml
@@ -393,15 +393,15 @@
<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"/>
+ sources="sys_notification,mmap_no_irq_out"/>
<route type="mix" sink="Nav Guidance Bus"
- sources="nav_guidance"/>
+ sources="nav_guidance,mmap_no_irq_out"/>
<route type="mix" sink="Phone Bus"
- sources="phone"/>
+ sources="phone,mmap_no_irq_out"/>
<route type="mix" sink="Front Passenger Bus"
- sources="front_passenger"/>
+ sources="front_passenger,mmap_no_irq_out"/>
<route type="mix" sink="Rear Seat Bus"
- sources="rear_seat"/>
+ sources="rear_seat,mmap_no_irq_out"/>
<route type="mix" sink="Earpiece"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Speaker"
diff --git a/configs/msmsteppe_au/mixer_paths_adp.xml b/configs/msmsteppe_au/mixer_paths_adp.xml
index 80334bd..2dfca35 100644
--- a/configs/msmsteppe_au/mixer_paths_adp.xml
+++ b/configs/msmsteppe_au/mixer_paths_adp.xml
@@ -1150,27 +1150,27 @@
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
</path>
- <path name="sys-notification-playback">
+ <path name="sys-notification-playback sys-bus-out">
<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">
+ <path name="nav-guidance-playback nav-bus-out">
<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">
+ <path name="phone-playback phone-bus-out">
<ctl name="TERT_TDM_RX_2 Channels" value="One" />
<ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia10" value="1" />
</path>
- <path name="front-passenger-playback">
+ <path name="front-passenger-playback pax-bus-out">
<ctl name="QUAT_TDM_RX_0 Channels" value="Eight" />
<ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia23" value="1" />
</path>
- <path name="rear-seat-playback">
+ <path name="rear-seat-playback rse-bus-out">
<ctl name="QUAT_TDM_RX_1 Channels" value="Eight" />
<ctl name="QUAT_TDM_RX_1 Audio Mixer MultiMedia22" value="1" />
</path>
@@ -2393,6 +2393,26 @@
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
</path>
+ <path name="mmap-playback sys-bus-out">
+ <ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback nav-bus-out">
+ <ctl name="TERT_TDM_RX_1 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback phone-bus-out">
+ <ctl name="TERT_TDM_RX_2 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback pax-bus-out">
+ <ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback rse-bus-out">
+ <ctl name="QUIN_TDM_RX_0 Audio Mixer MultiMedia16" value="1" />
+ </path>
+
<path name="mmap-playback headphones">
<ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia16" value="1" />
</path>
diff --git a/hal/audio_extn/auto_hal.c b/hal/audio_extn/auto_hal.c
index ca3cd6b..9276c9c 100755
--- a/hal/audio_extn/auto_hal.c
+++ b/hal/audio_extn/auto_hal.c
@@ -841,6 +841,8 @@
snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
break;
case USECASE_AUDIO_PLAYBACK_MEDIA:
+ snd_device = SND_DEVICE_OUT_BUS_MEDIA;
+ break;
case USECASE_AUDIO_PLAYBACK_OFFLOAD:
case USECASE_AUDIO_PLAYBACK_OFFLOAD2:
case USECASE_AUDIO_PLAYBACK_OFFLOAD3:
@@ -854,6 +856,33 @@
case USECASE_AUDIO_PLAYBACK_MMAP:
case USECASE_AUDIO_PLAYBACK_VOIP:
snd_device = SND_DEVICE_OUT_BUS_MEDIA;
+ /* Override the snd_device based on the bus address if available */
+ if (usecase->stream.out->car_audio_stream) {
+ switch (usecase->stream.out->car_audio_stream) {
+ case CAR_AUDIO_STREAM_MEDIA:
+ snd_device = SND_DEVICE_OUT_BUS_MEDIA;
+ break;
+ case CAR_AUDIO_STREAM_SYS_NOTIFICATION:
+ snd_device = SND_DEVICE_OUT_BUS_SYS;
+ break;
+ case CAR_AUDIO_STREAM_NAV_GUIDANCE:
+ snd_device = SND_DEVICE_OUT_BUS_NAV;
+ break;
+ case CAR_AUDIO_STREAM_PHONE:
+ snd_device = SND_DEVICE_OUT_BUS_PHN;
+ break;
+ case CAR_AUDIO_STREAM_FRONT_PASSENGER:
+ snd_device = SND_DEVICE_OUT_BUS_PAX;
+ break;
+ case CAR_AUDIO_STREAM_REAR_SEAT:
+ snd_device = SND_DEVICE_OUT_BUS_RSE;
+ break;
+ default:
+ ALOGE("%s: Car audio stream %x not supported", __func__,
+ usecase->stream.out->car_audio_stream);
+ return -EINVAL;
+ }
+ }
break;
case USECASE_AUDIO_PLAYBACK_SYS_NOTIFICATION:
snd_device = SND_DEVICE_OUT_BUS_SYS;