[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1582882664.22475.6.camel@mtksdaap41>
Date: Fri, 28 Feb 2020 17:37:44 +0800
From: CK Hu <ck.hu@...iatek.com>
To: Enric Balletbo i Serra <enric.balletbo@...labora.com>
CC: <robh+dt@...nel.org>, <mark.rutland@....com>,
<p.zabel@...gutronix.de>, <airlied@...ux.ie>,
<mturquette@...libre.com>, <sboyd@...nel.org>,
<ulrich.hecht+renesas@...il.com>,
<laurent.pinchart@...asonboard.com>,
"Mauro Carvalho Chehab" <mchehab@...nel.org>,
<rdunlap@...radead.org>, <dri-devel@...ts.freedesktop.org>,
Weiyi Lu <weiyi.lu@...iatek.com>,
"Seiya Wang" <seiya.wang@...iatek.com>,
<linux-clk@...r.kernel.org>,
"Collabora Kernel ML" <kernel@...labora.com>,
mtk01761 <wendell.lin@...iatek.com>,
Allison Randal <allison@...utok.net>,
Thomas Gleixner <tglx@...utronix.de>, <wens@...e.org>,
Kate Stewart <kstewart@...uxfoundation.org>,
"Greg Kroah-Hartman" <gregkh@...uxfoundation.org>,
Houlong Wei <houlong.wei@...iatek.com>,
Matthias Brugger <matthias.bgg@...il.com>,
<linux-media@...r.kernel.org>, <devicetree@...r.kernel.org>,
<sean.wang@...iatek.com>, <frank-w@...lic-files.de>,
Minghsiu Tsai <minghsiu.tsai@...iatek.com>,
Andrew-CT Chen <andrew-ct.chen@...iatek.com>,
<linux-mediatek@...ts.infradead.org>, <hsinyi@...omium.org>,
Matthias Brugger <mbrugger@...e.com>,
<linux-arm-kernel@...ts.infradead.org>,
Richard Fontana <rfontana@...hat.com>,
<linux-kernel@...r.kernel.org>, <matthias.bgg@...nel.org>,
Daniel Vetter <daniel@...ll.ch>
Subject: Re: [PATCH v10 4/5] soc / drm: mediatek: Move routing control to
mmsys device
Hi, Enric:
On Thu, 2020-02-27 at 19:08 +0100, Enric Balletbo i Serra wrote:
> Provide a mtk_mmsys_ddp_connect() and mtk_mmsys_disconnect() functions to
> replace mtk_ddp_add_comp_to_path() and mtk_ddp_remove_comp_from_path().
> Those functions will allow DRM driver and others to control the data
> path routing.
>
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@...labora.com>
> ---
>
> Changes in v10:
> - Introduced a new patch to move routing control into mmsys driver.
> - Removed the patch to use regmap as is not needed anymore.
>
> Changes in v9: None
> Changes in v8: None
> Changes in v7: None
>
> drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 13 +-
> drivers/gpu/drm/mediatek/mtk_drm_ddp.c | 256 ----------------------
> drivers/gpu/drm/mediatek/mtk_drm_ddp.h | 7 -
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 13 +-
> drivers/soc/mediatek/mtk-mmsys.c | 275 ++++++++++++++++++++++++
> include/linux/soc/mediatek/mtk-mmsys.h | 19 ++
> 6 files changed, 306 insertions(+), 277 deletions(-)
> create mode 100644 include/linux/soc/mediatek/mtk-mmsys.h
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> index fd4042de12f2..3c89449bea6e 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> @@ -6,6 +6,7 @@
> #include <linux/clk.h>
> #include <linux/pm_runtime.h>
> #include <linux/soc/mediatek/mtk-cmdq.h>
> +#include <linux/soc/mediatek/mtk-mmsys.h>
>
> #include <asm/barrier.h>
> #include <soc/mediatek/smi.h>
> @@ -296,9 +297,9 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc)
> }
>
> for (i = 0; i < mtk_crtc->ddp_comp_nr - 1; i++) {
> - mtk_ddp_add_comp_to_path(mtk_crtc->config_regs,
> - mtk_crtc->ddp_comp[i]->id,
> - mtk_crtc->ddp_comp[i + 1]->id);
> + mtk_mmsys_ddp_connect(mtk_crtc->config_regs,
> + mtk_crtc->ddp_comp[i]->id,
> + mtk_crtc->ddp_comp[i + 1]->id);
When CONFIG_MTK_MMSYS is not enable, this would built fail. So make some
modification in Kconfig.
> mtk_disp_mutex_add_comp(mtk_crtc->mutex,
> mtk_crtc->ddp_comp[i]->id);
> }
> @@ -355,9 +356,9 @@ static void mtk_crtc_ddp_hw_fini(struct mtk_drm_crtc *mtk_crtc)
> mtk_crtc->ddp_comp[i]->id);
> mtk_disp_mutex_disable(mtk_crtc->mutex);
> for (i = 0; i < mtk_crtc->ddp_comp_nr - 1; i++) {
> - mtk_ddp_remove_comp_from_path(mtk_crtc->config_regs,
> - mtk_crtc->ddp_comp[i]->id,
> - mtk_crtc->ddp_comp[i + 1]->id);
> + mtk_mmsys_ddp_disconnect(mtk_crtc->config_regs,
> + mtk_crtc->ddp_comp[i]->id,
> + mtk_crtc->ddp_comp[i + 1]->id);
> mtk_disp_mutex_remove_comp(mtk_crtc->mutex,
> mtk_crtc->ddp_comp[i]->id);
> }
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
> index b885f60f474c..014c1bbe1df2 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp.c
> @@ -13,26 +13,6 @@
> #include "mtk_drm_ddp.h"
> #include "mtk_drm_ddp_comp.h"
>
[snip]
> diff --git a/include/linux/soc/mediatek/mtk-mmsys.h b/include/linux/soc/mediatek/mtk-mmsys.h
> new file mode 100644
> index 000000000000..02fd86e62a8d
> --- /dev/null
> +++ b/include/linux/soc/mediatek/mtk-mmsys.h
> @@ -0,0 +1,19 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (c) 2015 MediaTek Inc.
> + */
> +
> +#ifndef __MTK_MMSYS_H
> +#define __MTK_MMSYS_H
> +
> +enum mtk_ddp_comp_id;
> +
> +void mtk_mmsys_ddp_connect(void __iomem *config_regs,
I prefer the first parameter to be 'struct device *dev' which is the
device pointer of mmsys device. and mmsys driver could use this pointer
to get its register address.
Regards,
CK
> + enum mtk_ddp_comp_id cur,
> + enum mtk_ddp_comp_id next);
> +
> +void mtk_mmsys_ddp_disconnect(void __iomem *config_regs,
> + enum mtk_ddp_comp_id cur,
> + enum mtk_ddp_comp_id next);
> +
> +#endif /* __MTK_MMSYS_H */
Powered by blists - more mailing lists