From: Sasha Levin Date: Sat, 16 Sep 2023 18:05:14 +0000 (-0400) Subject: Drop drm-amd-display-update-blank-state-on-odm-changes.patch X-Git-Tag: v5.10.195~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8215283aaad74cdadd1b9b66077702f82caba358;p=thirdparty%2Fkernel%2Fstable-queue.git Drop drm-amd-display-update-blank-state-on-odm-changes.patch Signed-off-by: Sasha Levin --- diff --git a/queue-6.5/drm-amd-display-update-blank-state-on-odm-changes.patch b/queue-6.5/drm-amd-display-update-blank-state-on-odm-changes.patch deleted file mode 100644 index f1ccf7eaae5..00000000000 --- a/queue-6.5/drm-amd-display-update-blank-state-on-odm-changes.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 1482650bc7ef01ebb24ec2c3a2e4d50e45da4d8c Mon Sep 17 00:00:00 2001 -From: Wenjing Liu -Date: Mon, 14 Aug 2023 17:11:16 -0400 -Subject: drm/amd/display: update blank state on ODM changes - -From: Wenjing Liu - -commit 1482650bc7ef01ebb24ec2c3a2e4d50e45da4d8c upstream. - -When we are dynamically adding new ODM slices, we didn't update -blank state, if the pipe used by new ODM slice is previously blanked, -we will continue outputting blank pixel data on that slice causing -right half of the screen showing blank image. - -The previous fix was a temporary hack to directly update current state -when committing new state. This could potentially cause hw and sw -state synchronization issues and it is not permitted by dc commit -design. - -Cc: stable@vger.kernel.org -Fixes: 7fbf451e7639 ("drm/amd/display: Reinit DPG when exiting dynamic ODM") -Reviewed-by: Dillon Varone -Acked-by: Hamza Mahfooz -Signed-off-by: Wenjing Liu -Signed-off-by: Alex Deucher -Signed-off-by: Greg Kroah-Hartman ---- - drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 36 +++++---------------- - 1 file changed, 9 insertions(+), 27 deletions(-) - ---- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c -@@ -1103,29 +1103,6 @@ void dcn20_blank_pixel_data( - 0); - } - -- if (!blank && dc->debug.enable_single_display_2to1_odm_policy) { -- /* when exiting dynamic ODM need to reinit DPG state for unused pipes */ -- struct pipe_ctx *old_odm_pipe = dc->current_state->res_ctx.pipe_ctx[pipe_ctx->pipe_idx].next_odm_pipe; -- -- odm_pipe = pipe_ctx->next_odm_pipe; -- -- while (old_odm_pipe) { -- if (!odm_pipe || old_odm_pipe->pipe_idx != odm_pipe->pipe_idx) -- dc->hwss.set_disp_pattern_generator(dc, -- old_odm_pipe, -- CONTROLLER_DP_TEST_PATTERN_VIDEOMODE, -- CONTROLLER_DP_COLOR_SPACE_UDEFINED, -- COLOR_DEPTH_888, -- NULL, -- 0, -- 0, -- 0); -- old_odm_pipe = old_odm_pipe->next_odm_pipe; -- if (odm_pipe) -- odm_pipe = odm_pipe->next_odm_pipe; -- } -- } -- - if (!blank) - if (stream_res->abm) { - dc->hwss.set_pipe(pipe_ctx); -@@ -1706,11 +1683,16 @@ static void dcn20_program_pipe( - struct dc_state *context) - { - struct dce_hwseq *hws = dc->hwseq; -- /* Only need to unblank on top pipe */ - -- if ((pipe_ctx->update_flags.bits.enable || pipe_ctx->stream->update_flags.bits.abm_level) -- && !pipe_ctx->top_pipe && !pipe_ctx->prev_odm_pipe) -- hws->funcs.blank_pixel_data(dc, pipe_ctx, !pipe_ctx->plane_state->visible); -+ /* Only need to unblank on top pipe */ -+ if (resource_is_pipe_type(pipe_ctx, OTG_MASTER)) { -+ if (pipe_ctx->update_flags.bits.enable || -+ pipe_ctx->update_flags.bits.odm || -+ pipe_ctx->stream->update_flags.bits.abm_level) -+ hws->funcs.blank_pixel_data(dc, pipe_ctx, -+ !pipe_ctx->plane_state || -+ !pipe_ctx->plane_state->visible); -+ } - - /* Only update TG on top pipe */ - if (pipe_ctx->update_flags.bits.global_sync && !pipe_ctx->top_pipe diff --git a/queue-6.5/series b/queue-6.5/series index faf257e4d47..75863e4c0b7 100644 --- a/queue-6.5/series +++ b/queue-6.5/series @@ -239,4 +239,3 @@ drm-amd-display-always-switch-off-odm-before-committing-more-streams.patch drm-amd-display-remove-wait-while-locked.patch drm-amdkfd-add-missing-gfx11-mqd-manager-callbacks.patch drm-amdgpu-register-a-dirty-framebuffer-callback-for-fbcon.patch -drm-amd-display-update-blank-state-on-odm-changes.patch