Commit 6798d042 authored by Lewis Huang's avatar Lewis Huang Committed by Alex Deucher

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: default avatarLewis Huang <Lewis.Huang@amd.com>
Reviewed-by: default avatarAnthony Koo <Anthony.Koo@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent bcc6aa61
...@@ -233,6 +233,7 @@ struct dc_panel_patch { ...@@ -233,6 +233,7 @@ struct dc_panel_patch {
unsigned int skip_scdc_overwrite; unsigned int skip_scdc_overwrite;
unsigned int delay_ignore_msa; unsigned int delay_ignore_msa;
unsigned int disable_fec; unsigned int disable_fec;
unsigned int extra_t3_ms;
}; };
struct dc_edid_caps { struct dc_edid_caps {
......
...@@ -720,6 +720,7 @@ void dce110_edp_wait_for_hpd_ready( ...@@ -720,6 +720,7 @@ void dce110_edp_wait_for_hpd_ready(
struct dc_context *ctx = link->ctx; struct dc_context *ctx = link->ctx;
struct graphics_object_id connector = link->link_enc->connector; struct graphics_object_id connector = link->link_enc->connector;
struct gpio *hpd; struct gpio *hpd;
struct dc_sink *sink = link->local_sink;
bool edp_hpd_high = false; bool edp_hpd_high = false;
uint32_t time_elapsed = 0; uint32_t time_elapsed = 0;
uint32_t timeout = power_up ? uint32_t timeout = power_up ?
...@@ -752,6 +753,14 @@ void dce110_edp_wait_for_hpd_ready( ...@@ -752,6 +753,14 @@ void dce110_edp_wait_for_hpd_ready(
return; 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); dal_gpio_open(hpd, GPIO_MODE_INTERRUPT);
/* wait until timeout or panel detected */ /* wait until timeout or panel detected */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment