]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 19:03:44 +0000 (20:03 +0100)
[ Upstream commit 0e37e4b9afbd08df1f00a70bbb4d1ec273d18c9e ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c

index 4e93eeedfc1bbde51c63666236455301d22b2367..a8e04a39a19e5d7e23d52c4c4ed5bfd19246cb64 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;