struct mpc *mpc = dc->res_pool->mpc;
        struct mpc_tree *mpc_tree_params = &(pipe_ctx->stream_res.opp->mpc_tree_params);
 
+
+
        /* TODO: proper fix once fpga works */
 
        if (dc->debug.surface_visual_confirm)
                        pipe_ctx->stream->output_color_space)
                                        && per_pixel_alpha;
 
+
        /*
         * TODO: remove hack
         * Note: currently there is a bug in init_hw such that
         */
        mpcc_id = hubp->inst;
 
+       /* If there is no full update, don't need to touch MPC tree*/
+       if (!pipe_ctx->plane_state->update_flags.bits.full_update) {
+               mpc->funcs->update_blending(mpc, &blnd_cfg, mpcc_id);
+               return;
+       }
+
        /* check if this MPCC is already being used */
        new_mpcc = mpc->funcs->get_mpcc_for_dpp(mpc_tree_params, mpcc_id);
        /* remove MPCC if being used */
 
        int mpcc_id)
 {
        struct dcn10_mpc *mpc10 = TO_DCN10_MPC(mpc);
+       struct mpcc *mpcc = mpc1_get_mpcc(mpc, mpcc_id);
 
        REG_UPDATE_5(MPCC_CONTROL[mpcc_id],
                        MPCC_ALPHA_BLND_MODE,           blnd_cfg->alpha_mode,
                        MPCC_GLOBAL_GAIN,               blnd_cfg->global_gain);
 
        mpc1_set_bg_color(mpc, &blnd_cfg->black_color, mpcc_id);
+       mpcc->blnd_cfg = *blnd_cfg;
 }
 
 void mpc1_update_stereo_mix(
        }
 
        /* update the blending configuration */
-       new_mpcc->blnd_cfg = *blnd_cfg;
-       mpc->funcs->update_blending(mpc, &new_mpcc->blnd_cfg, mpcc_id);
+       mpc->funcs->update_blending(mpc, blnd_cfg, mpcc_id);
 
        /* update the stereo mix settings, if provided */
        if (sm_cfg != NULL) {