From 936859f0ce09f3f6351f796995829de3b6af1fc3 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mar 19 2024 14:30:12 +0000 Subject: drm/amd/display: Prevent vtotal from being set to 0 (git-fixes). --- diff --git a/patches.suse/drm-amd-display-Prevent-vtotal-from-being-set-to-0.patch b/patches.suse/drm-amd-display-Prevent-vtotal-from-being-set-to-0.patch new file mode 100644 index 0000000..066beaf --- /dev/null +++ b/patches.suse/drm-amd-display-Prevent-vtotal-from-being-set-to-0.patch @@ -0,0 +1,51 @@ +From 2a9482e55968ed7368afaa9c2133404069117320 Mon Sep 17 00:00:00 2001 +From: Daniel Miess +Date: Thu, 22 Jun 2023 08:11:48 -0400 +Subject: [PATCH] drm/amd/display: Prevent vtotal from being set to 0 +Git-commit: 2a9482e55968ed7368afaa9c2133404069117320 +Patch-mainline: v6.5-rc3 +References: git-fixes + +[Why] +In dcn314 DML the destination pipe vtotal was being set +to the crtc adjustment vtotal_min value even in cases +where that value is 0. + +[How] +Only set vtotal to the crtc adjustment vtotal_min value +in cases where the value is non-zero. + +Cc: Mario Limonciello +Cc: Alex Deucher +Cc: stable@vger.kernel.org +Reviewed-by: Nicholas Kazlauskas +Acked-by: Alan Liu +Signed-off-by: Daniel Miess +Tested-by: Daniel Wheeler +Signed-off-by: Alex Deucher +Acked-by: Takashi Iwai + +--- + drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c b/drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c +index d9e049e7ff0a..ed8ddb75b333 100644 +--- a/drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c ++++ b/drivers/gpu/drm/amd/display/dc/dml/dcn314/dcn314_fpu.c +@@ -295,7 +295,11 @@ int dcn314_populate_dml_pipes_from_context_fpu(struct dc *dc, struct dc_state *c + pipe = &res_ctx->pipe_ctx[i]; + timing = &pipe->stream->timing; + +- pipes[pipe_cnt].pipe.dest.vtotal = pipe->stream->adjust.v_total_min; ++ if (pipe->stream->adjust.v_total_min != 0) ++ pipes[pipe_cnt].pipe.dest.vtotal = pipe->stream->adjust.v_total_min; ++ else ++ pipes[pipe_cnt].pipe.dest.vtotal = timing->v_total; ++ + pipes[pipe_cnt].pipe.dest.vblank_nom = timing->v_total - pipes[pipe_cnt].pipe.dest.vactive; + pipes[pipe_cnt].pipe.dest.vblank_nom = min(pipes[pipe_cnt].pipe.dest.vblank_nom, dcn3_14_ip.VBlankNomDefaultUS); + pipes[pipe_cnt].pipe.dest.vblank_nom = max(pipes[pipe_cnt].pipe.dest.vblank_nom, timing->v_sync_width); +-- +2.43.0 + diff --git a/series.conf b/series.conf index b674d8d..567ea53 100644 --- a/series.conf +++ b/series.conf @@ -43036,6 +43036,7 @@ patches.suse/drm-amd-display-Add-polling-method-to-handle-MST-rep.patch patches.suse/drm-amd-display-check-TG-is-non-null-before-checking.patch patches.suse/drm-amd-display-Disable-MPC-split-by-default-on-spec.patch + patches.suse/drm-amd-display-Prevent-vtotal-from-being-set-to-0.patch patches.suse/drm-amd-display-Keep-PHY-active-for-DP-displays-on-D.patch patches.suse/drm-atomic-Fix-potential-use-after-free-in-nonblocki.patch patches.suse/fbdev-imxfb-warn-about-invalid-left-right-margin.patch