[PATCH RFC] gpio: Fix probing of gpio-hogs
Chris Webb
chris at arachsys.com
Thu Jun 13 12:59:05 CEST 2024
48b3ecbe replumbed the gpio-hog probing to use DM_FLAG_PROBE_AFTER_BIND.
Unfortunately gpio_post_bind is called after the non-preloc recursive
dm_probe_devices completes, so setting this flag does not have the intended
effect and the gpio-hogs never get probed. With instrumentation:
[...]
CPU: MediaTek MT7981
Model: GL.iNet GL-X3000
DRAM: 512 MiB
<mtk_pinctrl_mt7981_bind called>
<dm_probe_devices called: root root_driver root_driver [+] [ ]>
<dm_probe_devices called: clk fixed_clock gpt_dummy20m [ ] [ ]>
[...]
<dm_probe_devices called: led gpio_led signal-4 [ ] [ ]>
Core: 34 devices, 14 uclasses, devicetree: separate
MMC: <gpio_post_bind called>
mmc at 11230000: 0
[...]
Probe them directly in gpio_post_bind instead.
Signed-off-by: Chris Webb <chris at arachsys.com>
---
drivers/gpio/gpio-uclass.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index 4234cd91..1c6e1715 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -1539,7 +1539,9 @@ static int gpio_post_bind(struct udevice *dev)
* since hogs can be essential to the hardware
* system.
*/
- dev_or_flags(child, DM_FLAG_PROBE_AFTER_BIND);
+ ret = device_probe(child);
+ if (ret)
+ return ret;
}
}
}
More information about the U-Boot
mailing list