drm/amd/display: Add extra T3 delay
[Why] For some special panel, it will have an invalid HPD high cause driver DPCD read/write fail. [How] Add extra T3 delay as a monitor patch in dce110_edp_wait_for_hpd_ready Signed-off-by: Lewis Huang <Lewis.Huang@amd.com> Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
bcc6aa61c8
commit
6798d04205
@ -233,6 +233,7 @@ struct dc_panel_patch {
|
||||
unsigned int skip_scdc_overwrite;
|
||||
unsigned int delay_ignore_msa;
|
||||
unsigned int disable_fec;
|
||||
unsigned int extra_t3_ms;
|
||||
};
|
||||
|
||||
struct dc_edid_caps {
|
||||
|
@ -720,6 +720,7 @@ void dce110_edp_wait_for_hpd_ready(
|
||||
struct dc_context *ctx = link->ctx;
|
||||
struct graphics_object_id connector = link->link_enc->connector;
|
||||
struct gpio *hpd;
|
||||
struct dc_sink *sink = link->local_sink;
|
||||
bool edp_hpd_high = false;
|
||||
uint32_t time_elapsed = 0;
|
||||
uint32_t timeout = power_up ?
|
||||
@ -752,6 +753,14 @@ void dce110_edp_wait_for_hpd_ready(
|
||||
return;
|
||||
}
|
||||
|
||||
if (sink != NULL) {
|
||||
if (sink->edid_caps.panel_patch.extra_t3_ms > 0) {
|
||||
int extra_t3_in_ms = sink->edid_caps.panel_patch.extra_t3_ms;
|
||||
|
||||
msleep(extra_t3_in_ms);
|
||||
}
|
||||
}
|
||||
|
||||
dal_gpio_open(hpd, GPIO_MODE_INTERRUPT);
|
||||
|
||||
/* wait until timeout or panel detected */
|
||||
|
Reference in New Issue
Block a user