* Re: [PATCH] pmdomain: mediatek: Use devm_platform_get_and_ioremap_resource() in init_scp()
2024-02-05 16:31 ` Geert Uytterhoeven
@ 2024-02-05 17:28 ` Markus Elfring
2024-02-05 19:01 ` Geert Uytterhoeven
2024-02-06 9:21 ` [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() " Markus Elfring
2024-02-06 9:24 ` [PATCH] pmdomain: mediatek: Use devm_platform_get_and_ioremap_resource() " AngeloGioacchino Del Regno
2 siblings, 1 reply; 10+ messages in thread
From: Markus Elfring @ 2024-02-05 17:28 UTC (permalink / raw)
To: Geert Uytterhoeven, linux-mediatek, linux-arm-kernel, linux-pm,
kernel-janitors, Angelo Gioacchino Del Regno, Heiko Stübner,
Jernej Skrabec, Matthias Brugger, Rob Herring, Ulf Hansson
Cc: LKML
>> +++ 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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] pmdomain: mediatek: Use devm_platform_get_and_ioremap_resource() in init_scp()
2024-02-05 17:28 ` Markus Elfring
@ 2024-02-05 19:01 ` Geert Uytterhoeven
2024-02-06 6:48 ` Markus Elfring
0 siblings, 1 reply; 10+ messages in thread
From: Geert Uytterhoeven @ 2024-02-05 19:01 UTC (permalink / raw)
To: Markus Elfring
Cc: linux-mediatek, linux-arm-kernel, linux-pm, kernel-janitors,
Angelo Gioacchino Del Regno, Heiko Stübner, Jernej Skrabec,
Matthias Brugger, Rob Herring, Ulf Hansson, LKML
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
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH] pmdomain: mediatek: Use devm_platform_get_and_ioremap_resource() in init_scp()
2024-02-05 19:01 ` Geert Uytterhoeven
@ 2024-02-06 6:48 ` Markus Elfring
0 siblings, 0 replies; 10+ messages in thread
From: Markus Elfring @ 2024-02-06 6:48 UTC (permalink / raw)
To: Geert Uytterhoeven, linux-mediatek, linux-arm-kernel, linux-pm,
kernel-janitors, Angelo Gioacchino Del Regno, Heiko Stübner,
Jernej Skrabec, Matthias Brugger, Rob Herring, Ulf Hansson
Cc: LKML
…
>> 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
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() in init_scp()
2024-02-05 16:31 ` Geert Uytterhoeven
2024-02-05 17:28 ` Markus Elfring
@ 2024-02-06 9:21 ` Markus Elfring
2024-02-06 9:26 ` Geert Uytterhoeven
` (2 more replies)
2024-02-06 9:24 ` [PATCH] pmdomain: mediatek: Use devm_platform_get_and_ioremap_resource() " AngeloGioacchino Del Regno
2 siblings, 3 replies; 10+ messages in thread
From: Markus Elfring @ 2024-02-06 9:21 UTC (permalink / raw)
To: Geert Uytterhoeven, linux-mediatek, linux-arm-kernel, linux-pm,
kernel-janitors, Angelo Gioacchino Del Regno, Heiko Stübner,
Jernej Skrabec, Matthias Brugger, Rob Herring, Ulf Hansson
Cc: LKML, Geert Uytterhoeven
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
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() in init_scp()
2024-02-06 9:21 ` [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() " Markus Elfring
@ 2024-02-06 9:26 ` Geert Uytterhoeven
2024-02-06 10:10 ` AngeloGioacchino Del Regno
2024-02-06 14:55 ` Ulf Hansson
2 siblings, 0 replies; 10+ messages in thread
From: Geert Uytterhoeven @ 2024-02-06 9:26 UTC (permalink / raw)
To: Markus Elfring
Cc: linux-mediatek, linux-arm-kernel, linux-pm, kernel-janitors,
Angelo Gioacchino Del Regno, Heiko Stübner, Jernej Skrabec,
Matthias Brugger, Rob Herring, Ulf Hansson, LKML,
Geert Uytterhoeven
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
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() in init_scp()
2024-02-06 9:21 ` [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() " Markus Elfring
2024-02-06 9:26 ` Geert Uytterhoeven
@ 2024-02-06 10:10 ` AngeloGioacchino Del Regno
2024-02-06 14:55 ` Ulf Hansson
2 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2024-02-06 10:10 UTC (permalink / raw)
To: Markus Elfring, Geert Uytterhoeven, linux-mediatek,
linux-arm-kernel, linux-pm, kernel-janitors, Heiko Stübner,
Jernej Skrabec, Matthias Brugger, Rob Herring, Ulf Hansson
Cc: LKML, Geert Uytterhoeven
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>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() in init_scp()
2024-02-06 9:21 ` [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() " Markus Elfring
2024-02-06 9:26 ` Geert Uytterhoeven
2024-02-06 10:10 ` AngeloGioacchino Del Regno
@ 2024-02-06 14:55 ` Ulf Hansson
2 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2024-02-06 14:55 UTC (permalink / raw)
To: Markus Elfring
Cc: Geert Uytterhoeven, linux-mediatek, linux-arm-kernel, linux-pm,
kernel-janitors, Angelo Gioacchino Del Regno, Heiko Stübner,
Jernej Skrabec, Matthias Brugger, Rob Herring, LKML,
Geert Uytterhoeven
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
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] pmdomain: mediatek: Use devm_platform_get_and_ioremap_resource() in init_scp()
2024-02-05 16:31 ` Geert Uytterhoeven
2024-02-05 17:28 ` Markus Elfring
2024-02-06 9:21 ` [PATCH v2] pmdomain: mediatek: Use devm_platform_ioremap_resource() " Markus Elfring
@ 2024-02-06 9:24 ` AngeloGioacchino Del Regno
2 siblings, 0 replies; 10+ messages in thread
From: AngeloGioacchino Del Regno @ 2024-02-06 9:24 UTC (permalink / raw)
To: Geert Uytterhoeven, Markus Elfring
Cc: linux-mediatek, linux-arm-kernel, linux-pm, kernel-janitors,
Heiko Stübner, Jernej Skrabec, Matthias Brugger, Rob Herring,
Ulf Hansson, LKML
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
^ permalink raw reply [flat|nested] 10+ messages in thread