Hi Rob, On Fri, Feb 28, 2025 at 08:17:03AM -0600, Rob Herring wrote: >On Fri, Feb 28, 2025 at 8:04 AM Sudeep Holla <sudeep.holla@xxxxxxx> wrote: >> >> On Fri, Feb 28, 2025 at 07:34:09AM -0600, Rob Herring wrote: >> > >> > - The parent driver creates child devices. The child devices can >> > either reuse the parent DT node (i.e. set dev.of_node) or just get it >> > from the parent device if needed. >> > >> >> This is exactly what I was thinking to deal with the issue since this >> discussion started. I will give this a go. I believe this must solve >> the issue, but I didn't want to spit it out loud until I tried to hack >> and check. > >The issue with fw_devlink is that it only checks the dependency of the >parent which won't be enough. When the parent's probe creates the >child device, that doesn't mean the child has probed. The child driver >might not be loaded and/or probe is async. I don't think there's >anyway for the parent probe to wait for child drivers to be probed and Please forgive if my understanding is wrong. Based on device tree, there is fwnode link created using fwnode_link_add, then in device_add, the fw_devlink_link_device will do the device supplier and consumer link. It is just device level link, not related to child's probe. So if child device(work as supplier) is created only when a prarent's probe done, the consumer of the child device will not have link ready and consumer device's driver will not probe until the child device created and probe done. Thanks, Peng >ready. I think there's similar issues with the DWC3 wrapper and core >driver split. > >Rob