hal: Add support for msm8953 and msm8937
- Add msm8953 and msm8937 target variant
sound card details
Change-Id: Ic3774c54d1fcdfc4125062c6cdf976262717bb12
diff --git a/hal/msm8916/hw_info.c b/hal/msm8916/hw_info.c
index d04c69c..5cd0d66 100644
--- a/hal/msm8916/hw_info.c
+++ b/hal/msm8916/hw_info.c
@@ -281,6 +281,48 @@
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, "msm8953-snd-card-mtp")) {
+ strlcpy(hw_info->type, "", sizeof(hw_info->type));
+ strlcpy(hw_info->name, "msm8953", 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, "msm8953-tasha-snd-card")) {
+ strlcpy(hw_info->type, "", sizeof(hw_info->type));
+ strlcpy(hw_info->name, "msm8953", 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, "msm8953-tashalite-snd-card")) {
+ strlcpy(hw_info->type, "", sizeof(hw_info->type));
+ strlcpy(hw_info->name, "msm8953", 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-sku3-tasha-snd-card")) {
+ strlcpy(hw_info->type, "", sizeof(hw_info->type));
+ strlcpy(hw_info->name, "msm8952", 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, "msm8937-snd-card-mtp")) {
+ strlcpy(hw_info->type, "", sizeof(hw_info->type));
+ strlcpy(hw_info->name, "msm8937", 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, "msm8937-tasha-snd-card")) {
+ strlcpy(hw_info->type, "", sizeof(hw_info->type));
+ strlcpy(hw_info->name, "msm8937", 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, "msm8937-tashalite-snd-card")) {
+ strlcpy(hw_info->type, "", sizeof(hw_info->type));
+ strlcpy(hw_info->name, "msm8937", 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 {
ALOGW("%s: Not an 8x16/8939/8909/8952 device", __func__);
}
@@ -298,7 +340,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, "msm8976")) {
+ strstr(snd_card_name, "msm8976") || strstr(snd_card_name, "msm8953") ||
+ strstr(snd_card_name, "msm8937")) {
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 e069918..31233ad 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -795,7 +795,15 @@
!strncmp(snd_card_name, "msm8976-tashalite-snd-card",
sizeof("msm8976-tashalite-snd-card")) ||
!strncmp(snd_card_name, "msm8976-tasha-skun-snd-card",
- sizeof("msm8976-tasha-skun-snd-card")))
+ sizeof("msm8976-tasha-skun-snd-card")) ||
+ !strncmp(snd_card_name, "msm8937-tasha-snd-card",
+ sizeof("msm8937-tasha-snd-card")) ||
+ !strncmp(snd_card_name, "msm8937-tashalite-snd-card",
+ sizeof("msm8937-tashalite-snd-card")) ||
+ !strncmp(snd_card_name, "msm8953-tasha-snd-card",
+ sizeof("msm8953-tasha-snd-card")) ||
+ !strncmp(snd_card_name, "msm8953-tashalite-snd-card",
+ sizeof("msm8953-tashalite-snd-card")))
{
ALOGI("%s: snd_card_name: %s",__func__,snd_card_name);
is_external_codec = true;
@@ -1012,6 +1020,49 @@
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, "msm8937-snd-card-mtp",
+ sizeof("msm8937-snd-card-mtp"))) {
+ strlcpy(mixer_xml_path, MIXER_XML_PATH_MTP,
+ sizeof(MIXER_XML_PATH_MTP));
+ 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, "msm8937-tasha-snd-card",
+ sizeof("msm8937-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, "msm8937-tashalite-snd-card",
+ sizeof("msm8937-tashalite-snd-card"))) {
+ strlcpy(mixer_xml_path, MIXER_XML_PATH_WCD9326,
+ MAX_MIXER_XML_PATH);
+ 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, "msm8953-snd-card-mtp",
+ sizeof("msm8953-snd-card-mtp"))) {
+ strlcpy(mixer_xml_path, MIXER_XML_PATH_MTP,
+ sizeof(MIXER_XML_PATH_MTP));
+ 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, "msm8953-tasha-snd-card",
+ sizeof("msm8953-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, "msm8953-tashalite-snd-card",
+ sizeof("msm8937-tashalite-snd-card"))) {
+ strlcpy(mixer_xml_path, MIXER_XML_PATH_WCD9326,
+ MAX_MIXER_XML_PATH);
+ 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));
@@ -1425,11 +1476,29 @@
// 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";
- } else {
- return snd_card_name;
- }
+ ALOGD("using tasha ACDB files for tasha-lite");
+ return "msm8976-tasha-snd-card";
+ }
+
+ 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";
+ }
+
+ return snd_card_name;
}
@@ -3925,19 +3994,27 @@
{
if (!strncmp(snd_card_name, "msm8952-tomtom-snd-card",
- sizeof("msm8952-tomtom-snd-card")) ||
+ sizeof("msm8952-tomtom-snd-card")) ||
!strncmp(snd_card_name, "msm8952-tasha-snd-card",
- sizeof("msm8952-tasha-snd-card")) ||
+ sizeof("msm8952-tasha-snd-card")) ||
!strncmp(snd_card_name, "msm8952-tashalite-snd-card",
- sizeof("msm8952-tashalite-snd-card")) ||
+ sizeof("msm8952-tashalite-snd-card")) ||
!strncmp(snd_card_name, "msm8952-tasha-skun-snd-card",
- sizeof("msm8952-tasha-skun-snd-card")) ||
+ sizeof("msm8952-tasha-skun-snd-card")) ||
!strncmp(snd_card_name, "msm8976-tasha-snd-card",
- sizeof("msm8976-tasha-snd-card")) ||
+ sizeof("msm8976-tasha-snd-card")) ||
!strncmp(snd_card_name, "msm8976-tashalite-snd-card",
- sizeof("msm8976-tashalite-snd-card")) ||
+ sizeof("msm8976-tashalite-snd-card")) ||
!strncmp(snd_card_name, "msm8976-tasha-skun-snd-card",
- sizeof("msm8976-tasha-skun-snd-card")))
+ sizeof("msm8976-tasha-skun-snd-card")) ||
+ !strncmp(snd_card_name, "msm8937-tasha-snd-card",
+ sizeof("msm8937-tasha-snd-card")) ||
+ !strncmp(snd_card_name, "msm8937-tashalite-snd-card",
+ sizeof("msm8937-tashalite-snd-card")) ||
+ !strncmp(snd_card_name, "msm8953-tasha-snd-card",
+ sizeof("msm8953-tasha-snd-card")) ||
+ !strncmp(snd_card_name, "msm8953-tashalite-snd-card",
+ sizeof("msm8953-tashalite-snd-card")))
{
/* external codec, for rest/old of the external codecs
we dont support this funtionality(chaning AFE params)