Re: [PATCH v2 0/3] Make fw_devlink=on more forgiving
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-02-03 08:16:59
Also in:
linux-acpi, lkml
Hi Saravana, On Wed, Feb 3, 2021 at 9:11 AM Saravana Kannan [off-list ref] wrote:
On Tue, Feb 2, 2021 at 11:55 PM Geert Uytterhoeven [off-list ref] wrote:quoted
On Tue, Feb 2, 2021 at 11:44 PM Saravana Kannan [off-list ref] wrote:quoted
On Tue, Feb 2, 2021 at 1:22 PM Martin Kaiser [off-list ref] wrote:quoted
Thus wrote Saravana Kannan (saravanak@google.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@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