drm/amd/display: Monitor patch to delay setting ignore MSA bit
authorJaehyun Chung <jaehyun.chung@amd.com>
Tue, 11 Feb 2020 16:19:41 +0000 (11:19 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 25 Feb 2020 16:08:27 +0000 (11:08 -0500)
[Why]
Some displays clear ignore MSA bit on mode change, which cause
blackscreen when programming variable vtotals. Ignore MSA bit needs
programming needs to be delayed or re-set to be retained.

[How]
Create patch to delay programming ignore MSA bit after unblanking
stream.

Signed-off-by: Jaehyun Chung <jaehyun.chung@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Anthony Koo <Anthony.Koo@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c
drivers/gpu/drm/amd/display/dc/dc_types.h

index a3bfa05c545e2fe02038559e1c0cf06d10f035c5..3420d098d77142dd37fdfdbe7d0e20e7145308e7 100644 (file)
@@ -3095,6 +3095,9 @@ void core_link_enable_stream(
                dc->hwss.unblank_stream(pipe_ctx,
                        &pipe_ctx->stream->link->cur_link_settings);
 
+               if (stream->link->local_sink->edid_caps.panel_patch.delay_ignore_msa > 0)
+                       msleep(stream->link->local_sink->edid_caps.panel_patch.delay_ignore_msa);
+
                if (dc_is_dp_signal(pipe_ctx->stream->signal))
                        enable_stream_features(pipe_ctx);
 #if defined(CONFIG_DRM_AMD_DC_HDCP)
index 1490732a4b44966974389b49fad90940325a7a65..299f6e00f576b438c6072407a66380845e10d3dd 100644 (file)
@@ -230,6 +230,7 @@ struct dc_panel_patch {
        unsigned int extra_delay_backlight_off;
        unsigned int extra_t7_ms;
        unsigned int skip_scdc_overwrite;
+       unsigned int delay_ignore_msa;
 };
 
 struct dc_edid_caps {