Merge "hal: Address missing sysfs update during DP disconnect"
This commit is contained in:
commit
51eb248cf0
|
@ -185,7 +185,7 @@ static int update_ext_disp_sysfs_node(const struct audio_device *adev, int node_
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void check_and_set_ext_disp_connection_status(const struct audio_device *adev,
|
||||
static void audio_extn_ext_disp_set_parameters(const struct audio_device *adev,
|
||||
struct str_parms *parms)
|
||||
{
|
||||
char value[32] = {0};
|
||||
|
@ -204,13 +204,14 @@ static void check_and_set_ext_disp_connection_status(const struct audio_device *
|
|||
&& (atoi(value) & AUDIO_DEVICE_OUT_AUX_DIGITAL)){
|
||||
//params = "disconnect=1024" for external display disconnection.
|
||||
update_ext_disp_sysfs_node(adev, 0);
|
||||
ALOGV("invalidate cached edid");
|
||||
platform_invalidate_hdmi_config(adev->platform);
|
||||
} else {
|
||||
// handle ext disp devices only
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifndef FM_POWER_OPT
|
||||
#define audio_extn_fm_set_parameters(adev, parms) (0)
|
||||
#else
|
||||
|
@ -772,7 +773,7 @@ void audio_extn_set_parameters(struct audio_device *adev,
|
|||
audio_extn_source_track_set_parameters(adev, parms);
|
||||
audio_extn_fbsp_set_parameters(parms);
|
||||
audio_extn_keep_alive_set_parameters(adev, parms);
|
||||
check_and_set_ext_disp_connection_status(adev, parms);
|
||||
audio_extn_ext_disp_set_parameters(adev, parms);
|
||||
if (adev->offload_effects_set_parameters != NULL)
|
||||
adev->offload_effects_set_parameters(parms);
|
||||
}
|
||||
|
|
|
@ -4259,10 +4259,13 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs)
|
|||
ret = str_parms_get_str(parms, AUDIO_PARAMETER_DEVICE_DISCONNECT, value, sizeof(value));
|
||||
if (ret >= 0) {
|
||||
val = atoi(value);
|
||||
if (val & AUDIO_DEVICE_OUT_AUX_DIGITAL) {
|
||||
ALOGV("invalidate cached edid");
|
||||
platform_invalidate_hdmi_config(adev->platform);
|
||||
} else if ((val & AUDIO_DEVICE_OUT_USB_DEVICE) ||
|
||||
/*
|
||||
* The HDMI / Displayport disconnect handling has been moved to
|
||||
* audio extension to ensure that its parameters are not
|
||||
* invalidated prior to updating sysfs of the disconnect event
|
||||
* Invalidate will be handled by audio_extn_ext_disp_set_parameters()
|
||||
*/
|
||||
if ((val & AUDIO_DEVICE_OUT_USB_DEVICE) ||
|
||||
!(val ^ AUDIO_DEVICE_IN_USB_DEVICE)) {
|
||||
ret = str_parms_get_str(parms, "card", value, sizeof(value));
|
||||
if (ret >= 0) {
|
||||
|
|
|
@ -163,6 +163,7 @@ bool platform_check_codec_dsd_support(void *platform);
|
|||
bool platform_check_codec_asrc_support(void *platform);
|
||||
int platform_get_backend_index(snd_device_t snd_device);
|
||||
int platform_get_ext_disp_type(void *platform);
|
||||
void platform_invalidate_hdmi_config(void *platform);
|
||||
|
||||
int platform_send_audio_cal(void* platform, int acdb_dev_id, int acdb_device_type,
|
||||
int app_type, int topology_id, int sample_rate, uint32_t module_id, uint32_t param_id,
|
||||
|
|
Loading…
Reference in New Issue