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

Commit 063300b0 authored by Naresh Tanniru's avatar Naresh Tanniru
Browse files

Audio: Bear family(8916) audio HAL bringup changes

- Updated  new API for voice call device config on 8x16

Change-Id: I03af1d2761288763d2db33469de5f9d476f4b527
parent 45f120dc
Loading
Loading
Loading
Loading
+37 −4
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ struct audio_block_header

/* Audio calibration related functions */
typedef void (*acdb_deallocate_t)();
typedef int  (*acdb_init_t)();
typedef int  (*acdb_init_t)(char *);
typedef void (*acdb_send_audio_cal_t)(int, int);
typedef void (*acdb_send_voice_cal_t)(int, int);
typedef int (*acdb_reload_vocvoltable_t)(int);
@@ -416,6 +416,13 @@ static struct csd_data *open_csd_client()
                  __func__, dlerror());
            goto error;
        }
        csd->enable_device_config = (enable_device_config_t)dlsym(csd->csd_client,
                                               "csd_client_enable_device_config");
        if (csd->enable_device_config == NULL) {
            ALOGE("%s: dlsym error %s for csd_client_enable_device_config",
                  __func__, dlerror());
            goto error;
        }
        csd->enable_device = (enable_device_t)dlsym(csd->csd_client,
                                             "csd_client_enable_device");
        if (csd->enable_device == NULL) {
@@ -643,11 +650,11 @@ void *platform_init(struct audio_device *adev)
                  __func__, LIB_ACDB_LOADER);

        my_data->acdb_init = (acdb_init_t)dlsym(my_data->acdb_handle,
                                                    "acdb_loader_init_ACDB");
                                                    "acdb_loader_init_v2");
        if (my_data->acdb_init == NULL)
            ALOGE("%s: dlsym error %s for acdb_loader_init_ACDB", __func__, dlerror());
            ALOGE("%s: dlsym error %s for acdb_loader_init_v2", __func__, dlerror());
        else
            my_data->acdb_init();
            my_data->acdb_init(snd_card_name);
    }

    /* Initialize ACDB ID's */
@@ -819,6 +826,32 @@ int platform_switch_voice_call_device_pre(void *platform)
    }
    return ret;
}
int platform_switch_voice_call_enable_device_config(void *platform,
                                                    snd_device_t out_snd_device,
                                                    snd_device_t in_snd_device)
{
    struct platform_data *my_data = (struct platform_data *)platform;
    int acdb_rx_id, acdb_tx_id;
    int ret = 0;

    acdb_rx_id = acdb_device_table[out_snd_device];
    acdb_tx_id = acdb_device_table[in_snd_device];

    if (my_data->csd != NULL) {
        if (acdb_rx_id > 0 && acdb_tx_id > 0) {
            ret = my_data->csd->enable_device_config(acdb_rx_id, acdb_tx_id);
            if (ret < 0) {
                ALOGE("%s: csd_enable_device_config, failed, error %d",
                      __func__, ret);
            }
        } else {
            ALOGE("%s: Incorrect ACDB IDs (rx: %d tx: %d)", __func__,
                  acdb_rx_id, acdb_tx_id);
        }
    }
    return ret;
}


int platform_switch_voice_call_device_post(void *platform,
                                           snd_device_t out_snd_device,
+2 −0
Original line number Diff line number Diff line
@@ -193,6 +193,7 @@ enum {
typedef int (*init_t)();
typedef int (*deinit_t)();
typedef int (*disable_device_t)();
typedef int (*enable_device_config_t)(int, int);
typedef int (*enable_device_t)(int, int, uint32_t);
typedef int (*volume_t)(uint32_t, int);
typedef int (*mic_mute_t)(uint32_t, int);
@@ -209,6 +210,7 @@ struct csd_data {
    init_t init;
    deinit_t deinit;
    disable_device_t disable_device;
    enable_device_config_t enable_device_config;
    enable_device_t enable_device;
    volume_t volume;
    mic_mute_t mic_mute;