drm/sunxi-hdmi: auto-skip audio when sink has no audio capability
This commit is contained in:
parent
57fd4dd297
commit
99950980d2
@ -811,6 +811,12 @@ int dw_audio_on(void)
|
||||
struct dw_hdmi_dev_s *hdmi = dw_get_hdmi();
|
||||
struct dw_audio_s *audio = &hdmi->audio_dev;
|
||||
|
||||
if (!dw_sink_support_audio()) {
|
||||
hdmi_inf("sink does not advertise audio, skip audio enable\n");
|
||||
hdmi->audio_on = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
_dw_audio_param_print(audio);
|
||||
|
||||
ret = dw_hdmi_ctrl_update();
|
||||
@ -826,7 +832,7 @@ int dw_audio_on(void)
|
||||
}
|
||||
|
||||
if (_dw_audio_check_params() == false) {
|
||||
hdmi_err("dw audio check params is invalid!\n");
|
||||
hdmi_wrn("dw audio check params is invalid, skip audio path\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
|
||||
@ -981,6 +981,25 @@ bool dw_sink_support_scdc(void)
|
||||
return sink->edid_mHdmiForumvsdb.mSCDC_Present;
|
||||
}
|
||||
|
||||
int dw_sink_support_audio(void)
|
||||
{
|
||||
struct sink_info_s *sink = dw_get_sink();
|
||||
|
||||
if (IS_ERR_OR_NULL(sink)) {
|
||||
shdmi_err(sink);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Prefer CTA basic-audio bit, and fallback to SAD entries for sinks
|
||||
* that only expose detailed audio descriptors.
|
||||
*/
|
||||
if (sink->edid_mBasicAudioSupport || sink->edid_mSadIndex > 0)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dw_sink_support_only_yuv420(u32 vic)
|
||||
{
|
||||
struct sink_info_s *sink = dw_get_sink();
|
||||
|
||||
@ -51,6 +51,8 @@ int dw_sink_support_cea_vic(u32 code);
|
||||
|
||||
bool dw_sink_support_scdc(void);
|
||||
|
||||
int dw_sink_support_audio(void);
|
||||
|
||||
int dw_edid_exit(void);
|
||||
|
||||
int dw_edid_init(void);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user