diff mbox series

[v1,3/6] soc: mediatek: mmsys: add support for MT8195 VPPSYS

Message ID 20221004093319.5069-4-moudy.ho@mediatek.com (mailing list archive)
State New, archived
Headers show
Series add support for MT8195 VPPSYS on MMSYS and MUTEX | expand

Commit Message

Moudy Ho (何宗原) Oct. 4, 2022, 9:33 a.m. UTC
From: "Roy-CW.Yeh" <roy-cw.yeh@mediatek.com>

Add MT8195 VPPSYS0 and VPPSYS1 driver data.

Signed-off-by: Roy-CW.Yeh <roy-cw.yeh@mediatek.com>
---
 drivers/soc/mediatek/mtk-mmsys.c | 20 +++++++++++++++++++-
 drivers/soc/mediatek/mtk-mmsys.h |  1 +
 2 files changed, 20 insertions(+), 1 deletion(-)

Comments

AngeloGioacchino Del Regno Oct. 4, 2022, 12:17 p.m. UTC | #1
Il 04/10/22 11:33, Moudy Ho ha scritto:
> From: "Roy-CW.Yeh" <roy-cw.yeh@mediatek.com>
> 
> Add MT8195 VPPSYS0 and VPPSYS1 driver data.
> 
> Signed-off-by: Roy-CW.Yeh <roy-cw.yeh@mediatek.com>
> ---
>   drivers/soc/mediatek/mtk-mmsys.c | 20 +++++++++++++++++++-
>   drivers/soc/mediatek/mtk-mmsys.h |  1 +
>   2 files changed, 20 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c
> index d2c7a87aab87..c4d15f99f853 100644
> --- a/drivers/soc/mediatek/mtk-mmsys.c
> +++ b/drivers/soc/mediatek/mtk-mmsys.c
> @@ -149,11 +149,25 @@ static const struct mtk_mmsys_driver_data mt8195_vdosys1_driver_data = {
>   	.clk_driver = "clk-mt8195-vdo1",
>   };
>   
> +static const struct mtk_mmsys_driver_data mt8195_vppsys0_driver_data = {
> +	.io_start = 0x14000000,
> +	.clk_driver = "clk-mt8195-vpp0",
> +	.is_copies = true,
> +};
> +
> +static const struct mtk_mmsys_driver_data mt8195_vppsys1_driver_data = {
> +	.io_start = 0x14f00000,
> +	.clk_driver = "clk-mt8195-vpp1",
> +	.is_copies = true,
> +};
> +
>   static const struct mtk_mmsys_match_data mt8195_mmsys_match_data = {
> -	.num_drv_data = 2,
> +	.num_drv_data = 4,

After a long discussion, it was chosen to not use the io_start way, but to change
the devicetree compatible....

Check this series, and rebase on top of it:
https://patchwork.kernel.org/project/linux-mediatek/list/?series=681097

Cheers,
Angelo

>   	.drv_data = {
>   		&mt8195_vdosys0_driver_data,
>   		&mt8195_vdosys1_driver_data,
> +		&mt8195_vppsys0_driver_data,
> +		&mt8195_vppsys1_driver_data,
>   	},
>   };
>   
> @@ -360,6 +374,9 @@ static int mtk_mmsys_probe(struct platform_device *pdev)
>   	if (IS_ERR(clks))
>   		return PTR_ERR(clks);
>   
> +	if (mmsys->data->is_copies)

I don't get what "is_copies" means, sorry. I'm sure that there's a better name
for this one.

> +		goto out_probe_done;
> +
>   	drm = platform_device_register_data(&pdev->dev, "mediatek-drm",
>   					    PLATFORM_DEVID_AUTO, NULL, 0);
>   	if (IS_ERR(drm)) {

Regards,
Angelo
Moudy Ho (何宗原) Oct. 5, 2022, 2:43 a.m. UTC | #2
Hi Angelo,

On Tue, 2022-10-04 at 14:17 +0200, AngeloGioacchino Del Regno wrote:
> Il 04/10/22 11:33, Moudy Ho ha scritto:
> > From: "Roy-CW.Yeh" <roy-cw.yeh@mediatek.com>
> > 
> > Add MT8195 VPPSYS0 and VPPSYS1 driver data.
> > 
> > Signed-off-by: Roy-CW.Yeh <roy-cw.yeh@mediatek.com>
> > ---
> >   drivers/soc/mediatek/mtk-mmsys.c | 20 +++++++++++++++++++-
> >   drivers/soc/mediatek/mtk-mmsys.h |  1 +
> >   2 files changed, 20 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/soc/mediatek/mtk-mmsys.c
> > b/drivers/soc/mediatek/mtk-mmsys.c
> > index d2c7a87aab87..c4d15f99f853 100644
> > --- a/drivers/soc/mediatek/mtk-mmsys.c
> > +++ b/drivers/soc/mediatek/mtk-mmsys.c
> > @@ -149,11 +149,25 @@ static const struct mtk_mmsys_driver_data
> > mt8195_vdosys1_driver_data = {
> >   	.clk_driver = "clk-mt8195-vdo1",
> >   };
> >   
> > +static const struct mtk_mmsys_driver_data
> > mt8195_vppsys0_driver_data = {
> > +	.io_start = 0x14000000,
> > +	.clk_driver = "clk-mt8195-vpp0",
> > +	.is_copies = true,
> > +};
> > +
> > +static const struct mtk_mmsys_driver_data
> > mt8195_vppsys1_driver_data = {
> > +	.io_start = 0x14f00000,
> > +	.clk_driver = "clk-mt8195-vpp1",
> > +	.is_copies = true,
> > +};
> > +
> >   static const struct mtk_mmsys_match_data mt8195_mmsys_match_data
> > = {
> > -	.num_drv_data = 2,
> > +	.num_drv_data = 4,
> 
> After a long discussion, it was chosen to not use the io_start way,
> but to change
> the devicetree compatible....
> 
> Check this series, and rebase on top of it:
> 
https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-mediatek/list/?series=681097__;!!CTRNKA9wMg0ARbw!3qjICTDNn82OJyHA0U_WAuEnMSy1mL31r14l72jY5rSrBaJN0_tDU_08BBZcEm6V$
>  
> 
> Cheers,
> Angelo
> 

Sorry for not noticing the change here, I'll rebase on it and fix
accordingly.

> >   	.drv_data = {
> >   		&mt8195_vdosys0_driver_data,
> >   		&mt8195_vdosys1_driver_data,
> > +		&mt8195_vppsys0_driver_data,
> > +		&mt8195_vppsys1_driver_data,
> >   	},
> >   };
> >   
> > @@ -360,6 +374,9 @@ static int mtk_mmsys_probe(struct
> > platform_device *pdev)
> >   	if (IS_ERR(clks))
> >   		return PTR_ERR(clks);
> >   
> > +	if (mmsys->data->is_copies)
> 
> I don't get what "is_copies" means, sorry. I'm sure that there's a
> better name
> for this one.
> 

It's a flag to avoid probing the DRM driver multiple times.
Would it be more readable if the name was changed to "is_vppsys"?

> > +		goto out_probe_done;
> > +
> >   	drm = platform_device_register_data(&pdev->dev, "mediatek-drm",
> >   					    PLATFORM_DEVID_AUTO, NULL,
> > 0);
> >   	if (IS_ERR(drm)) {
> 
> Regards,
> Angelo
> 

Thanks and Regards,
Moudy
diff mbox series

Patch

diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c
index d2c7a87aab87..c4d15f99f853 100644
--- a/drivers/soc/mediatek/mtk-mmsys.c
+++ b/drivers/soc/mediatek/mtk-mmsys.c
@@ -149,11 +149,25 @@  static const struct mtk_mmsys_driver_data mt8195_vdosys1_driver_data = {
 	.clk_driver = "clk-mt8195-vdo1",
 };
 
+static const struct mtk_mmsys_driver_data mt8195_vppsys0_driver_data = {
+	.io_start = 0x14000000,
+	.clk_driver = "clk-mt8195-vpp0",
+	.is_copies = true,
+};
+
+static const struct mtk_mmsys_driver_data mt8195_vppsys1_driver_data = {
+	.io_start = 0x14f00000,
+	.clk_driver = "clk-mt8195-vpp1",
+	.is_copies = true,
+};
+
 static const struct mtk_mmsys_match_data mt8195_mmsys_match_data = {
-	.num_drv_data = 2,
+	.num_drv_data = 4,
 	.drv_data = {
 		&mt8195_vdosys0_driver_data,
 		&mt8195_vdosys1_driver_data,
+		&mt8195_vppsys0_driver_data,
+		&mt8195_vppsys1_driver_data,
 	},
 };
 
@@ -360,6 +374,9 @@  static int mtk_mmsys_probe(struct platform_device *pdev)
 	if (IS_ERR(clks))
 		return PTR_ERR(clks);
 
+	if (mmsys->data->is_copies)
+		goto out_probe_done;
+
 	drm = platform_device_register_data(&pdev->dev, "mediatek-drm",
 					    PLATFORM_DEVID_AUTO, NULL, 0);
 	if (IS_ERR(drm)) {
@@ -367,6 +384,7 @@  static int mtk_mmsys_probe(struct platform_device *pdev)
 		return PTR_ERR(drm);
 	}
 
+out_probe_done:
 	return 0;
 }
 
diff --git a/drivers/soc/mediatek/mtk-mmsys.h b/drivers/soc/mediatek/mtk-mmsys.h
index f01ba206481d..d454b4a256af 100644
--- a/drivers/soc/mediatek/mtk-mmsys.h
+++ b/drivers/soc/mediatek/mtk-mmsys.h
@@ -92,6 +92,7 @@  struct mtk_mmsys_driver_data {
 	const struct mtk_mmsys_routes *routes;
 	const unsigned int num_routes;
 	const u16 sw0_rst_offset;
+	bool is_copies;
 };
 
 struct mtk_mmsys_match_data {