Loading hal/msm8974/platform.c +33 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ #define SAD_BLOCK_SIZE 3 #define MAX_CVD_VERSION_STRING_SIZE 100 #define MAX_SND_CARD_STRING_SIZE 100 /* EDID format ID for LPCM audio */ #define EDID_FORMAT_LPCM 1 Loading Loading @@ -121,6 +122,9 @@ #define AUDIO_PARAMETER_KEY_PERF_LOCK_OPTS "perf_lock_opts" /* Reload ACDB files from specified path */ #define AUDIO_PARAMETER_KEY_RELOAD_ACDB "reload_acdb" /* Query external audio device connection status */ #define AUDIO_PARAMETER_KEY_EXT_AUDIO_DEVICE "ext_audio_device" Loading Loading @@ -191,6 +195,7 @@ typedef int (*acdb_set_audio_cal_t) (void *, void *, uint32_t); typedef int (*acdb_get_audio_cal_t) (void *, void *, uint32_t*); typedef int (*acdb_send_common_top_t) (void); typedef int (*acdb_set_codec_data_t) (void *, char *); typedef int (*acdb_reload_t) (char *, char *, char *, int); typedef struct codec_backend_cfg { uint32_t sample_rate; Loading Loading @@ -235,7 +240,7 @@ struct platform_data { acdb_get_default_app_type_t acdb_get_default_app_type; acdb_send_common_top_t acdb_send_common_top; acdb_set_codec_data_t acdb_set_codec_data; acdb_reload_t acdb_reload; void *hw_info; acdb_send_gain_dep_cal_t acdb_send_gain_dep_cal; struct csd_data *csd; Loading @@ -246,6 +251,9 @@ struct platform_data { codec_backend_cfg_t current_tx_backend_cfg[MAX_CODEC_TX_BACKENDS]; char codec_version[CODEC_VERSION_MAX_LENGTH]; int hw_dep_fd; char cvd_version[MAX_CVD_VERSION_STRING_SIZE]; char snd_card_name[MAX_SND_CARD_STRING_SIZE]; int metainfo_key; }; static int pcm_device_table[AUDIO_USECASE_MAX][2] = { Loading Loading @@ -1290,6 +1298,14 @@ static int platform_acdb_init(void *platform) key = atoi(value); snd_card_name = mixer_get_name(my_data->adev->mixer); result = my_data->acdb_init(snd_card_name, cvd_version, key); /* Save these variables in platform_data. These will be used while reloading ACDB files during run time. */ strlcpy(my_data->cvd_version, cvd_version, MAX_CVD_VERSION_STRING_SIZE); strlcpy(my_data->snd_card_name, snd_card_name, MAX_SND_CARD_STRING_SIZE); my_data->metainfo_key = key; if (cvd_version) free(cvd_version); if (!result) { Loading Loading @@ -1572,6 +1588,12 @@ void *platform_init(struct audio_device *adev) goto acdb_init_fail; } my_data->acdb_reload = (acdb_reload_t)dlsym(my_data->acdb_handle, "acdb_loader_reload_acdb_files"); if (my_data->acdb_reload == NULL) { ALOGE("%s: dlsym error %s for acdb_loader_reload_acdb_files", __func__, dlerror()); goto acdb_init_fail; } platform_acdb_init(my_data); } Loading Loading @@ -3372,6 +3394,16 @@ int platform_set_parameters(void *platform, struct str_parms *parms) } } err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_RELOAD_ACDB, value, len); if (err >= 0) { str_parms_del(parms, AUDIO_PARAMETER_KEY_RELOAD_ACDB); my_data->acdb_reload(value, my_data->snd_card_name, my_data->cvd_version, my_data->metainfo_key); } err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_EXT_AUDIO_DEVICE, value, len); if (err >= 0) { Loading Loading
hal/msm8974/platform.c +33 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,7 @@ #define SAD_BLOCK_SIZE 3 #define MAX_CVD_VERSION_STRING_SIZE 100 #define MAX_SND_CARD_STRING_SIZE 100 /* EDID format ID for LPCM audio */ #define EDID_FORMAT_LPCM 1 Loading Loading @@ -121,6 +122,9 @@ #define AUDIO_PARAMETER_KEY_PERF_LOCK_OPTS "perf_lock_opts" /* Reload ACDB files from specified path */ #define AUDIO_PARAMETER_KEY_RELOAD_ACDB "reload_acdb" /* Query external audio device connection status */ #define AUDIO_PARAMETER_KEY_EXT_AUDIO_DEVICE "ext_audio_device" Loading Loading @@ -191,6 +195,7 @@ typedef int (*acdb_set_audio_cal_t) (void *, void *, uint32_t); typedef int (*acdb_get_audio_cal_t) (void *, void *, uint32_t*); typedef int (*acdb_send_common_top_t) (void); typedef int (*acdb_set_codec_data_t) (void *, char *); typedef int (*acdb_reload_t) (char *, char *, char *, int); typedef struct codec_backend_cfg { uint32_t sample_rate; Loading Loading @@ -235,7 +240,7 @@ struct platform_data { acdb_get_default_app_type_t acdb_get_default_app_type; acdb_send_common_top_t acdb_send_common_top; acdb_set_codec_data_t acdb_set_codec_data; acdb_reload_t acdb_reload; void *hw_info; acdb_send_gain_dep_cal_t acdb_send_gain_dep_cal; struct csd_data *csd; Loading @@ -246,6 +251,9 @@ struct platform_data { codec_backend_cfg_t current_tx_backend_cfg[MAX_CODEC_TX_BACKENDS]; char codec_version[CODEC_VERSION_MAX_LENGTH]; int hw_dep_fd; char cvd_version[MAX_CVD_VERSION_STRING_SIZE]; char snd_card_name[MAX_SND_CARD_STRING_SIZE]; int metainfo_key; }; static int pcm_device_table[AUDIO_USECASE_MAX][2] = { Loading Loading @@ -1290,6 +1298,14 @@ static int platform_acdb_init(void *platform) key = atoi(value); snd_card_name = mixer_get_name(my_data->adev->mixer); result = my_data->acdb_init(snd_card_name, cvd_version, key); /* Save these variables in platform_data. These will be used while reloading ACDB files during run time. */ strlcpy(my_data->cvd_version, cvd_version, MAX_CVD_VERSION_STRING_SIZE); strlcpy(my_data->snd_card_name, snd_card_name, MAX_SND_CARD_STRING_SIZE); my_data->metainfo_key = key; if (cvd_version) free(cvd_version); if (!result) { Loading Loading @@ -1572,6 +1588,12 @@ void *platform_init(struct audio_device *adev) goto acdb_init_fail; } my_data->acdb_reload = (acdb_reload_t)dlsym(my_data->acdb_handle, "acdb_loader_reload_acdb_files"); if (my_data->acdb_reload == NULL) { ALOGE("%s: dlsym error %s for acdb_loader_reload_acdb_files", __func__, dlerror()); goto acdb_init_fail; } platform_acdb_init(my_data); } Loading Loading @@ -3372,6 +3394,16 @@ int platform_set_parameters(void *platform, struct str_parms *parms) } } err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_RELOAD_ACDB, value, len); if (err >= 0) { str_parms_del(parms, AUDIO_PARAMETER_KEY_RELOAD_ACDB); my_data->acdb_reload(value, my_data->snd_card_name, my_data->cvd_version, my_data->metainfo_key); } err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_EXT_AUDIO_DEVICE, value, len); if (err >= 0) { Loading