Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd0afd9b authored by Naresh Tanniru's avatar Naresh Tanniru Committed by Gerrit - the friendly Code Review server
Browse files

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
parent 49574089
Loading
Loading
Loading
Loading
+23 −2
Original line number Diff line number Diff line
@@ -1340,12 +1340,30 @@ static void audio_hwdep_send_cal(struct platform_data *plat_data)
        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);
@@ -1357,7 +1375,10 @@ int platform_acdb_init(void *platform)
    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) {