diff mbox series

[2/2] gpio: mxc: switch to dynamic allocat GPIO base

Message ID 20230506085928.933737-2-haibo.chen@nxp.com
State New
Headers show
Series [1/2] gpio: vf610: switch to dynamic allocat GPIO base | expand

Commit Message

Bough Chen May 6, 2023, 8:59 a.m. UTC
From: Haibo Chen <haibo.chen@nxp.com>

gpiolib want to get completely rid of static gpiobase allocation,
so switch to dynamic allocat GPIO base, also can avoid warning
message:

[    1.529974] gpio gpiochip0: Static allocation of GPIO base
is deprecated, use dynamic allocation.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
 drivers/gpio/gpio-mxc.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Linus Walleij May 6, 2023, 1:06 p.m. UTC | #1
On Sat, May 6, 2023 at 10:56 AM <haibo.chen@nxp.com> wrote:

> From: Haibo Chen <haibo.chen@nxp.com>
>
> gpiolib want to get completely rid of static gpiobase allocation,
> so switch to dynamic allocat GPIO base, also can avoid warning
> message:
>
> [    1.529974] gpio gpiochip0: Static allocation of GPIO base
> is deprecated, use dynamic allocation.
>
> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
Bartosz Golaszewski May 26, 2023, 1:12 p.m. UTC | #2
On Sat, May 6, 2023 at 10:56 AM <haibo.chen@nxp.com> wrote:
>
> From: Haibo Chen <haibo.chen@nxp.com>
>
> gpiolib want to get completely rid of static gpiobase allocation,
> so switch to dynamic allocat GPIO base, also can avoid warning
> message:
>
> [    1.529974] gpio gpiochip0: Static allocation of GPIO base
> is deprecated, use dynamic allocation.
>
> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
> ---
>  drivers/gpio/gpio-mxc.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
> index 9d0cec4b82a3..abc129a88a62 100644
> --- a/drivers/gpio/gpio-mxc.c
> +++ b/drivers/gpio/gpio-mxc.c
> @@ -462,8 +462,7 @@ static int mxc_gpio_probe(struct platform_device *pdev)
>         port->gc.request = gpiochip_generic_request;
>         port->gc.free = gpiochip_generic_free;
>         port->gc.to_irq = mxc_gpio_to_irq;
> -       port->gc.base = (pdev->id < 0) ? of_alias_get_id(np, "gpio") * 32 :
> -                                            pdev->id * 32;
> +       port->gc.base = -1;
>
>         err = devm_gpiochip_add_data(&pdev->dev, &port->gc, port);
>         if (err)
> --
> 2.34.1
>

This is not the first time we're seeing someone submit this fix[1].

Unfortunately it's been brought to our attention that this breaks
existing user-space scripts that rely on fixed GPIO numbering in
sysfs.

Bart

[1] https://lore.kernel.org/lkml/CACRpkdYV3mHNYvBg1nf+12Q2XZH_g4iTrA2YB1SVQ=ROriRRgg@mail.gmail.com/T/
Bough Chen Aug. 21, 2023, 2:47 a.m. UTC | #3
> -----Original Message-----
> From: Linus Walleij <linus.walleij@linaro.org>
> Sent: 2023年5月6日 21:06
> To: Bough Chen <haibo.chen@nxp.com>
> Cc: brgl@bgdev.pl; linux-gpio@vger.kernel.org; linux-kernel@vger.kernel.org;
> dl-linux-imx <linux-imx@nxp.com>; christophe.leroy@csgroup.eu
> Subject: Re: [PATCH 2/2] gpio: mxc: switch to dynamic allocat GPIO base
> 
> On Sat, May 6, 2023 at 10:56 AM <haibo.chen@nxp.com> wrote:
> 
> > From: Haibo Chen <haibo.chen@nxp.com>
> >
> > gpiolib want to get completely rid of static gpiobase allocation, so
> > switch to dynamic allocat GPIO base, also can avoid warning
> > message:
> >
> > [    1.529974] gpio gpiochip0: Static allocation of GPIO base
> > is deprecated, use dynamic allocation.
> >
> > Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
> 
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Hi Linus and Bartosz,

For this patch, still not in the main trunk (Linux 6.5-rc7) and linux-next(next-20230818).
Can you help apply or any comment?

Best Regards
Haibo Chen

> 
> Yours,
> Linus Walleij
Linus Walleij Aug. 21, 2023, 7:25 a.m. UTC | #4
On Mon, Aug 21, 2023 at 4:47 AM Bough Chen <haibo.chen@nxp.com> wrote:

> Hi Linus and Bartosz,
>
> For this patch, still not in the main trunk (Linux 6.5-rc7) and linux-next(next-20230818).
> Can you help apply or any comment?

As pointed out by Bartosz you cannot just mechanically switch the base
to -1.

You also need to convince us that this doesn't break any systems, and if
it does, fix them so they don't break before submitting this patch.

Yours,
Linus Walleij
Alexander Stein Aug. 21, 2023, 7:44 a.m. UTC | #5
Hi Linus,

Am Montag, 21. August 2023, 09:25:54 CEST schrieb Linus Walleij:
> On Mon, Aug 21, 2023 at 4:47 AM Bough Chen <haibo.chen@nxp.com> wrote:> > Hi 
Linus and Bartosz,
> > 
> > For this patch, still not in the main trunk (Linux 6.5-rc7) and
> > linux-next(next-20230818). Can you help apply or any comment?
> 
> As pointed out by Bartosz you cannot just mechanically switch the base
> to -1.
> 
> You also need to convince us that this doesn't break any systems, and if
> it does, fix them so they don't break before submitting this patch.

I think it's hard to tell if something breaks, this driver is used in a lot of 
boards. AFAIR some people are relying on the assumption of fixed order. Using 
dynamic allocation this not ensured. A possible fix is to use aliases [1].

Best regards,
Alexander

[1] https://lore.kernel.org/lkml/20230215092421.143199-1-alexander.stein@ew.tq-group.com/T/#u
Linus Walleij Aug. 21, 2023, 10:21 a.m. UTC | #6
On Mon, Aug 21, 2023 at 9:44 AM Alexander Stein
<alexander.stein@ew.tq-group.com> wrote:
> Am Montag, 21. August 2023, 09:25:54 CEST schrieb Linus Walleij:
> > On Mon, Aug 21, 2023 at 4:47 AM Bough Chen <haibo.chen@nxp.com> wrote:> > Hi
> Linus and Bartosz,
> > >
> > > For this patch, still not in the main trunk (Linux 6.5-rc7) and
> > > linux-next(next-20230818). Can you help apply or any comment?
> >
> > As pointed out by Bartosz you cannot just mechanically switch the base
> > to -1.
> >
> > You also need to convince us that this doesn't break any systems, and if
> > it does, fix them so they don't break before submitting this patch.
>
> I think it's hard to tell if something breaks, this driver is used in a lot of
> boards. AFAIR some people are relying on the assumption of fixed order. Using
> dynamic allocation this not ensured. A possible fix is to use aliases [1].

Hm I might have been to grumpy!

It looks like any boardfiles using gpio-mxc have been eliminated
so this driver is now only used in device tree-boots? Right?

Then I feel a lot better about it.

Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
Bartosz Golaszewski Aug. 21, 2023, 12:17 p.m. UTC | #7
On Mon, Aug 21, 2023 at 12:21 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> On Mon, Aug 21, 2023 at 9:44 AM Alexander Stein
> <alexander.stein@ew.tq-group.com> wrote:
> > Am Montag, 21. August 2023, 09:25:54 CEST schrieb Linus Walleij:
> > > On Mon, Aug 21, 2023 at 4:47 AM Bough Chen <haibo.chen@nxp.com> wrote:> > Hi
> > Linus and Bartosz,
> > > >
> > > > For this patch, still not in the main trunk (Linux 6.5-rc7) and
> > > > linux-next(next-20230818). Can you help apply or any comment?
> > >
> > > As pointed out by Bartosz you cannot just mechanically switch the base
> > > to -1.
> > >
> > > You also need to convince us that this doesn't break any systems, and if
> > > it does, fix them so they don't break before submitting this patch.
> >
> > I think it's hard to tell if something breaks, this driver is used in a lot of
> > boards. AFAIR some people are relying on the assumption of fixed order. Using
> > dynamic allocation this not ensured. A possible fix is to use aliases [1].
>
> Hm I might have been to grumpy!
>
> It looks like any boardfiles using gpio-mxc have been eliminated
> so this driver is now only used in device tree-boots? Right?
>
> Then I feel a lot better about it.
>
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
>
> Yours,
> Linus Walleij

I will not be queueing it for v6.6 as merge window opens in a week, I
want to give it more time in next and see if anyone complains so it'll
make it for v6.7.

Bart
Ahmad Fatoum Aug. 28, 2023, 1:56 p.m. UTC | #8
Hello,

Cc += i.MX maintainers as this file isn't matched by the MAINTAINERS entry.

On 21.08.23 14:17, Bartosz Golaszewski wrote:
> On Mon, Aug 21, 2023 at 12:21 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>>
>> On Mon, Aug 21, 2023 at 9:44 AM Alexander Stein
>> <alexander.stein@ew.tq-group.com> wrote:
>>> Am Montag, 21. August 2023, 09:25:54 CEST schrieb Linus Walleij:
>>>> On Mon, Aug 21, 2023 at 4:47 AM Bough Chen <haibo.chen@nxp.com> wrote:> > Hi
>>> Linus and Bartosz,
>>>>>
>>>>> For this patch, still not in the main trunk (Linux 6.5-rc7) and
>>>>> linux-next(next-20230818). Can you help apply or any comment?
>>>>
>>>> As pointed out by Bartosz you cannot just mechanically switch the base
>>>> to -1.
>>>>
>>>> You also need to convince us that this doesn't break any systems, and if
>>>> it does, fix them so they don't break before submitting this patch.
>>>
>>> I think it's hard to tell if something breaks, this driver is used in a lot of
>>> boards. AFAIR some people are relying on the assumption of fixed order. Using
>>> dynamic allocation this not ensured. A possible fix is to use aliases [1].
>>
>> Hm I might have been to grumpy!
>>
>> It looks like any boardfiles using gpio-mxc have been eliminated
>> so this driver is now only used in device tree-boots? Right?
>>
>> Then I feel a lot better about it.
>>
>> Acked-by: Linus Walleij <linus.walleij@linaro.org>
>>
>> Yours,
>> Linus Walleij
> 
> I will not be queueing it for v6.6 as merge window opens in a week, I
> want to give it more time in next and see if anyone complains so it'll
> make it for v6.7.

IMO, this should not be merged. I would hate to do a kernel update and
see the kernel toggle some unrelated GPIO, because probe order changes.
This will eventually happen to somebody and if they're unlucky, it will
break something.

For systems, where the order was never fixed, I agree it's on them, but
for i.MX, it has been fixed since inception AFAIK and I fail to see
what strong reason there is to justify breaking their setups in such
a manner.

Yes, the sysfs interface will eventually go away and fixed numbering
with it but that has been announced long in advance and when that happens,
updated systems with legacy scripts will cease to do GPIO until fixed
and not essentially toggling GPIOs at random.

Thanks,
Ahmad

> 
> Bart
diff mbox series

Patch

diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
index 9d0cec4b82a3..abc129a88a62 100644
--- a/drivers/gpio/gpio-mxc.c
+++ b/drivers/gpio/gpio-mxc.c
@@ -462,8 +462,7 @@  static int mxc_gpio_probe(struct platform_device *pdev)
 	port->gc.request = gpiochip_generic_request;
 	port->gc.free = gpiochip_generic_free;
 	port->gc.to_irq = mxc_gpio_to_irq;
-	port->gc.base = (pdev->id < 0) ? of_alias_get_id(np, "gpio") * 32 :
-					     pdev->id * 32;
+	port->gc.base = -1;
 
 	err = devm_gpiochip_add_data(&pdev->dev, &port->gc, port);
 	if (err)