Re: [PATCH v2 11/15] drm/mediatek: add callback function to return OVL layer number

From: CK Hu
Date: Fri Aug 03 2018 - 01:11:47 EST


Hi, Stu:

On Fri, 2018-08-03 at 11:11 +0800, Stu Hsieh wrote:
> This patch add callback function to return OVL layer number
>
> Signed-off-by: Stu Hsieh <stu.hsieh@xxxxxxxxxxxx>
> ---
> drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> index 978782a77629..a42cfa057f42 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> @@ -58,6 +58,7 @@
> struct mtk_disp_ovl_data {
> unsigned int addr;
> bool fmt_rgb565_is_0;
> + unsigned int layer_nr;
> };
>
> /**
> @@ -132,6 +133,13 @@ static void mtk_ovl_config(struct mtk_ddp_comp *comp, unsigned int w,
> writel(0x0, comp->regs + DISP_REG_OVL_RST);
> }
>
> +static unsigned int mtk_ovl_layer_nr(struct mtk_ddp_comp *comp)
> +{
> + struct mtk_disp_ovl *ovl = comp_to_ovl(comp);
> +
> + return ovl->data->layer_nr;

For now, MT8173, MT2712, MT2701 OVL all has 4 layer, so you could return
4 here. Once a SoC OVL has another layer number, then modified the code
to this statement.

Regards,
CK

> +}
> +
> static void mtk_ovl_layer_on(struct mtk_ddp_comp *comp, unsigned int idx)
> {
> unsigned int reg;
> @@ -221,6 +229,7 @@ static const struct mtk_ddp_comp_funcs mtk_disp_ovl_funcs = {
> .stop = mtk_ovl_stop,
> .enable_vblank = mtk_ovl_enable_vblank,
> .disable_vblank = mtk_ovl_disable_vblank,
> + .layer_nr = mtk_ovl_layer_nr,
> .layer_on = mtk_ovl_layer_on,
> .layer_off = mtk_ovl_layer_off,
> .layer_config = mtk_ovl_layer_config,
> @@ -319,6 +328,7 @@ static const struct mtk_disp_ovl_data mt2701_ovl_driver_data = {
> static const struct mtk_disp_ovl_data mt8173_ovl_driver_data = {
> .addr = DISP_REG_OVL_ADDR_MT8173,
> .fmt_rgb565_is_0 = true,
> + .layer_nr = 4,
> };
>
> static const struct of_device_id mtk_disp_ovl_driver_dt_match[] = {