Re: [PATCH v5, 17/32] drm/mediatek: add component DITHER

From: CK Hu
Date: Wed Oct 09 2019 - 05:11:41 EST


Hi, Yongqiang:

On Thu, 2019-08-29 at 22:50 +0800, yongqiang.niu@xxxxxxxxxxxx wrote:
> From: Yongqiang Niu <yongqiang.niu@xxxxxxxxxxxx>
>
> This patch add component DITHER
>

Applied to mediatek-drm-next-5.5 [1], thanks.

[1]
https://github.com/ckhu-mediatek/linux.git-tags/commits/mediatek-drm-next-5.5

Regards,
CK

> Signed-off-by: Yongqiang Niu <yongqiang.niu@xxxxxxxxxxxx>
> Reviewed-by: CK Hu <ck.hu@xxxxxxxxxxxx>
> ---
> drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 32 +++++++++++++++++++++++++++++
> drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 2 ++
> 2 files changed, 34 insertions(+)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> index af8e872..8fea985 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> @@ -39,6 +39,12 @@
> #define CCORR_RELAY_MODE BIT(0)
> #define DISP_CCORR_SIZE 0x0030
>
> +#define DISP_DITHER_EN 0x0000
> +#define DITHER_EN BIT(0)
> +#define DISP_DITHER_CFG 0x0020
> +#define DITHER_RELAY_MODE BIT(0)
> +#define DISP_DITHER_SIZE 0x0030
> +
> #define DISP_GAMMA_EN 0x0000
> #define DISP_GAMMA_CFG 0x0020
> #define DISP_GAMMA_SIZE 0x0030
> @@ -147,6 +153,24 @@ static void mtk_ccorr_stop(struct mtk_ddp_comp *comp)
> writel_relaxed(0x0, comp->regs + DISP_CCORR_EN);
> }
>
> +static void mtk_dither_config(struct mtk_ddp_comp *comp, unsigned int w,
> + unsigned int h, unsigned int vrefresh,
> + unsigned int bpc)
> +{
> + writel(h << 16 | w, comp->regs + DISP_DITHER_SIZE);
> + writel(DITHER_RELAY_MODE, comp->regs + DISP_DITHER_CFG);
> +}
> +
> +static void mtk_dither_start(struct mtk_ddp_comp *comp)
> +{
> + writel(DITHER_EN, comp->regs + DISP_DITHER_EN);
> +}
> +
> +static void mtk_dither_stop(struct mtk_ddp_comp *comp)
> +{
> + writel_relaxed(0x0, comp->regs + DISP_DITHER_EN);
> +}
> +
> static void mtk_gamma_config(struct mtk_ddp_comp *comp, unsigned int w,
> unsigned int h, unsigned int vrefresh,
> unsigned int bpc)
> @@ -201,6 +225,12 @@ static void mtk_gamma_set(struct mtk_ddp_comp *comp,
> .stop = mtk_ccorr_stop,
> };
>
> +static const struct mtk_ddp_comp_funcs ddp_dither = {
> + .config = mtk_dither_config,
> + .start = mtk_dither_start,
> + .stop = mtk_dither_stop,
> +};
> +
> static const struct mtk_ddp_comp_funcs ddp_gamma = {
> .gamma_set = mtk_gamma_set,
> .config = mtk_gamma_config,
> @@ -226,6 +256,7 @@ static void mtk_gamma_set(struct mtk_ddp_comp *comp,
> [MTK_DISP_CCORR] = "ccorr",
> [MTK_DISP_AAL] = "aal",
> [MTK_DISP_GAMMA] = "gamma",
> + [MTK_DISP_DITHER] = "dither",
> [MTK_DISP_UFOE] = "ufoe",
> [MTK_DSI] = "dsi",
> [MTK_DPI] = "dpi",
> @@ -248,6 +279,7 @@ struct mtk_ddp_comp_match {
> [DDP_COMPONENT_CCORR] = { MTK_DISP_CCORR, 0, &ddp_ccorr },
> [DDP_COMPONENT_COLOR0] = { MTK_DISP_COLOR, 0, NULL },
> [DDP_COMPONENT_COLOR1] = { MTK_DISP_COLOR, 1, NULL },
> + [DDP_COMPONENT_DITHER] = { MTK_DISP_DITHER, 0, &ddp_dither },
> [DDP_COMPONENT_DPI0] = { MTK_DPI, 0, NULL },
> [DDP_COMPONENT_DPI1] = { MTK_DPI, 1, NULL },
> [DDP_COMPONENT_DSI0] = { MTK_DSI, 0, NULL },
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h
> index 962d14a..85e096a 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h
> @@ -22,6 +22,7 @@ enum mtk_ddp_comp_type {
> MTK_DISP_WDMA,
> MTK_DISP_COLOR,
> MTK_DISP_CCORR,
> + MTK_DISP_DITHER,
> MTK_DISP_AAL,
> MTK_DISP_GAMMA,
> MTK_DISP_UFOE,
> @@ -41,6 +42,7 @@ enum mtk_ddp_comp_id {
> DDP_COMPONENT_CCORR,
> DDP_COMPONENT_COLOR0,
> DDP_COMPONENT_COLOR1,
> + DDP_COMPONENT_DITHER,
> DDP_COMPONENT_DPI0,
> DDP_COMPONENT_DPI1,
> DDP_COMPONENT_DSI0,