[PATCH 2/2] drm/amd/display: enable sink DSC before source DSC
Mauricio Bellon <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
From: Mauricio Bellon <[email protected]> Direct DisplayPort high-refresh modes using DSC and two-way ODM can commit without visible output during a 4K120-to-4K144 transition. A working 4K144 stream can also return black after long-pulse hotplug reconstruction. The DPMS-on path currently enables source DSC before link enablement but does not enable sink DSC until after the source stream is enabled. This leaves the sink and source compression state ordered differently while the stream is brought up. Enable sink DSC immediately before source DSC in the pre-enable phase, and remove the later redundant sink-enable operation near PPS packet programming. This establishes the order as sink DSC, source DSC, stream enablement, and PPS before the compressed stream becomes visible. Cc: [email protected] Signed-off-by: Mauricio Bellon <[email protected]> --- drivers/gpu/drm/amd/display/dc/link/link_dpms.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c index 48b086d15..412ce52b3 100644 --- a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c +++ b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c @@ -2635,8 +2635,10 @@ static enum dc_status link_set_dpms_on_pre_enable_link( */ if (stream->timing.flags.DSC) { if (dc_is_dp_signal(stream->signal) || - dc_is_virtual_signal(stream->signal)) + dc_is_virtual_signal(stream->signal)) { + dp_set_dsc_on_rx(pipe_ctx, true); link_set_dsc_enable(pipe_ctx, true); + } } if (link->replay_settings.config.replay_supported && !dc_is_embedded_signal(link->connector_signal)) @@ -2729,7 +2731,6 @@ static enum dc_status link_set_dpms_on_post_enable_link( if (stream->timing.flags.DSC) { if (dc_is_dp_signal(stream->signal) || dc_is_virtual_signal(stream->signal)) { - dp_set_dsc_on_rx(pipe_ctx, true); link_set_dsc_pps_packet(pipe_ctx, true, true); } } -- 2.53.0