hal: Modify logic to get acdb snd card name
If sound card name has tashalite or tasha9326
as substring in it, use tasha sound card name
to pick ACDB files.
Change-Id: I3318775696559eda54fa8c33a5d11651f167c2d7
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 613d7ba..148b3ea 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -173,6 +173,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))
@@ -2159,22 +2160,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)