]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/amd/display: Fix a bug when searching for insert_above_mpcc
authorWesley Chalmers <wesley.chalmers@amd.com>
Wed, 21 Jun 2023 23:13:26 +0000 (19:13 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 19 Sep 2023 10:28:10 +0000 (12:28 +0200)
commit 3d028d5d60d516c536de1ddd3ebf3d55f3f8983b upstream.

[WHY]
Currently, when insert_plane is called with insert_above_mpcc
parameter that is equal to tree->opp_list, the function returns NULL.

[HOW]
Instead, the function should insert the plane at the top of the tree.

Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Reviewed-by: Jun Lei <jun.lei@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Wesley Chalmers <wesley.chalmers@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c

index 8e9384094f6d6b3d8482983baa3440c7d119d49f..f2f55565e98a4c9d101c406ad87b89b24bc8ae15 100644 (file)
@@ -212,8 +212,9 @@ struct mpcc *mpc1_insert_plane(
                /* check insert_above_mpcc exist in tree->opp_list */
                struct mpcc *temp_mpcc = tree->opp_list;
 
-               while (temp_mpcc && temp_mpcc->mpcc_bot != insert_above_mpcc)
-                       temp_mpcc = temp_mpcc->mpcc_bot;
+               if (temp_mpcc != insert_above_mpcc)
+                       while (temp_mpcc && temp_mpcc->mpcc_bot != insert_above_mpcc)
+                               temp_mpcc = temp_mpcc->mpcc_bot;
                if (temp_mpcc == NULL)
                        return NULL;
        }