[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMuHMdWyA3y1PYff5X9DoPaj0TREK3jFe_P+e+rNVb1K-kRDbA@mail.gmail.com>
Date: Wed, 3 Feb 2021 09:15:48 +0100
From: Geert Uytterhoeven <geert@...ux-m68k.org>
To: Saravana Kannan <saravanak@...gle.com>
Cc: Martin Kaiser <martin@...ser.cx>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Marek Szyprowski <m.szyprowski@...sung.com>,
Marc Zyngier <maz@...nel.org>,
Tudor Ambarus <Tudor.Ambarus@...rochip.com>,
Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski <bgolaszewski@...libre.com>,
Rob Herring <robh+dt@...nel.org>,
Frank Rowand <frowand.list@...il.com>,
Len Brown <lenb@...nel.org>,
LKML <linux-kernel@...r.kernel.org>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@...r.kernel.org>,
ACPI Devel Maling List <linux-acpi@...r.kernel.org>,
Android Kernel Team <kernel-team@...roid.com>
Subject: Re: [PATCH v2 0/3] Make fw_devlink=on more forgiving
Hi Saravana,
On Wed, Feb 3, 2021 at 9:11 AM Saravana Kannan <saravanak@...gle.com> wrote:
> On Tue, Feb 2, 2021 at 11:55 PM Geert Uytterhoeven <geert@...ux-m68k.org> wrote:
> > On Tue, Feb 2, 2021 at 11:44 PM Saravana Kannan <saravanak@...gle.com> wrote:
> > > On Tue, Feb 2, 2021 at 1:22 PM Martin Kaiser <martin@...ser.cx> wrote:
> > > > Thus wrote Saravana Kannan (saravanak@...gle.com):
> > > > All of those drivers have a gpio in
> > > > their device-tree node, such as
> > > >
> > > > my_driver {
> > > > gpio_test1 = <&gpio1 0 0>;
> > > > ...
> > > > };
> > > >
> > > > with gpio1 from arch/arm/boot/dts/imx25.dtsi.
> > > >
> > > > The probe function calls
> > > >
> > > > of_get_named_gpio(np, "gpio_test1", 0);
> > > >
> > > > to get the gpio. This fails with -EINVAL.
> > >
> > > And you didn't see this issue with the fsl,avic patch?
> > >
> > > The property you are using is not a standard GPIO binding (-gpios,
> > > gpio, gpios) and I'm not surprised it's not working. The gpio1 is
> > > probably getting probe deferred and ends up running after "my_driver".
> >
> > So my_driver doesn't support deferred probe, as of_get_named_gpio()
> > returns -EINVAL instead of -EPROBE_DEFER?
> > Converting my_driver from of_get_named_gpio() to the gpiod_*() API
> > should at least make the driver support probe deferral, after which I
> > expect it to start working again on reprobe?
>
> The way I understood the API/example, you can't just change the code
> and have it work. The DT itself isn't using standard bindings. And we
Oh, right.
> can't make kernel changes that assume the DT has been changed to match
> the code. So, the best we could do is have of_get_named_gpio() return
> -EPROBE_DEFER if it doesn't find the GPIO -- assuming that doesn't
> break other users. Or have this specific driver remap the -EINVAL to
> -EPROBE_DEFER.
The latter would hide real errors, too, and would cause futile reprobes.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-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
Powered by blists - more mailing lists