Subject: Re: [REGRESSION] gpio hogging fails with pinctrl gpio drivers

From: Russell King - ARM Linux admin <[email-masked]>
Date: Thu, 20 Feb 2020 18:19:12 +0000

On Thu, Feb 20, 2020 at 09:28:14AM -0800, Andrey Smirnov wrote:
> On Thu, Feb 20, 2020 at 12:18 AM Linus Walleij <[email-masked]> wrote:
> >
> > On Thu, Feb 6, 2020 at 6:33 PM Russell King - ARM Linux admin
> > <[email-masked]> wrote:
> >
> > > It seems that sometime between 4.20 and 5.5, something has broken the
> > > ability to specify gpio-hogs in DT for GPIOs that are written around
> > > pinctrl drivers.
> > (explanation that makes perfect sense)
> > > Consequently, adding a gpio-hog to DT for this driver results in the
> > > driver endlessly returning -EPROBE_DEFER.
> >
> > I suspect this is sx150x-specific and suspect these two commits:
> >
> > 1a1d39e1b8dd pinctrl: sx150x: Register pinctrl before adding the gpiochip
> > b930151e5b55 pinctrl: sx150x: Add a static gpio/pinctrl pin range mapping
> >
> > I suppose people weren't using hogs very much with the sx150x and
> > it didn't turn up in testing so far.
> >
> > I don't think for example pinctrl-stmfx.c has this problem, as it registers
> > the pin ranges from the device tree as part of the core code.
> > But other drivers calling gpiochip_add_pin_range() may be experiencing
> > this.
> >
> > Peter/Andrey, do you have some idea? Have you tested this usecase (hogs)
> > with the sx150x?
> >
> 
> Haven't done any GPIO hogging on sx150x, unfortunately. My use-cases were:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
> 
> and
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/vf610-zii-scu4-aib.dts
> 
> which didn't have any hogs so far (there's a chance Russell is using
> the former for his experiments, so maybe that'll change). I don't any
> useful input on this regression, sorry. I do have Rev C. board readily
> available, so I can provide Tested-by's if I am CC'd on fixes.

The ZII dev rev C is where I had the hog as a means of kicking the
88x3310 PHY out of reset.

I've now converted it to a proper MDIO bus-level reset, so I no
longer have the hog, and I no longer care about the regression - but
that's not to say it shouldn't be fixed, as the code is wrong.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel