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

Commit 04185b83 authored by spanicke's avatar spanicke
Browse files

hal: Call acdb_init_v2 during sound card state change

As part of platform_acdb_init, is_instance_id_supported
is not initialized which causes crash in acdb loader proxy.

Change is to call acdb_init_v2 instead of platform_acdb_init
during sound card state change if acdb is not already
initialized for auto as it calls acdb-loader-proxy directly
instead of calling acdb-loader which ideally initializes
is_instance_id_supported.

Change-Id: I4ad27dfb6fe5253ba89e02a2fb608767055399de
parent 32c63d22
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -3056,6 +3056,7 @@ const char * platform_get_snd_card_name_for_acdb_loader(const char *snd_card_nam
    return acdb_card_name;
}
#ifndef DAEMON_SUPPORT_AUTO
static int platform_acdb_init(void *platform)
{
    struct platform_data *my_data = (struct platform_data *)platform;
@@ -3115,6 +3116,7 @@ cleanup:
    }
    return result;
}
#endif
#define MAX_PATH             (256)
#define THERMAL_SYSFS "/sys/class/thermal"
@@ -4687,8 +4689,23 @@ void platform_snd_card_update(void *platform, card_status_t card_status)
    if (card_status == CARD_STATUS_ONLINE) {
        if (!platform_is_acdb_initialized(my_data)) {
#ifdef DAEMON_SUPPORT_AUTO
        struct audio_device *adev = ((struct platform_data *)platform)->adev;
        int result = acdb_init_v2(adev->mixer);
        if (!result) {
            my_data->is_acdb_initialized = true;
            ALOGD("ACDB initialized");
            audio_hwdep_send_cal(my_data);
        } else {
            my_data->is_acdb_initialized = false;
            ALOGD("ACDB initialization failed");
            if (my_data->acdb_deallocate)
                my_data->acdb_deallocate();
        }
#else
            if(platform_acdb_init(my_data))
                ALOGE("%s: acdb initialization is failed", __func__);
#endif
        } else if (my_data->acdb_send_common_top() < 0) {
                ALOGD("%s: acdb did not set common topology", __func__);
        }