drm/amd/display: skip disable CRTC in seemless bootup case
authorFudongwang <Fudong.Wang@amd.com>
Sat, 14 Sep 2024 01:33:44 +0000 (09:33 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 7 Oct 2024 18:10:29 +0000 (14:10 -0400)
Resync FIFO is a workaround to write the same value to
DENTIST_DISPCLK_CNTL register after programming OTG_PIXEL_RATE_DIV
register, in case seemless boot, there is no OTG_PIXEL_RATE_DIV register
update, so skip CRTC disable when resync FIFO to avoid random FIFO error
and garbage.

Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Fudongwang <Fudong.Wang@amd.com>
Signed-off-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c

index 5b6cf2a8e38da6659aca7220c4f7fc3075f2e617..e0054e654db6276a43b5b457b619758bb6245eaf 100644 (file)
@@ -371,7 +371,9 @@ void dcn314_resync_fifo_dccg_dio(struct dce_hwseq *hws, struct dc *dc, struct dc
                if (pipe->top_pipe || pipe->prev_odm_pipe)
                        continue;
 
-               if (pipe->stream && (pipe->stream->dpms_off || dc_is_virtual_signal(pipe->stream->signal))) {
+               if (pipe->stream && (pipe->stream->dpms_off || dc_is_virtual_signal(pipe->stream->signal)) &&
+                       !pipe->stream->apply_seamless_boot_optimization &&
+                       !pipe->stream->apply_edp_fast_boot_optimization) {
                        pipe->stream_res.tg->funcs->disable_crtc(pipe->stream_res.tg);
                        reset_sync_context_for_pipe(dc, context, i);
                        otg_disabled[i] = true;