]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/amd/display: Add NULL plane_state check for cursor disable logic
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Sat, 11 Mar 2023 14:11:29 +0000 (09:11 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 May 2023 09:50:27 +0000 (11:50 +0200)
[ Upstream commit d29fb7baab09b6a1dc484c9c67933253883e770a ]

[Why]
While scanning the top_pipe connections we can run into a case where
the bottom pipe is still connected to a top_pipe but with a NULL
plane_state.

[How]
Treat a NULL plane_state the same as the plane being invisible for
pipe cursor disable logic.

Cc: stable@vger.kernel.org
Cc: Mario Limonciello <mario.limonciello@amd.com>
Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@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/dcn10/dcn10_hw_sequencer.c

index eef6e4c80a37fc722d2d4c61bae783b0f27a7a8c..73457c32f3e7f59331610b734867135660fb7018 100644 (file)
@@ -3225,7 +3225,9 @@ static bool dcn10_can_pipe_disable_cursor(struct pipe_ctx *pipe_ctx)
        for (test_pipe = pipe_ctx->top_pipe; test_pipe;
             test_pipe = test_pipe->top_pipe) {
                // Skip invisible layer and pipe-split plane on same layer
-               if (!test_pipe->plane_state->visible || test_pipe->plane_state->layer_index == cur_layer)
+               if (!test_pipe->plane_state ||
+                   !test_pipe->plane_state->visible ||
+                   test_pipe->plane_state->layer_index == cur_layer)
                        continue;
 
                r2 = test_pipe->plane_res.scl_data.recout;