dpp3_program_post_csc(dpp_base, color_space, select, NULL);
}
}
+static void dcn42_dpp_force_disable_cursor(struct dpp *dpp_base)
+{
+ struct dcn401_dpp *dpp = TO_DCN401_DPP(dpp_base);
+
+ /* Force disable cursor */
+ REG_UPDATE(CURSOR0_CONTROL, CUR0_ENABLE, 0);
+ dpp_base->pos.cur0_ctl.bits.cur0_enable = 0;
+}
static struct dpp_funcs dcn42_dpp_funcs = {
.dpp_program_gamcor_lut = dpp3_program_gamcor_lut,
.dpp_cm_hist_control = dpp42_dpp_cm_hist_control,
.dpp_cm_hist_read = dpp42_dpp_cm_hist_read,
.dpp_read_reg_state = dpp30_read_reg_state,
+ .dpp_force_disable_cursor = dcn42_dpp_force_disable_cursor,
};
if (!pipe_ctx->plane_res.hubp || pipe_ctx->plane_res.hubp->power_gated)
return;
+ if (dc->debug.disable_dpp_power_gate) {
+ /* Workaround for use case when disabled power gating set to 1 */
+ /* Force disable cursor if power gating is disabled */
+ struct dpp *dpp = pipe_ctx->plane_res.dpp;
+ if (dpp && dpp->funcs->dpp_force_disable_cursor)
+ dpp->funcs->dpp_force_disable_cursor(dpp);
+ }
if (hws->funcs.plane_atomic_disable)
hws->funcs.plane_atomic_disable(dc, pipe_ctx);