Loading hal/msm8974/platform.c +122 −79 Original line number Diff line number Diff line Loading @@ -9342,6 +9342,8 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, struct audio_device_config_param *adev_device_cfg_ptr = adev->device_cfg_params; int controller = -1; int stream = -1; const char *id_string = NULL; int cfg_value = -1; if (usecase != NULL && usecase->stream.out && usecase->type == PCM_PLAYBACK) { Loading Loading @@ -9397,9 +9399,20 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, ALOGE("%s:becf: afe: fail for %s mixer set to %d bit for %x format", __func__, my_data->current_backend_cfg[backend_idx].bitwidth_mixer_ctl, bit_width, format); } else { my_data->current_backend_cfg[backend_idx].bit_width = bit_width; ALOGD("%s:becf: afe: %s mixer set to %d bit for %x format", __func__, my_data->current_backend_cfg[backend_idx].bitwidth_mixer_ctl, bit_width, format); for (int idx = 0; idx < MAX_CODEC_BACKENDS; idx++) { if (my_data->current_backend_cfg[idx].bitwidth_mixer_ctl) { ctl = mixer_get_ctl_by_name(adev->mixer, my_data->current_backend_cfg[idx].bitwidth_mixer_ctl); id_string = platform_get_mixer_control(ctl); if (id_string) { cfg_value = audio_extn_utils_get_bit_width_from_string(id_string); if (cfg_value > 0) my_data->current_backend_cfg[idx].bit_width = cfg_value; } } } } /* set the ret as 0 and not pass back to upper layer */ ret = 0; Loading Loading @@ -9486,10 +9499,26 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, return -EINVAL; } ret = mixer_ctl_set_enum_by_string(ctl, rate_str); if (ret < 0) { ALOGE("%s:becf: afe: fail for %s mixer set to %s", __func__, my_data->current_backend_cfg[backend_idx].samplerate_mixer_ctl, rate_str); } else { ALOGD("%s:becf: afe: %s set to %s", __func__, my_data->current_backend_cfg[backend_idx].samplerate_mixer_ctl, rate_str); mixer_ctl_set_enum_by_string(ctl, rate_str); my_data->current_backend_cfg[backend_idx].sample_rate = sample_rate; for (int idx = 0; idx < MAX_CODEC_BACKENDS; idx++) { if (my_data->current_backend_cfg[idx].samplerate_mixer_ctl) { ctl = mixer_get_ctl_by_name(adev->mixer, my_data->current_backend_cfg[idx].samplerate_mixer_ctl); id_string = platform_get_mixer_control(ctl); if (id_string) { cfg_value = audio_extn_utils_get_sample_rate_from_string(id_string); if (cfg_value > 0) my_data->current_backend_cfg[idx].sample_rate = cfg_value; } } } } ret = 0; } if ((my_data->current_backend_cfg[backend_idx].channels_mixer_ctl) && Loading Loading @@ -9525,8 +9554,27 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, my_data->current_backend_cfg[backend_idx].channels_mixer_ctl); return -EINVAL; } mixer_ctl_set_enum_by_string(ctl, channel_cnt_str); my_data->current_backend_cfg[backend_idx].channels = channels; ret = mixer_ctl_set_enum_by_string(ctl, channel_cnt_str); if (ret < 0) { ALOGE("%s:becf: afe: fail for %s mixer set to %s", __func__, my_data->current_backend_cfg[backend_idx].channels_mixer_ctl, channel_cnt_str); } else { ALOGD("%s:becf: afe: %s set to %s", __func__, my_data->current_backend_cfg[backend_idx].channels_mixer_ctl, channel_cnt_str); for (int idx = 0; idx < MAX_CODEC_BACKENDS; idx++) { if (my_data->current_backend_cfg[idx].channels_mixer_ctl) { ctl = mixer_get_ctl_by_name(adev->mixer, my_data->current_backend_cfg[idx].channels_mixer_ctl); id_string = platform_get_mixer_control(ctl); if (id_string) { cfg_value = audio_extn_utils_get_channels_from_string(id_string); if (cfg_value > 0) my_data->current_backend_cfg[idx].channels = cfg_value; } } } } ret = 0; if ((backend_idx == HDMI_RX_BACKEND) || (backend_idx == DISP_PORT_RX_BACKEND) || Loading @@ -9534,11 +9582,6 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, platform_set_edid_channels_configuration_v2(adev->platform, channels, backend_idx, snd_device, controller, stream); ALOGD("%s:becf: afe: %s set to %s ", __func__, my_data->current_backend_cfg[backend_idx].channels_mixer_ctl, channel_cnt_str); ret = 0; } bool set_ext_disp_format = false, set_mi2s_tx_data_format = false; Loading Loading
hal/msm8974/platform.c +122 −79 Original line number Diff line number Diff line Loading @@ -9342,6 +9342,8 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, struct audio_device_config_param *adev_device_cfg_ptr = adev->device_cfg_params; int controller = -1; int stream = -1; const char *id_string = NULL; int cfg_value = -1; if (usecase != NULL && usecase->stream.out && usecase->type == PCM_PLAYBACK) { Loading Loading @@ -9397,9 +9399,20 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, ALOGE("%s:becf: afe: fail for %s mixer set to %d bit for %x format", __func__, my_data->current_backend_cfg[backend_idx].bitwidth_mixer_ctl, bit_width, format); } else { my_data->current_backend_cfg[backend_idx].bit_width = bit_width; ALOGD("%s:becf: afe: %s mixer set to %d bit for %x format", __func__, my_data->current_backend_cfg[backend_idx].bitwidth_mixer_ctl, bit_width, format); for (int idx = 0; idx < MAX_CODEC_BACKENDS; idx++) { if (my_data->current_backend_cfg[idx].bitwidth_mixer_ctl) { ctl = mixer_get_ctl_by_name(adev->mixer, my_data->current_backend_cfg[idx].bitwidth_mixer_ctl); id_string = platform_get_mixer_control(ctl); if (id_string) { cfg_value = audio_extn_utils_get_bit_width_from_string(id_string); if (cfg_value > 0) my_data->current_backend_cfg[idx].bit_width = cfg_value; } } } } /* set the ret as 0 and not pass back to upper layer */ ret = 0; Loading Loading @@ -9486,10 +9499,26 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, return -EINVAL; } ret = mixer_ctl_set_enum_by_string(ctl, rate_str); if (ret < 0) { ALOGE("%s:becf: afe: fail for %s mixer set to %s", __func__, my_data->current_backend_cfg[backend_idx].samplerate_mixer_ctl, rate_str); } else { ALOGD("%s:becf: afe: %s set to %s", __func__, my_data->current_backend_cfg[backend_idx].samplerate_mixer_ctl, rate_str); mixer_ctl_set_enum_by_string(ctl, rate_str); my_data->current_backend_cfg[backend_idx].sample_rate = sample_rate; for (int idx = 0; idx < MAX_CODEC_BACKENDS; idx++) { if (my_data->current_backend_cfg[idx].samplerate_mixer_ctl) { ctl = mixer_get_ctl_by_name(adev->mixer, my_data->current_backend_cfg[idx].samplerate_mixer_ctl); id_string = platform_get_mixer_control(ctl); if (id_string) { cfg_value = audio_extn_utils_get_sample_rate_from_string(id_string); if (cfg_value > 0) my_data->current_backend_cfg[idx].sample_rate = cfg_value; } } } } ret = 0; } if ((my_data->current_backend_cfg[backend_idx].channels_mixer_ctl) && Loading Loading @@ -9525,8 +9554,27 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, my_data->current_backend_cfg[backend_idx].channels_mixer_ctl); return -EINVAL; } mixer_ctl_set_enum_by_string(ctl, channel_cnt_str); my_data->current_backend_cfg[backend_idx].channels = channels; ret = mixer_ctl_set_enum_by_string(ctl, channel_cnt_str); if (ret < 0) { ALOGE("%s:becf: afe: fail for %s mixer set to %s", __func__, my_data->current_backend_cfg[backend_idx].channels_mixer_ctl, channel_cnt_str); } else { ALOGD("%s:becf: afe: %s set to %s", __func__, my_data->current_backend_cfg[backend_idx].channels_mixer_ctl, channel_cnt_str); for (int idx = 0; idx < MAX_CODEC_BACKENDS; idx++) { if (my_data->current_backend_cfg[idx].channels_mixer_ctl) { ctl = mixer_get_ctl_by_name(adev->mixer, my_data->current_backend_cfg[idx].channels_mixer_ctl); id_string = platform_get_mixer_control(ctl); if (id_string) { cfg_value = audio_extn_utils_get_channels_from_string(id_string); if (cfg_value > 0) my_data->current_backend_cfg[idx].channels = cfg_value; } } } } ret = 0; if ((backend_idx == HDMI_RX_BACKEND) || (backend_idx == DISP_PORT_RX_BACKEND) || Loading @@ -9534,11 +9582,6 @@ static int platform_set_codec_backend_cfg(struct audio_device* adev, platform_set_edid_channels_configuration_v2(adev->platform, channels, backend_idx, snd_device, controller, stream); ALOGD("%s:becf: afe: %s set to %s ", __func__, my_data->current_backend_cfg[backend_idx].channels_mixer_ctl, channel_cnt_str); ret = 0; } bool set_ext_disp_format = false, set_mi2s_tx_data_format = false; Loading