drivers/pmdomain/mediatek/mtk-scpsys.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Mon, 5 Feb 2024 15:08:27 +0100
A wrapper function is available since the commit 890cc39a879906b63912482dfc41944579df2dc6
("drivers: provide devm_platform_get_and_ioremap_resource()").
Thus reuse existing functionality instead of keeping duplicate source code.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
drivers/pmdomain/mediatek/mtk-scpsys.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/pmdomain/mediatek/mtk-scpsys.c b/drivers/pmdomain/mediatek/mtk-scpsys.c
index b374d01fdac7..9e7f0771e7e4 100644
--- a/drivers/pmdomain/mediatek/mtk-scpsys.c
+++ b/drivers/pmdomain/mediatek/mtk-scpsys.c
@@ -441,8 +441,7 @@ static struct scp *init_scp(struct platform_device *pdev,
scp->dev = &pdev->dev;
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- scp->base = devm_ioremap_resource(&pdev->dev, res);
+ scp->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
if (IS_ERR(scp->base))
return ERR_CAST(scp->base);
--
2.43.0
Hi Markus, On Mon, Feb 5, 2024 at 3:23 PM Markus Elfring <Markus.Elfring@web.de> wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Mon, 5 Feb 2024 15:08:27 +0100 > > A wrapper function is available since the commit 890cc39a879906b63912482dfc41944579df2dc6 > ("drivers: provide devm_platform_get_and_ioremap_resource()"). > Thus reuse existing functionality instead of keeping duplicate source code. > > This issue was detected by using the Coccinelle software. > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Thanks for your patch! > --- a/drivers/pmdomain/mediatek/mtk-scpsys.c > +++ b/drivers/pmdomain/mediatek/mtk-scpsys.c > @@ -441,8 +441,7 @@ static struct scp *init_scp(struct platform_device *pdev, > > scp->dev = &pdev->dev; > > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - scp->base = devm_ioremap_resource(&pdev->dev, res); > + scp->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); Given res is further unused, please use devm_platform_ioremap_resource() instead, and remove the local variable res. > if (IS_ERR(scp->base)) > return ERR_CAST(scp->base); > Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Il 05/02/24 17:31, Geert Uytterhoeven ha scritto: > Hi Markus, > > On Mon, Feb 5, 2024 at 3:23 PM Markus Elfring <Markus.Elfring@web.de> wrote: >> From: Markus Elfring <elfring@users.sourceforge.net> >> Date: Mon, 5 Feb 2024 15:08:27 +0100 >> >> A wrapper function is available since the commit 890cc39a879906b63912482dfc41944579df2dc6 >> ("drivers: provide devm_platform_get_and_ioremap_resource()"). >> Thus reuse existing functionality instead of keeping duplicate source code. >> >> This issue was detected by using the Coccinelle software. >> >> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> > > Thanks for your patch! > >> --- a/drivers/pmdomain/mediatek/mtk-scpsys.c >> +++ b/drivers/pmdomain/mediatek/mtk-scpsys.c >> @@ -441,8 +441,7 @@ static struct scp *init_scp(struct platform_device *pdev, >> >> scp->dev = &pdev->dev; >> >> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >> - scp->base = devm_ioremap_resource(&pdev->dev, res); >> + scp->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); > > Given res is further unused, please use devm_platform_ioremap_resource() > instead, and remove the local variable res. > Agreed: res will never be used. Cheers, Angelo
>> +++ b/drivers/pmdomain/mediatek/mtk-scpsys.c >> @@ -441,8 +441,7 @@ static struct scp *init_scp(struct platform_device *pdev, >> >> scp->dev = &pdev->dev; >> >> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >> - scp->base = devm_ioremap_resource(&pdev->dev, res); >> + scp->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); > > Given res is further unused, please use devm_platform_ioremap_resource() > instead, and remove the local variable res. I got another idea after looking at the implementation of the function “devm_platform_get_and_ioremap_resource” once more. https://elixir.bootlin.com/linux/v6.8-rc3/source/drivers/base/platform.c#L87 It seems that it is supported to pass a null pointer for the last parameter (while this possibility is not mentioned in the interface description so far). How do you think about to benefit from such a design option any more (instead of the determination of a corresponding platform device)? Regards, Markus
Hi Markus, On Mon, Feb 5, 2024 at 6:28 PM Markus Elfring <Markus.Elfring@web.de> wrote: > >> +++ b/drivers/pmdomain/mediatek/mtk-scpsys.c > >> @@ -441,8 +441,7 @@ static struct scp *init_scp(struct platform_device *pdev, > >> > >> scp->dev = &pdev->dev; > >> > >> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > >> - scp->base = devm_ioremap_resource(&pdev->dev, res); > >> + scp->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); > > > > Given res is further unused, please use devm_platform_ioremap_resource() > > instead, and remove the local variable res. > > I got another idea after looking at the implementation of the function > “devm_platform_get_and_ioremap_resource” once more. > https://elixir.bootlin.com/linux/v6.8-rc3/source/drivers/base/platform.c#L87 > > It seems that it is supported to pass a null pointer for the last parameter > (while this possibility is not mentioned in the interface description so far). > How do you think about to benefit from such a design option any more > (instead of the determination of a corresponding platform device)? Yes, you can pass a NULL pointer as the last parameter. And as this is very common, the wrapper devm_platform_ioremap_resource() exists. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
… >> I got another idea after looking at the implementation of the function >> “devm_platform_get_and_ioremap_resource” once more. >> https://elixir.bootlin.com/linux/v6.8-rc3/source/drivers/base/platform.c#L87 … > Yes, you can pass a NULL pointer as the last parameter. Would you like to support any approaches which can make interface descriptions clearer for such an implementation detail? > And as this is very common, the wrapper devm_platform_ioremap_resource() exists. I find further collateral evolution interesting for the involved parameter reduction. Regards, Markus
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 6 Feb 2024 10:05:34 +0100
Subject: [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() in init_scp()
A wrapper function is available since the commit 7945f929f1a77a1c8887a97ca07f87626858ff42
("drivers: provide devm_platform_ioremap_resource()").
* Thus reuse existing functionality instead of keeping duplicate source code.
* Delete a local variable which became unnecessary with this refactoring.
This issue was transformed by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
v2:
The transformation pattern was adjusted based on advices by known contributors.
Examples:
* Doug Anderson
* Geert Uytterhoeven
* Robin Murphy
drivers/pmdomain/mediatek/mtk-scpsys.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/pmdomain/mediatek/mtk-scpsys.c b/drivers/pmdomain/mediatek/mtk-scpsys.c
index b374d01fdac7..59a7a8c261ed 100644
--- a/drivers/pmdomain/mediatek/mtk-scpsys.c
+++ b/drivers/pmdomain/mediatek/mtk-scpsys.c
@@ -425,7 +425,6 @@ static struct scp *init_scp(struct platform_device *pdev,
bool bus_prot_reg_update)
{
struct genpd_onecell_data *pd_data;
- struct resource *res;
int i, j;
struct scp *scp;
struct clk *clk[CLK_MAX];
@@ -441,8 +440,7 @@ static struct scp *init_scp(struct platform_device *pdev,
scp->dev = &pdev->dev;
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- scp->base = devm_ioremap_resource(&pdev->dev, res);
+ scp->base = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(scp->base))
return ERR_CAST(scp->base);
--
2.43.0
On Tue, 6 Feb 2024 at 10:21, Markus Elfring <Markus.Elfring@web.de> wrote: > > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Tue, 6 Feb 2024 10:05:34 +0100 > Subject: [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() in init_scp() > > A wrapper function is available since the commit 7945f929f1a77a1c8887a97ca07f87626858ff42 > ("drivers: provide devm_platform_ioremap_resource()"). > > * Thus reuse existing functionality instead of keeping duplicate source code. > > * Delete a local variable which became unnecessary with this refactoring. > > > This issue was transformed by using the Coccinelle software. > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Applied for next, thanks! Kind regards Uffe > --- > > v2: > The transformation pattern was adjusted based on advices by known contributors. > > Examples: > * Doug Anderson > * Geert Uytterhoeven > * Robin Murphy > > > drivers/pmdomain/mediatek/mtk-scpsys.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/pmdomain/mediatek/mtk-scpsys.c b/drivers/pmdomain/mediatek/mtk-scpsys.c > index b374d01fdac7..59a7a8c261ed 100644 > --- a/drivers/pmdomain/mediatek/mtk-scpsys.c > +++ b/drivers/pmdomain/mediatek/mtk-scpsys.c > @@ -425,7 +425,6 @@ static struct scp *init_scp(struct platform_device *pdev, > bool bus_prot_reg_update) > { > struct genpd_onecell_data *pd_data; > - struct resource *res; > int i, j; > struct scp *scp; > struct clk *clk[CLK_MAX]; > @@ -441,8 +440,7 @@ static struct scp *init_scp(struct platform_device *pdev, > > scp->dev = &pdev->dev; > > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - scp->base = devm_ioremap_resource(&pdev->dev, res); > + scp->base = devm_platform_ioremap_resource(pdev, 0); > if (IS_ERR(scp->base)) > return ERR_CAST(scp->base); > > -- > 2.43.0 >
Il 06/02/24 10:21, Markus Elfring ha scritto: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Tue, 6 Feb 2024 10:05:34 +0100 > Subject: [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() in init_scp() > > A wrapper function is available since the commit 7945f929f1a77a1c8887a97ca07f87626858ff42 > ("drivers: provide devm_platform_ioremap_resource()"). > > * Thus reuse existing functionality instead of keeping duplicate source code. > > * Delete a local variable which became unnecessary with this refactoring. > > > This issue was transformed by using the Coccinelle software. > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
On Tue, Feb 6, 2024 at 10:21 AM Markus Elfring <Markus.Elfring@web.de> wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Tue, 6 Feb 2024 10:05:34 +0100 > Subject: [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() in init_scp() > > A wrapper function is available since the commit 7945f929f1a77a1c8887a97ca07f87626858ff42 > ("drivers: provide devm_platform_ioremap_resource()"). > > * Thus reuse existing functionality instead of keeping duplicate source code. > > * Delete a local variable which became unnecessary with this refactoring. > > > This issue was transformed by using the Coccinelle software. > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> > --- > > v2: > The transformation pattern was adjusted based on advices by known contributors. > > Examples: > * Doug Anderson > * Geert Uytterhoeven > * Robin Murphy Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
© 2016 - 2024 Red Hat, Inc.