summarylogtreecommitdiffstats
path: root/0038-drm-amd-display-Avoid-MPC-infinite-loop.patch
diff options
context:
space:
mode:
Diffstat (limited to '0038-drm-amd-display-Avoid-MPC-infinite-loop.patch')
-rw-r--r--0038-drm-amd-display-Avoid-MPC-infinite-loop.patch64
1 files changed, 0 insertions, 64 deletions
diff --git a/0038-drm-amd-display-Avoid-MPC-infinite-loop.patch b/0038-drm-amd-display-Avoid-MPC-infinite-loop.patch
deleted file mode 100644
index cef646076e47..000000000000
--- a/0038-drm-amd-display-Avoid-MPC-infinite-loop.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From b26218b2349ac2b2141fd07430ded3786bee6910 Mon Sep 17 00:00:00 2001
-From: Josip Pavic <Josip.Pavic@amd.com>
-Date: Thu, 21 Jul 2022 15:33:00 -0400
-Subject: [PATCH 38/73] drm/amd/display: Avoid MPC infinite loop
-
-[ Upstream commit 8de297dc046c180651c0500f8611663ae1c3828a ]
-
-[why]
-In some cases MPC tree bottom pipe ends up point to itself. This causes
-iterating from top to bottom to hang the system in an infinite loop.
-
-[how]
-When looping to next MPC bottom pipe, check that the pointer is not same
-as current to avoid infinite loop.
-
-Reviewed-by: Josip Pavic <Josip.Pavic@amd.com>
-Reviewed-by: Jun Lei <Jun.Lei@amd.com>
-Acked-by: Alex Hung <alex.hung@amd.com>
-Signed-off-by: Aric Cyr <aric.cyr@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_mpc.c | 6 ++++++
- drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c | 6 ++++++
- 2 files changed, 12 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
-index 11019c2c62cc..8192f1967e92 100644
---- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
-+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
-@@ -126,6 +126,12 @@ struct mpcc *mpc1_get_mpcc_for_dpp(struct mpc_tree *tree, int dpp_id)
- while (tmp_mpcc != NULL) {
- if (tmp_mpcc->dpp_id == dpp_id)
- return tmp_mpcc;
-+
-+ /* avoid circular linked list */
-+ ASSERT(tmp_mpcc != tmp_mpcc->mpcc_bot);
-+ if (tmp_mpcc == tmp_mpcc->mpcc_bot)
-+ break;
-+
- tmp_mpcc = tmp_mpcc->mpcc_bot;
- }
- return NULL;
-diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c
-index 15734db0cdea..f3c311d09319 100644
---- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c
-+++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c
-@@ -531,6 +531,12 @@ static struct mpcc *mpc2_get_mpcc_for_dpp(struct mpc_tree *tree, int dpp_id)
- while (tmp_mpcc != NULL) {
- if (tmp_mpcc->dpp_id == 0xf || tmp_mpcc->dpp_id == dpp_id)
- return tmp_mpcc;
-+
-+ /* avoid circular linked list */
-+ ASSERT(tmp_mpcc != tmp_mpcc->mpcc_bot);
-+ if (tmp_mpcc == tmp_mpcc->mpcc_bot)
-+ break;
-+
- tmp_mpcc = tmp_mpcc->mpcc_bot;
- }
- return NULL;
---
-2.37.3
-