U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC] gpio: Fix probing of gpio-hogs
@ 2024-06-13 10:59 Chris Webb
  2024-06-20 20:16 ` Tom Rini
  2024-07-29 15:25 ` Simon Glass
  0 siblings, 2 replies; 13+ messages in thread
From: Chris Webb @ 2024-06-13 10:59 UTC (permalink / raw)
  To: u-boot

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@11230000: 0
  [...]

Probe them directly in gpio_post_bind instead.

Signed-off-by: Chris Webb <chris@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;
 			}
 		}
 	}

^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2024-07-31 18:15 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-13 10:59 [PATCH RFC] gpio: Fix probing of gpio-hogs Chris Webb
2024-06-20 20:16 ` Tom Rini
2024-06-22 11:04   ` Chris Webb
2024-07-03  9:49     ` Chris Webb
2024-07-29  7:45       ` Chris Webb
2024-07-29 15:25 ` Simon Glass
2024-07-29 15:44   ` Chris Webb
2024-07-29 16:18     ` Simon Glass
2024-07-29 16:45       ` Chris Webb
2024-07-29 17:21         ` Simon Glass
2024-07-31 10:14           ` Chris Webb
2024-07-31 14:38             ` Simon Glass
2024-07-31 18:14               ` Chris Webb

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox