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 |
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
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 --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 {