From: Hugo Hu <hugo...@amd.com>

[Why]
Background color only takes effect in bottommost mpcc.

[How]
Update background color in bottommost mpcc.

Signed-off-by: Hugo Hu <hugo...@amd.com>
Reviewed-by: Yongqiang Sun <yongqiang....@amd.com>
Acked-by: Rodrigo Siqueira <rodrigo.sique...@amd.com>
---
 .../gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c  | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

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 220154f7911a..04f863499cfb 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
@@ -42,20 +42,27 @@ void mpc1_set_bg_color(struct mpc *mpc,
                int mpcc_id)
 {
        struct dcn10_mpc *mpc10 = TO_DCN10_MPC(mpc);
+       struct mpcc *bottommost_mpcc = mpc1_get_mpcc(mpc, mpcc_id);
+       uint32_t bg_r_cr, bg_g_y, bg_b_cb;
+
+       /* find bottommost mpcc. */
+       while (bottommost_mpcc->mpcc_bot) {
+               bottommost_mpcc = bottommost_mpcc->mpcc_bot;
+       }
 
        /* mpc color is 12 bit.  tg_color is 10 bit */
        /* todo: might want to use 16 bit to represent color and have each
         * hw block translate to correct color depth.
         */
-       uint32_t bg_r_cr = bg_color->color_r_cr << 2;
-       uint32_t bg_g_y = bg_color->color_g_y << 2;
-       uint32_t bg_b_cb = bg_color->color_b_cb << 2;
+       bg_r_cr = bg_color->color_r_cr << 2;
+       bg_g_y = bg_color->color_g_y << 2;
+       bg_b_cb = bg_color->color_b_cb << 2;
 
-       REG_SET(MPCC_BG_R_CR[mpcc_id], 0,
+       REG_SET(MPCC_BG_R_CR[bottommost_mpcc->mpcc_id], 0,
                        MPCC_BG_R_CR, bg_r_cr);
-       REG_SET(MPCC_BG_G_Y[mpcc_id], 0,
+       REG_SET(MPCC_BG_G_Y[bottommost_mpcc->mpcc_id], 0,
                        MPCC_BG_G_Y, bg_g_y);
-       REG_SET(MPCC_BG_B_CB[mpcc_id], 0,
+       REG_SET(MPCC_BG_B_CB[bottommost_mpcc->mpcc_id], 0,
                        MPCC_BG_B_CB, bg_b_cb);
 }
 
-- 
2.24.0

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to