hal: Add ACDB support for 8976 tasha lite
- Wrong ACDB files are picked for tasha lite
- Tasha lite using default acdb files, due to
not having seperate ACDB files directory on target.
Tasha & tasha lite should use same ACDB files.
- Add support of snd_card_name convertion, to load
proper ACDB files during acdb_init
Change-Id: Ifaa39ad1892d6e506fb29b252e8685dc963e12ed
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 72f4685..76e8b8d 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -1255,12 +1255,30 @@
ALOGE("%s: Could not send anc cal", __FUNCTION__);
}
+const char * get_snd_card_name_for_acdb_loader(const char *snd_card_name) {
+
+ 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";
+ } else {
+ return snd_card_name;
+ }
+}
+
+
int platform_acdb_init(void *platform)
{
struct platform_data *my_data = (struct platform_data *)platform;
char *cvd_version = NULL;
int key = 0;
- const char *snd_card_name;
+ const char *snd_card_name, *acdb_snd_card_name;
int result;
char value[PROPERTY_VALUE_MAX];
cvd_version = calloc(1, MAX_CVD_VERSION_STRING_SIZE);
@@ -1272,7 +1290,10 @@
property_get("audio.ds1.metainfo.key",value,"0");
key = atoi(value);
snd_card_name = mixer_get_name(my_data->adev->mixer);
- result = my_data->acdb_init(snd_card_name, cvd_version, key);
+ acdb_snd_card_name = get_snd_card_name_for_acdb_loader(snd_card_name);
+
+ result = my_data->acdb_init(acdb_snd_card_name, cvd_version, key);
+
if (cvd_version)
free(cvd_version);
if (!result) {