Merge "audio: Add support for quad EC capture"
diff --git a/configs/msmnile_au/audio_policy_configuration.xml b/configs/msmnile_au/audio_policy_configuration.xml
index d1df042..f791840 100644
--- a/configs/msmnile_au/audio_policy_configuration.xml
+++ b/configs/msmnile_au/audio_policy_configuration.xml
@@ -270,14 +270,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
- <devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
- </devicePort>
- <devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
- </devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
@@ -308,18 +300,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
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_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
- <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
- </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_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
- <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
- </devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
@@ -342,29 +322,24 @@
sources="primary output"/>
<route type="mix" sink="BT SCO All"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
- <route type="mix" sink="USB Device Out"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
- <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"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
- sources="Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In,Telephony Rx"/>
+ sources="Wired Headset Mic,BT SCO Headset Mic,FM Tuner,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,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
- <route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
</routes>
</module>
@@ -392,24 +367,7 @@
</module>
<!-- Usb Audio HAL -->
- <module name="usb" halVersion="2.0">
- <mixPorts>
- <mixPort name="usb_accessory output" role="source">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
- </mixPort>
- </mixPorts>
- <devicePorts>
- <devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
- </devicePort>
- </devicePorts>
- <routes>
- <route type="mix" sink="USB Host Out"
- sources="usb_accessory output"/>
- </routes>
- </module>
+ <xi:include href="/vendor/etc/usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
diff --git a/configs/msmsteppe_au/audio_policy_configuration.xml b/configs/msmsteppe_au/audio_policy_configuration.xml
index 1daf1dd..52e998c 100644
--- a/configs/msmsteppe_au/audio_policy_configuration.xml
+++ b/configs/msmsteppe_au/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2018, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2019, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -270,14 +270,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
- <devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
- </devicePort>
- <devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
- </devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
@@ -308,18 +300,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
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_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
- <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
- </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_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
- <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
- samplingRates="44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
- </devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
@@ -342,29 +322,24 @@
sources="primary output"/>
<route type="mix" sink="BT SCO All"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
- <route type="mix" sink="USB Device Out"
- sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
- <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"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
- sources="Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In,Telephony Rx"/>
+ sources="Wired Headset Mic,BT SCO Headset Mic,FM Tuner,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,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
- <route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
</routes>
</module>
@@ -392,24 +367,7 @@
</module>
<!-- Usb Audio HAL -->
- <module name="usb" halVersion="2.0">
- <mixPorts>
- <mixPort name="usb_accessory output" role="source">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
- </mixPort>
- </mixPorts>
- <devicePorts>
- <devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
- <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
- </devicePort>
- </devicePorts>
- <routes>
- <route type="mix" sink="USB Host Out"
- sources="usb_accessory output"/>
- </routes>
- </module>
+ <xi:include href="/vendor/etc/usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 00d91ba..d8deae8 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -169,6 +169,7 @@
#define EVENT_EXTERNAL_MIC "qc_ext_mic"
#define MAX_CAL_NAME 20
#define MAX_MIME_TYPE_LENGTH 30
+#define MAX_SND_CARD_NAME_LENGTH 100
#define GET_IN_DEVICE_INDEX(SND_DEVICE) ((SND_DEVICE) - (SND_DEVICE_IN_BEGIN))
@@ -1942,56 +1943,32 @@
plat_data->hw_dep_fd = fd;
}
-const char * platform_get_snd_card_name_for_acdb_loader(const char *snd_card_name) {
+const char * platform_get_snd_card_name_for_acdb_loader(const char *snd_card_name)
+{
+ const char *acdb_card_name = NULL;
+ char *substring = NULL;
+ char string[MAX_SND_CARD_NAME_LENGTH] = {0};
+ int length = 0;
- if(snd_card_name == NULL)
+ if (snd_card_name == NULL)
return NULL;
- // Both tasha & tasha-lite uses tasha ACDB files
- // simulate sound card name for tasha lite, so that
- // ACDB module loads tasha ACDB files for tasha lite
- if(!strncmp(snd_card_name, "msm8976-tashalite-snd-card",
- sizeof("msm8976-tashalite-snd-card"))) {
- ALOGD("using tasha ACDB files for tasha-lite");
- return "msm8976-tasha-snd-card";
+ /* Both tasha & tasha-lite uses tasha ACDB files
+ simulate sound card name for tasha lite, so that
+ ACDB module loads tasha ACDB files for tasha lite */
+ if ((substring = strstr(snd_card_name, "tashalite")) ||
+ (substring = strstr(snd_card_name, "tasha9326"))) {
+ ALOGD("%s: using tasha ACDB files for tasha-lite", __func__);
+ length = substring - snd_card_name + 1;
+ snprintf(string, length, "%s", snd_card_name);
+ strlcat(string, "tasha-snd-card", sizeof(string));
+ acdb_card_name = strdup(string);
+ return acdb_card_name;
}
-
- if(!strncmp(snd_card_name, "msm8952-tashalite-snd-card",
- sizeof("msm8952-tashalite-snd-card"))) {
- ALOGD("using tasha ACDB files for tasha-lite");
- return "msm8952-tasha-snd-card";
- }
-
- if(!strncmp(snd_card_name, "msm8937-tashalite-snd-card",
- sizeof("msm8937-tashalite-snd-card"))) {
- ALOGD("using tasha ACDB files for tasha-lite");
- return "msm8937-tasha-snd-card";
- }
-
- if(!strncmp(snd_card_name, "msm8953-tashalite-snd-card",
- sizeof("msm8953-tashalite-snd-card"))) {
- ALOGD("using tasha ACDB files for tasha-lite");
- return "msm8953-tasha-snd-card";
- }
-
- if(!strncmp(snd_card_name, "sdm660-tashalite-snd-card",
- sizeof("sdm660-tashalite-snd-card"))) {
- ALOGD("using tasha ACDB files for tasha-lite");
- return "sdm660-tasha-snd-card";
- }
-
- // Both tasha & tasha-lite uses tasha ACDB files
- // simulate sound card name for tasha lite, so that
- // ACDB module loads tasha ACDB files for tasha lite
- if(!strncmp(snd_card_name, "msm8x09-tasha9326-snd-card",
- sizeof("msm8x09-tasha9326-snd-card"))) {
- ALOGD("using tasha ACDB files for tasha-lite");
- return "msm8x09-tasha-snd-card";
- }
- return snd_card_name;
+ acdb_card_name = strdup(snd_card_name);
+ return acdb_card_name;
}
-
int platform_acdb_init(void *platform)
{
struct platform_data *my_data = (struct platform_data *)platform;
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index b0068e0..ae76923 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -153,6 +153,7 @@
#define EVENT_EXTERNAL_MIC "qc_ext_mic"
#define MAX_CAL_NAME 20
#define MAX_MIME_TYPE_LENGTH 30
+#define MAX_SND_CARD_NAME_LENGTH 100
#define GET_IN_DEVICE_INDEX(SND_DEVICE) ((SND_DEVICE) - (SND_DEVICE_IN_BEGIN))
@@ -1870,22 +1871,30 @@
plat_data->hw_dep_fd = fd;
}
-const char * platform_get_snd_card_name_for_acdb_loader(const char *snd_card_name) {
+const char * platform_get_snd_card_name_for_acdb_loader(const char *snd_card_name)
+{
+ const char *acdb_card_name = NULL;
+ char *substring = NULL;
+ char string[MAX_SND_CARD_NAME_LENGTH] = {0};
+ int length = 0;
- if(snd_card_name == NULL)
+ if (snd_card_name == NULL)
return NULL;
- if(!strncmp(snd_card_name, "sdm660-tashalite-snd-card",
- sizeof("sdm660-tashalite-snd-card"))) {
- ALOGD("using tasha ACDB files for tasha-lite");
- return "sdm660-tasha-snd-card";
+ /* Both tasha & tasha-lite uses tasha ACDB files
+ simulate sound card name for tasha lite, so that
+ ACDB module loads tasha ACDB files for tasha lite */
+ if ((substring = strstr(snd_card_name, "tashalite")) ||
+ (substring = strstr(snd_card_name, "tasha9326"))) {
+ ALOGD("%s: using tasha ACDB files for tasha-lite", __func__);
+ length = substring - snd_card_name + 1;
+ snprintf(string, length, "%s", snd_card_name);
+ strlcat(string, "tasha-snd-card", sizeof(string));
+ acdb_card_name = strdup(string);
+ return acdb_card_name;
}
- if(!strncmp(snd_card_name, "sdm670-tashalite-snd-card",
- sizeof("sdm670-tashalite-snd-card"))) {
- ALOGD("using tasha ACDB files for tasha-lite");
- return "sdm670-tasha-snd-card";
- }
- return snd_card_name;
+ acdb_card_name = strdup(snd_card_name);
+ return acdb_card_name;
}
static int platform_acdb_init(void *platform)