}
 }
 
+void dc_get_visual_confirm_for_stream(
+       struct dc *dc,
+       struct dc_stream_state *stream_state,
+       struct tg_color *color)
+{
+       struct dc_stream_status *stream_status = dc_stream_get_status(stream_state);
+       struct pipe_ctx *pipe_ctx;
+       int i;
+       struct dc_plane_state *plane_state = NULL;
+
+       if (!stream_status)
+               return;
+
+       switch (dc->debug.visual_confirm) {
+       case VISUAL_CONFIRM_DISABLE:
+               return;
+       case VISUAL_CONFIRM_PSR:
+       case VISUAL_CONFIRM_FAMS:
+               pipe_ctx = dc_stream_get_pipe_ctx(stream_state);
+               if (!pipe_ctx)
+                       return;
+               dc_dmub_srv_get_visual_confirm_color_cmd(dc, pipe_ctx);
+               memcpy(color, &dc->ctx->dmub_srv->dmub->visual_confirm_color, sizeof(struct tg_color));
+               return;
+
+       default:
+               /* find plane with highest layer_index */
+               for (i = 0; i < stream_status->plane_count; i++) {
+                       if (stream_status->plane_states[i]->visible)
+                               plane_state = stream_status->plane_states[i];
+               }
+               if (!plane_state)
+                       return;
+               /* find pipe that contains plane with highest layer index */
+               for (i = 0; i < MAX_PIPES; i++) {
+                       struct pipe_ctx *pipe = &dc->current_state->res_ctx.pipe_ctx[i];
+
+                       if (pipe->plane_state == plane_state) {
+                               memcpy(color, &pipe->visual_confirm_color, sizeof(struct tg_color));
+                               return;
+                       }
+               }
+       }
+}
+
 static void disable_dangling_plane(struct dc *dc, struct dc_state *context)
 {
        int i, j;
 
 /* DSC Interfaces */
 #include "dc_dsc.h"
 
+void dc_get_visual_confirm_for_stream(
+       struct dc *dc,
+       struct dc_stream_state *stream_state,
+       struct tg_color *color);
+
 /* Disable acc mode Interfaces */
 void dc_disable_accelerated_mode(struct dc *dc);
 
 
        struct mpc *mpc = dc->res_pool->mpc;
 
        if (mpc->funcs->set_bg_color) {
-               memcpy(&pipe_ctx->plane_state->visual_confirm_color, &(pipe_ctx->visual_confirm_color), sizeof(struct tg_color));
                mpc->funcs->set_bg_color(mpc, &(pipe_ctx->visual_confirm_color), mpcc_id);
        }
 }