Merge "hal: Fix alignement of buffer sent to DSP for multichannel clips"
diff --git a/hal/msm8916/hw_info.c b/hal/msm8916/hw_info.c
index 69c9341..1a882db 100644
--- a/hal/msm8916/hw_info.c
+++ b/hal/msm8916/hw_info.c
@@ -137,6 +137,11 @@
hw_info->snd_devices = NULL;
hw_info->num_snd_devices = 0;
strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
+ } else if (!strcmp(snd_card_name, "msm8x16-snd-card-sbc")) {
+ strlcpy(hw_info->type, "sbc", sizeof(hw_info->type));
+ strlcpy(hw_info->name, "msm8x16", sizeof(hw_info->name));
+ hw_info->snd_devices = NULL;
+ hw_info->num_snd_devices = 0;
} else if (!strcmp(snd_card_name, "msm8x16-skuh-snd-card")) {
strlcpy(hw_info->type, "skuh", sizeof(hw_info->type));
strlcpy(hw_info->name, "msm8x16", sizeof(hw_info->name));
@@ -234,6 +239,12 @@
hw_info->snd_devices = NULL;
hw_info->num_snd_devices = 0;
strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
+ } else if (!strcmp(snd_card_name, "msm8976-tasha-snd-card")) {
+ strlcpy(hw_info->type, "", sizeof(hw_info->type));
+ strlcpy(hw_info->name, "msm8976", sizeof(hw_info->name));
+ hw_info->snd_devices = NULL;
+ hw_info->num_snd_devices = 0;
+ strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
} else if (!strcmp(snd_card_name, "msm8952-skum-snd-card")) {
strlcpy(hw_info->type, "", sizeof(hw_info->type));
strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
@@ -256,7 +267,8 @@
}
if (strstr(snd_card_name, "msm8x16") || strstr(snd_card_name, "msm8939") ||
- strstr(snd_card_name, "msm8909") || strstr(snd_card_name, "msm8952")) {
+ strstr(snd_card_name, "msm8909") || strstr(snd_card_name, "msm8952") ||
+ strstr(snd_card_name, "msm8976")) {
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 ce3a3f2..4015f92 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -41,6 +41,7 @@
#define MIXER_XML_PATH "/system/etc/mixer_paths.xml"
#define MIXER_XML_PATH_MTP "/system/etc/mixer_paths_mtp.xml"
+#define MIXER_XML_PATH_SBC "/system/etc/mixer_paths_sbc.xml"
#define MIXER_XML_PATH_MSM8909_PM8916 "/system/etc/mixer_paths_msm8909_pm8916.xml"
#define MIXER_XML_PATH_QRD_SKUH "/system/etc/mixer_paths_qrd_skuh.xml"
#define MIXER_XML_PATH_QRD_SKUI "/system/etc/mixer_paths_qrd_skui.xml"
@@ -56,6 +57,7 @@
#define MIXER_XML_PATH_I2S "/system/etc/mixer_paths_i2s.xml"
#define MIXER_XML_PATH_WCD9306 "/system/etc/mixer_paths_wcd9306.xml"
#define MIXER_XML_PATH_WCD9330 "/system/etc/mixer_paths_wcd9330.xml"
+#define MIXER_XML_PATH_WCD9335 "/system/etc/mixer_paths_wcd9335.xml"
#define PLATFORM_INFO_XML_PATH "/system/etc/audio_platform_info.xml"
#define PLATFORM_INFO_XML_PATH_I2S "/system/etc/audio_platform_info_i2s.xml"
@@ -724,7 +726,10 @@
!strncmp(snd_card_name, "msm8939-tomtom9330-snd-card",
sizeof("msm8939-tomtom9330-snd-card")) ||
!strncmp(snd_card_name, "msm8952-tomtom-snd-card",
- sizeof("msm8952-tomtom-snd-card"))) {
+ sizeof("msm8952-tomtom-snd-card")) ||
+ !strncmp(snd_card_name, "msm8976-tasha-snd-card",
+ sizeof("msm8976-tasha-snd-card")))
+ {
ALOGI("%s: snd_card_name: %s",__func__,snd_card_name);
is_external_codec = true;
}
@@ -741,6 +746,15 @@
msm_be_id_array_len =
sizeof(msm_device_to_be_id_internal_codec) / sizeof(msm_device_to_be_id_internal_codec[0]);
+ } else if (!strncmp(snd_card_name, "msm8x16-snd-card-sbc",
+ sizeof("msm8x16-snd-card-sbc"))) {
+ strlcpy(mixer_xml_path, MIXER_XML_PATH_SBC,
+ sizeof(mixer_xml_path));
+
+ msm_device_to_be_id = msm_device_to_be_id_internal_codec;
+ msm_be_id_array_len =
+ sizeof(msm_device_to_be_id_internal_codec) / sizeof(msm_device_to_be_id_internal_codec[0]);
+
} else if (!strncmp(snd_card_name, "msm8x16-skuh-snd-card",
sizeof("msm8x16-skuh-snd-card"))) {
strlcpy(mixer_xml_path, MIXER_XML_PATH_QRD_SKUH,
@@ -810,6 +824,15 @@
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, "msm8976-tasha-snd-card",
+ sizeof("msm8976-tasha-snd-card"))) {
+ strlcpy(mixer_xml_path, MIXER_XML_PATH_WCD9335,
+ sizeof(MIXER_XML_PATH_WCD9335));
+ 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, "msm8909-skua-snd-card",
sizeof("msm8909-skua-snd-card"))) {
strlcpy(mixer_xml_path, MIXER_XML_PATH_SKUA,
@@ -2334,8 +2357,9 @@
if (out_device & AUDIO_DEVICE_OUT_SPEAKER)
in_device = AUDIO_DEVICE_IN_BACK_MIC;
if (adev->active_input) {
- if (adev->active_input->enable_aec &&
- adev->active_input->enable_ns) {
+ if (my_data->fluence_type != FLUENCE_NONE &&
+ adev->active_input->enable_aec &&
+ adev->active_input->enable_ns) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
if (my_data->fluence_in_spkr_mode) {
if (my_data->fluence_type & FLUENCE_QUAD_MIC) {
@@ -2359,7 +2383,8 @@
snd_device = SND_DEVICE_IN_HEADSET_MIC_FLUENCE;
}
platform_set_echo_reference(adev->platform, true);
- } else if (adev->active_input->enable_aec) {
+ } else if (my_data->fluence_type != FLUENCE_NONE &&
+ adev->active_input->enable_aec) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
if (my_data->fluence_in_spkr_mode) {
if (my_data->fluence_type & FLUENCE_QUAD_MIC) {
@@ -2383,7 +2408,8 @@
snd_device = SND_DEVICE_IN_HEADSET_MIC_FLUENCE;
}
platform_set_echo_reference(adev->platform, true);
- } else if (adev->active_input->enable_ns) {
+ } else if (my_data->fluence_type != FLUENCE_NONE &&
+ adev->active_input->enable_ns) {
if (in_device & AUDIO_DEVICE_IN_BACK_MIC) {
if (my_data->fluence_in_spkr_mode) {
if (my_data->fluence_type & FLUENCE_QUAD_MIC) {
@@ -3351,10 +3377,13 @@
int ret = 0;
const char *snd_card_name = mixer_get_name(adev->mixer);
+
if (bit_width != adev->cur_codec_backend_bit_width) {
const char * mixer_ctl_name;
if (!strncmp(snd_card_name, "msm8952-tomtom-snd-card",
- sizeof("msm8952-tomtom-snd-card"))) {
+ sizeof("msm8952-tomtom-snd-card")) ||
+ !strncmp(snd_card_name, "msm8976-tasha-snd-card",
+ sizeof("msm8976-tasha-snd-card"))) {
mixer_ctl_name = "SLIM_0_RX Format";
}
else