Merge "audio: enable CUSTOM_AUDIO_POLICY"
diff --git a/configs/msm8909/audio_platform_info.xml b/configs/msm8909/audio_platform_info.xml
index a0d5728..bed8c4d 100644
--- a/configs/msm8909/audio_platform_info.xml
+++ b/configs/msm8909/audio_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2017 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 -->
@@ -26,6 +26,13 @@
<!-- 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>
+ <pcm_ids>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="34"/>
+ <usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="34"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="35"/>
+ <usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="35"/>
+ </pcm_ids>
+
<interface_names>
<device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="QUATERNARY_MI2S" codec_type="external"/>
<device name="AUDIO_DEVICE_IN_BACK_MIC" interface="QUATERNARY_MI2S" codec_type="external"/>
diff --git a/hal/audio_extn/pm.c b/hal/audio_extn/pm.c
index c52508e..69e19cb 100644
--- a/hal/audio_extn/pm.c
+++ b/hal/audio_extn/pm.c
@@ -32,6 +32,7 @@
#include "pm.h"
#include <cutils/log.h>
+#include <cutils/str_parms.h>
/* Device state*/
#define AUDIO_PARAMETER_KEY_DEV_SHUTDOWN "dev_shutdown"
@@ -98,7 +99,7 @@
}
}
-void audio_extn_pm_event_notifier(void *client_data, enum pm_event event)
+void audio_extn_pm_event_notifier(void *client_data __unused, enum pm_event event)
{
int err, intfd;
diff --git a/hal/msm8916/hw_info.c b/hal/msm8916/hw_info.c
index 5060c77..652afab 100644
--- a/hal/msm8916/hw_info.c
+++ b/hal/msm8916/hw_info.c
@@ -170,6 +170,8 @@
strlcpy(hw_info->name, "apq8009", sizeof(hw_info->name));
} else if (!strcmp(snd_card_name, "mdm9607-tomtom-i2s-snd-card")) {
strlcpy(hw_info->name, "mdm9607", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "mdm-tasha-i2s-snd-card")) {
+ strlcpy(hw_info->name, "mdm-tasha", sizeof(hw_info->name));
} else if (!strcmp(snd_card_name, "msm8909-skuq-snd-card")) {
strlcpy(hw_info->type, "skuq", sizeof(hw_info->type));
strlcpy(hw_info->name, "msm8909", sizeof(hw_info->name));
@@ -202,7 +204,7 @@
strstr(snd_card_name, "msm8937") || strstr(snd_card_name, "msm8917") ||
strstr(snd_card_name, "msm8940") || strstr(snd_card_name, "msm8920") ||
strstr(snd_card_name, "sdm660") || strstr(snd_card_name, "apq8009") ||
- strstr(snd_card_name, "mdm9607")) {
+ strstr(snd_card_name, "mdm9607") || strstr(snd_card_name, "mdm-tasha")) {
ALOGV("8x16 - variant soundcard");
update_hardware_info_8x16(hw_info, snd_card_name);
} else {
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index dfb896c..4a2ebb9 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -76,6 +76,7 @@
#define PLATFORM_INFO_XML_PATH "/etc/audio_platform_info.xml"
#define MIXER_XML_PATH_WCD9326_I2S "/etc/mixer_paths_wcd9326_i2s.xml"
#define MIXER_XML_PATH_WCD9330_I2S "/etc/mixer_paths_wcd9330_i2s.xml"
+#define MIXER_XML_PATH_WCD9335_I2S "/etc/mixer_paths_wcd9335_i2s.xml"
#define MIXER_XML_PATH_SBC "/etc/mixer_paths_sbc.xml"
#else
#define MIXER_XML_PATH "/system/etc/mixer_paths.xml"
@@ -88,8 +89,9 @@
#define MIXER_XML_PATH_WCD9335 "/system/etc/mixer_paths_wcd9335.xml"
#define MIXER_XML_PATH_SKUN "/system/etc/mixer_paths_qrd_skun.xml"
#define PLATFORM_INFO_XML_PATH "/system/etc/audio_platform_info.xml"
-#define MIXER_XML_PATH_WCD9326_I2S "/system/etc/mixer_paths_wcd9326_i2s.xml"
+#define MIXER_XML_PATH_WCD9326_I2S "/system/etc/mixer_paths_wcd9326_i2s.xml"
#define MIXER_XML_PATH_WCD9330_I2S "/system/etc/mixer_paths_wcd9330_i2s.xml"
+#define MIXER_XML_PATH_WCD9335_I2S "/system/etc/mixer_paths_wcd9335_i2s.xml"
#define MIXER_XML_PATH_SBC "/system/etc/mixer_paths_sbc.xml"
#endif
#define MIXER_XML_PATH_SKUN "/system/etc/mixer_paths_qrd_skun.xml"
@@ -946,6 +948,8 @@
sizeof("apq8009-tashalite-snd-card")) ||
!strncmp(snd_card_name, "mdm9607-tomtom-i2s-snd-card",
sizeof("mdm9607-tomtom-i2s-snd-card")) ||
+ !strncmp(snd_card_name, "mdm-tasha-i2s-snd-card",
+ sizeof("mdm-tasha-i2s-snd-card")) ||
!strncmp(snd_card_name, "sdm660-tashalite-snd-card",
sizeof("sdm660-tashalite-snd-card")) ||
!strncmp(snd_card_name, "sdm660-tasha-skus-snd-card",
@@ -1324,6 +1328,13 @@
msm_device_to_be_id = msm_device_to_be_id_external_codec;
msm_be_id_array_len =
sizeof(msm_device_to_be_id_external_codec) / sizeof(msm_device_to_be_id_external_codec[0]);
+ } else if (!strncmp(snd_card_name, "mdm-tasha-i2s-snd-card",
+ sizeof("mdm-tasha-i2s-snd-card"))) {
+ strlcpy(mixer_xml_path, MIXER_XML_PATH_WCD9335_I2S,
+ sizeof(MIXER_XML_PATH_WCD9335_I2S));
+ msm_device_to_be_id = msm_device_to_be_id_external_codec;
+ msm_be_id_array_len =
+ sizeof(msm_device_to_be_id_external_codec) / sizeof(msm_device_to_be_id_external_codec[0]);
} else {
strlcpy(mixer_xml_path, MIXER_XML_PATH,
sizeof(MIXER_XML_PATH));
@@ -6225,12 +6236,12 @@
char mixer_ctl_name[44] = {0}; // max length of name is 44 as defined
int ret;
unsigned int i;
- int set_values[8] = {0};
+ int set_values[FCC_8] = {0};
struct platform_data *my_data = (struct platform_data *)platform;
struct audio_device *adev = my_data->adev;
ALOGV("%s channel_count:%d",__func__, ch_count);
- if (NULL == ch_map) {
- ALOGE("%s: Invalid channel mapping used", __func__);
+ if (NULL == ch_map || (ch_count < 1) || (ch_count > FCC_8)) {
+ ALOGE("%s: Invalid channel mapping or channel count value", __func__);
return -EINVAL;
}
@@ -6252,7 +6263,7 @@
__func__, mixer_ctl_name);
return -EINVAL;
}
- for (i = 0; i< ARRAY_SIZE(set_values); i++) {
+ for (i = 0; i < (unsigned int)ch_count; i++) {
set_values[i] = ch_map[i];
}
@@ -6260,7 +6271,7 @@
set_values[0], set_values[1], set_values[2], set_values[3], set_values[4],
set_values[5], set_values[6], set_values[7], ch_count);
- ret = mixer_ctl_set_array(ctl, set_values, ch_count);
+ ret = mixer_ctl_set_array(ctl, set_values, ARRAY_SIZE(set_values));
if (ret < 0) {
ALOGE("%s: Could not set ctl, error:%d ch_count:%d",
__func__, ret, ch_count);
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 0094c0c..c34e0f0 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -5879,12 +5879,12 @@
char mixer_ctl_name[44] = {0}; // max length of name is 44 as defined
int ret;
unsigned int i;
- int set_values[8] = {0};
+ int set_values[FCC_8] = {0};
struct platform_data *my_data = (struct platform_data *)platform;
struct audio_device *adev = my_data->adev;
ALOGV("%s channel_count:%d",__func__, ch_count);
- if (NULL == ch_map) {
- ALOGE("%s: Invalid channel mapping used", __func__);
+ if (NULL == ch_map || (ch_count < 1) || (ch_count > FCC_8)) {
+ ALOGE("%s: Invalid channel mapping or channel count value", __func__);
return -EINVAL;
}
@@ -5906,7 +5906,7 @@
__func__, mixer_ctl_name);
return -EINVAL;
}
- for (i = 0; i< ARRAY_SIZE(set_values); i++) {
+ for (i = 0; i < (unsigned int)ch_count; i++) {
set_values[i] = ch_map[i];
}
@@ -5914,7 +5914,7 @@
set_values[0], set_values[1], set_values[2], set_values[3], set_values[4],
set_values[5], set_values[6], set_values[7], ch_count);
- ret = mixer_ctl_set_array(ctl, set_values, ch_count);
+ ret = mixer_ctl_set_array(ctl, set_values, ARRAY_SIZE(set_values));
if (ret < 0) {
ALOGE("%s: Could not set ctl, error:%d ch_count:%d",
__func__, ret, ch_count);
diff --git a/visualizer/offload_visualizer.c b/visualizer/offload_visualizer.c
index 30e9e79..6c9a01f 100644
--- a/visualizer/offload_visualizer.c
+++ b/visualizer/offload_visualizer.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2017 The Android Open Source Project
+ * Copyright (C) 2013 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.