@@ -23,6 +23,9 @@
#define DISP_OD_INTSTA 0x000c
#define DISP_OD_CFG 0x0020
#define DISP_OD_SIZE 0x0030
+
+#define DITHER_REG(idx) (0x100 + (idx) * 4)
+#define DITHER_BYPASS_SHADOW BIT(0)
#define DISP_DITHER_5 0x0114
#define DISP_DITHER_7 0x011c
#define DISP_DITHER_15 0x013c
@@ -291,6 +294,13 @@ static void mtk_dither_stop(struct mtk_ddp_comp *comp)
writel_relaxed(0x0, comp->regs + DISP_DITHER_EN);
}
+static void mtk_dither_bypass_shadow(struct mtk_ddp_comp *comp)
+{
+ mtk_ddp_write_mask(NULL, DITHER_BYPASS_SHADOW, comp,
+ DITHER_REG(0),
+ DITHER_BYPASS_SHADOW);
+}
+
static void mtk_gamma_config(struct mtk_ddp_comp *comp, unsigned int w,
unsigned int h, unsigned int vrefresh,
unsigned int bpc, struct cmdq_pkt *cmdq_pkt)
@@ -368,6 +378,7 @@ static void mtk_postmask_stop(struct mtk_ddp_comp *comp)
.config = mtk_dither_config,
.start = mtk_dither_start,
.stop = mtk_dither_stop,
+ .bypass_shadow = mtk_dither_bypass_shadow,
};
static const struct mtk_ddp_comp_funcs ddp_gamma = {
add dither bypass shadow register function Signed-off-by: Yongqiang Niu <yongqiang.niu@mediatek.com> --- drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 11 +++++++++++ 1 file changed, 11 insertions(+) -- 1.8.1.1.dirty