From: CK Hu <ck.hu@mediatek.com>
To: Nancy.Lin <nancy.lin@mediatek.com>,
Rob Herring <robh+dt@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
Chun-Kuang Hu <chunkuang.hu@kernel.org>,
Philipp Zabel <p.zabel@pengutronix.de>, <wim@linux-watchdog.org>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>, <linux@roeck-us.net>
Cc: devicetree@vger.kernel.org, srv_heupstream@mediatek.com,
David Airlie <airlied@linux.ie>,
"jason-jh . lin" <jason-jh.lin@mediatek.com>,
singo.chang@mediatek.com, llvm@lists.linux.dev,
Nick Desaulniers <ndesaulniers@google.com>,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
Project_Global_Chrome_Upstream_Group@mediatek.com,
linux-mediatek@lists.infradead.org,
Yongqiang Niu <yongqiang.niu@mediatek.com>,
Nathan Chancellor <nathan@kernel.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v16 04/22] soc: mediatek: add mtk-mmsys support for mt8195 vdosys1
Date: Tue, 22 Mar 2022 11:31:35 +0800 [thread overview]
Message-ID: <b391cb9ab341ed83f8d640867c8dbba856a7c454.camel@mediatek.com> (raw)
In-Reply-To: <20220318142009.2796-5-nancy.lin@mediatek.com>
Hi, Nancy:
On Fri, 2022-03-18 at 22:19 +0800, Nancy.Lin wrote:
> Add mt8195 vdosys1 clock driver name and routing table to
> the driver data of mtk-mmsys.
>
> Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <
> angelogioacchino.delregno@collabora.com>
> Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
> ---
> drivers/soc/mediatek/mt8195-mmsys.h | 136
> +++++++++++++++++++++++++
> drivers/soc/mediatek/mtk-mmsys.c | 10 ++
> include/linux/soc/mediatek/mtk-mmsys.h | 2 +
> 3 files changed, 148 insertions(+)
>
> diff --git a/drivers/soc/mediatek/mt8195-mmsys.h
> b/drivers/soc/mediatek/mt8195-mmsys.h
> index 24a3afe23bc8..369fb0aab56d 100644
> --- a/drivers/soc/mediatek/mt8195-mmsys.h
> +++ b/drivers/soc/mediatek/mt8195-mmsys.h
> @@ -75,6 +75,70 @@
> #define MT8195_SOUT_DSC_WRAP1_OUT_TO_SINA_VIRTUAL0 (2 <<
> 16)
> #define MT8195_SOUT_DSC_WRAP1_OUT_TO_VPP_MERGE
> (3 << 16)
>
> +#define MT8195_VDO1_VPP_MERGE0_P0_SEL_IN 0xf04
> +#define MT8195_VPP_MERGE0_P0_SEL_IN_FROM_MDP_RDMA0
> 1
> +
> +#define MT8195_VDO1_VPP_MERGE0_P1_SEL_IN 0xf08
> +#define MT8195_VPP_MERGE0_P1_SEL_IN_FROM_MDP_RDMA1
> 1
> +
> +#define MT8195_VDO1_DISP_DPI1_SEL_IN 0xf10
> +#define MT8195_DISP_DPI1_SEL_IN_FROM_VPP_MERGE4_MOUT
> 0
> +
> +#define MT8195_VDO1_DISP_DP_INTF0_SEL_IN 0xf14
> +#define MT8195_DISP_DP_INTF0_SEL_IN_FROM_VPP_MERGE4_MOUT
> 0
> +
> +#define MT8195_VDO1_MERGE4_SOUT_SEL 0xf18
> +#define MT8195_MERGE4_SOUT_TO_DPI1_SEL
> 2
> +#define MT8195_MERGE4_SOUT_TO_DP_INTF0_SEL
> 3
> +
> +#define MT8195_VDO1_MIXER_IN1_SEL_IN 0xf24
> +#define MT8195_MIXER_IN1_SEL_IN_FROM_MERGE0_ASYNC_SOUT
> 1
> +
> +#define MT8195_VDO1_MIXER_IN2_SEL_IN 0xf28
> +#define MT8195_MIXER_IN2_SEL_IN_FROM_MERGE1_ASYNC_SOUT
> 1
> +
> +#define MT8195_VDO1_MIXER_IN3_SEL_IN 0xf2c
> +#define MT8195_MIXER_IN3_SEL_IN_FROM_MERGE2_ASYNC_SOUT
> 1
> +
> +#define MT8195_VDO1_MIXER_IN4_SEL_IN 0xf30
> +#define MT8195_MIXER_IN4_SEL_IN_FROM_MERGE3_ASYNC_SOUT
> 1
> +
> +#define MT8195_VDO1_MIXER_OUT_SOUT_SEL
> 0xf34
> +#define MT8195_MIXER_SOUT_TO_MERGE4_ASYNC_SEL
> 1
> +
> +#define MT8195_VDO1_VPP_MERGE1_P0_SEL_IN 0xf3c
> +#define MT8195_VPP_MERGE1_P0_SEL_IN_FROM_MDP_RDMA2
> 1
> +
> +#define MT8195_VDO1_MERGE0_ASYNC_SOUT_SEL 0xf40
> +#define MT8195_SOUT_TO_MIXER_IN1_SEL
> 1
> +
> +#define MT8195_VDO1_MERGE1_ASYNC_SOUT_SEL 0xf44
> +#define MT8195_SOUT_TO_MIXER_IN2_SEL
> 1
> +
> +#define MT8195_VDO1_MERGE2_ASYNC_SOUT_SEL 0xf48
> +#define MT8195_SOUT_TO_MIXER_IN3_SEL
> 1
> +
> +#define MT8195_VDO1_MERGE3_ASYNC_SOUT_SEL 0xf4c
> +#define MT8195_SOUT_TO_MIXER_IN4_SEL
> 1
> +
> +#define MT8195_VDO1_MERGE4_ASYNC_SEL_IN
> 0xf50
> +#define MT8195_MERGE4_ASYNC_SEL_IN_FROM_MIXER_OUT_SOUT
> 1
> +
> +#define MT8195_VDO1_MIXER_IN1_SOUT_SEL
> 0xf58
> +#define MT8195_MIXER_IN1_SOUT_TO_DISP_MIXER
> 0
> +
> +#define MT8195_VDO1_MIXER_IN2_SOUT_SEL
> 0xf5c
> +#define MT8195_MIXER_IN2_SOUT_TO_DISP_MIXER
> 0
> +
> +#define MT8195_VDO1_MIXER_IN3_SOUT_SEL
> 0xf60
> +#define MT8195_MIXER_IN3_SOUT_TO_DISP_MIXER
> 0
> +
> +#define MT8195_VDO1_MIXER_IN4_SOUT_SEL
> 0xf64
> +#define MT8195_MIXER_IN4_SOUT_TO_DISP_MIXER
> 0
> +
> +#define MT8195_VDO1_MIXER_SOUT_SEL_IN
> 0xf68
> +#define MT8195_MIXER_SOUT_SEL_IN_FROM_DISP_MIXER
> 0
> +
> static const struct mtk_mmsys_routes mmsys_mt8195_routing_table[] =
> {
> {
> DDP_COMPONENT_OVL0, DDP_COMPONENT_RDMA0,
> @@ -124,6 +188,78 @@ static const struct mtk_mmsys_routes
> mmsys_mt8195_routing_table[] = {
> DDP_COMPONENT_MERGE0, DDP_COMPONENT_DP_INTF0,
> MT8195_VDO0_SEL_OUT, MT8195_SOUT_VPP_MERGE_TO_MASK,
> MT8195_SOUT_VPP_MERGE_TO_DP_INTF0
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_VPP_MERGE0_P0_SEL_IN, GENMASK(0, 0),
> + MT8195_VPP_MERGE0_P0_SEL_IN_FROM_MDP_RDMA0
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_VPP_MERGE0_P1_SEL_IN, GENMASK(0, 0),
> + MT8195_VPP_MERGE0_P1_SEL_IN_FROM_MDP_RDMA1
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_VPP_MERGE1_P0_SEL_IN, GENMASK(0, 0),
> + MT8195_VPP_MERGE1_P0_SEL_IN_FROM_MDP_RDMA2
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MERGE0_ASYNC_SOUT_SEL, GENMASK(1, 0),
> + MT8195_SOUT_TO_MIXER_IN1_SEL
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MERGE1_ASYNC_SOUT_SEL, GENMASK(1, 0),
> + MT8195_SOUT_TO_MIXER_IN2_SEL
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MERGE2_ASYNC_SOUT_SEL, GENMASK(1, 0),
> + MT8195_SOUT_TO_MIXER_IN3_SEL
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MERGE3_ASYNC_SOUT_SEL, GENMASK(1, 0),
> + MT8195_SOUT_TO_MIXER_IN4_SEL
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MIXER_OUT_SOUT_SEL, GENMASK(0, 0),
> + MT8195_MIXER_SOUT_TO_MERGE4_ASYNC_SEL
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MIXER_IN1_SEL_IN, GENMASK(0, 0),
> + MT8195_MIXER_IN1_SEL_IN_FROM_MERGE0_ASYNC_SOUT
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MIXER_IN2_SEL_IN, GENMASK(0, 0),
> + MT8195_MIXER_IN2_SEL_IN_FROM_MERGE1_ASYNC_SOUT
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MIXER_IN3_SEL_IN, GENMASK(0, 0),
> + MT8195_MIXER_IN3_SEL_IN_FROM_MERGE2_ASYNC_SOUT
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MIXER_IN4_SEL_IN, GENMASK(0, 0),
> + MT8195_MIXER_IN4_SEL_IN_FROM_MERGE3_ASYNC_SOUT
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MIXER_SOUT_SEL_IN, GENMASK(2, 0),
> + MT8195_MIXER_SOUT_SEL_IN_FROM_DISP_MIXER
> + }, {
> + DDP_COMPONENT_OVL_ADAPTOR, DDP_COMPONENT_MERGE5,
> + MT8195_VDO1_MERGE4_ASYNC_SEL_IN, GENMASK(2, 0),
> + MT8195_MERGE4_ASYNC_SEL_IN_FROM_MIXER_OUT_SOUT
I would like to expose each mod instead of ovl adaptor. ovl adaptor is
an application that combine these mod to achieve ovl function, maybe
another application would combine part of these mod to achieve another
function. Let application to decide the combination.
Regards,
CK
> + }, {
> + DDP_COMPONENT_MERGE5, DDP_COMPONENT_DPI1,
> + MT8195_VDO1_DISP_DPI1_SEL_IN, GENMASK(1, 0),
> + MT8195_DISP_DPI1_SEL_IN_FROM_VPP_MERGE4_MOUT
> + }, {
> + DDP_COMPONENT_MERGE5, DDP_COMPONENT_DPI1,
> + MT8195_VDO1_MERGE4_SOUT_SEL, GENMASK(1, 0),
> + MT8195_MERGE4_SOUT_TO_DPI1_SEL
> + }, {
> + DDP_COMPONENT_MERGE5, DDP_COMPONENT_DP_INTF1,
> + MT8195_VDO1_DISP_DP_INTF0_SEL_IN, GENMASK(1, 0),
> + MT8195_DISP_DP_INTF0_SEL_IN_FROM_VPP_MERGE4_MOUT
> + }, {
> + DDP_COMPONENT_MERGE5, DDP_COMPONENT_DP_INTF1,
> + MT8195_VDO1_MERGE4_SOUT_SEL, GENMASK(1, 0),
> + MT8195_MERGE4_SOUT_TO_DP_INTF0_SEL
> }
> };
>
> diff --git a/drivers/soc/mediatek/mtk-mmsys.c
> b/drivers/soc/mediatek/mtk-mmsys.c
> index dc5c51f0ccc8..0b77624cf6ca 100644
> --- a/drivers/soc/mediatek/mtk-mmsys.c
> +++ b/drivers/soc/mediatek/mtk-mmsys.c
> @@ -79,6 +79,12 @@ static const struct mtk_mmsys_driver_data
> mt8195_vdosys0_driver_data = {
> .num_routes = ARRAY_SIZE(mmsys_mt8195_routing_table),
> };
>
> +static const struct mtk_mmsys_driver_data mt8195_vdosys1_driver_data
> = {
> + .clk_driver = "clk-mt8195-vdo1",
> + .routes = mmsys_mt8195_routing_table,
> + .num_routes = ARRAY_SIZE(mmsys_mt8195_routing_table),
> +};
> +
> static const struct mtk_mmsys_driver_data mt8365_mmsys_driver_data =
> {
> .clk_driver = "clk-mt8365-mm",
> .routes = mt8365_mmsys_routing_table,
> @@ -271,6 +277,10 @@ static const struct of_device_id
> of_match_mtk_mmsys[] = {
> .compatible = "mediatek,mt8195-vdosys0",
> .data = &mt8195_vdosys0_driver_data,
> },
> + {
> + .compatible = "mediatek,mt8195-vdosys1",
> + .data = &mt8195_vdosys1_driver_data,
> + },
> {
> .compatible = "mediatek,mt8365-mmsys",
> .data = &mt8365_mmsys_driver_data,
> diff --git a/include/linux/soc/mediatek/mtk-mmsys.h
> b/include/linux/soc/mediatek/mtk-mmsys.h
> index 64c77c4a6c56..eaf7f7345519 100644
> --- a/include/linux/soc/mediatek/mtk-mmsys.h
> +++ b/include/linux/soc/mediatek/mtk-mmsys.h
> @@ -18,6 +18,7 @@ enum mtk_ddp_comp_id {
> DDP_COMPONENT_COLOR1,
> DDP_COMPONENT_DITHER,
> DDP_COMPONENT_DP_INTF0,
> + DDP_COMPONENT_DP_INTF1,
> DDP_COMPONENT_DPI0,
> DDP_COMPONENT_DPI1,
> DDP_COMPONENT_DSC0,
> @@ -39,6 +40,7 @@ enum mtk_ddp_comp_id {
> DDP_COMPONENT_OVL_2L0,
> DDP_COMPONENT_OVL_2L1,
> DDP_COMPONENT_OVL_2L2,
> + DDP_COMPONENT_OVL_ADAPTOR,
> DDP_COMPONENT_OVL1,
> DDP_COMPONENT_POSTMASK0,
> DDP_COMPONENT_PWM0,
next prev parent reply other threads:[~2022-03-22 3:31 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-18 14:19 [PATCH v16 00/22] Add MediaTek SoC DRM (vdosys1) support for mt8195 Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 01/22] dt-bindings: mediatek: add vdosys1 RDMA definition " Nancy.Lin
2022-03-21 9:52 ` CK Hu
2022-04-16 1:00 ` Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 02/22] dt-bindings: reset: mt8195: add vdosys1 reset control bit Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 03/22] dt-bindings: mediatek: add ethdr definition for mt8195 Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 04/22] soc: mediatek: add mtk-mmsys support for mt8195 vdosys1 Nancy.Lin
2022-03-22 3:31 ` CK Hu [this message]
2022-04-16 1:08 ` Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 05/22] soc: mediatek: add mtk-mmsys config API " Nancy.Lin
2022-03-21 9:27 ` Rex-BC Chen
2022-03-22 3:13 ` CK Hu
2022-04-16 1:06 ` Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 06/22] soc: mediatek: add cmdq support of " Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 07/22] soc: mediatek: mmsys: modify reset controller for MT8195 vdosys1 Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 08/22] soc: mediatek: change the mutex defines and the mutex_mod type Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 09/22] soc: mediatek: add mtk-mutex support for mt8195 vdosys1 Nancy.Lin
2022-03-22 2:27 ` CK Hu
2022-04-16 1:03 ` Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 10/22] drm/mediatek: add display MDP RDMA support for MT8195 Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 11/22] drm/mediatek: add display merge advance config API " Nancy.Lin
2022-03-18 14:19 ` [PATCH v16 12/22] drm/mediatek: add display merge start/stop API for cmdq support Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 13/22] drm/mediatek: add display merge mute/unmute support for MT8195 Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 14/22] drm/mediatek: add display merge async reset control Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 15/22] drm/mediatek: add ETHDR support for MT8195 Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 16/22] drm/mediatek: add mediatek-drm plane color encoding info Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 17/22] drm/mediatek: add ovl_adaptor support for MT8195 Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 18/22] drm/mediatek: add dma dev get function Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 19/22] drm/mediatek: modify mediatek-drm for mt8195 multi mmsys support Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 20/22] drm/mediatek: add drm ovl_adaptor sub driver for MT8195 Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 21/22] drm/mediatek: add mediatek-drm of vdosys1 support " Nancy.Lin
2022-03-18 14:20 ` [PATCH v16 22/22] arm64: dts: mt8195: add display node for vdosys1 Nancy.Lin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b391cb9ab341ed83f8d640867c8dbba856a7c454.camel@mediatek.com \
--to=ck.hu@mediatek.com \
--cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
--cc=airlied@linux.ie \
--cc=angelogioacchino.delregno@collabora.com \
--cc=chunkuang.hu@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jason-jh.lin@mediatek.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux@roeck-us.net \
--cc=llvm@lists.linux.dev \
--cc=matthias.bgg@gmail.com \
--cc=nancy.lin@mediatek.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
--cc=singo.chang@mediatek.com \
--cc=srv_heupstream@mediatek.com \
--cc=wim@linux-watchdog.org \
--cc=yongqiang.niu@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox