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 |
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
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/
> -----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
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
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
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
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
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 --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)