On Fri, Jan 29, 2021 at 8:03 PM Saravana Kannan <sarava...@google.com> wrote: > > This patch series solves two general issues with fw_devlink=on > > Patch 1/2 addresses the issue of firmware nodes that look like they'll > have struct devices created for them, but will never actually have > struct devices added for them. For example, DT nodes with a compatible > property that don't have devices added for them. > > Patch 2/2 address (for static kernels) the issue of optional suppliers > that'll never have a driver registered for them. So, if the device could > have probed with fw_devlink=permissive with a static kernel, this patch > should allow those devices to probe with a fw_devlink=on. This doesn't > solve it for the case where modules are enabled because there's no way > to tell if a driver will never be registered or it's just about to be > registered. I have some other ideas for that, but it'll have to come > later thinking about it a bit. > > These two patches might remove the need for several other patches that > went in as fixes for commit e590474768f1 ("driver core: Set > fw_devlink=on by default"), but I think all those fixes are good > changes. So I think we should leave those in. > > Marek, Geert, > > Can you try this series on a static kernel with your OF_POPULATED > changes reverted? I just want to make sure these patches can identify > and fix those cases. > > Tudor, > > You should still make the clock driver fix (because it's a bug), but I > think this series will fix your issue too (even without the clock driver > fix). Can you please give this a shot? > > Marc, > > Can you try this series with the gpiolib fix reverted please? I'm pretty > sure this will fix that case. > > Linus, > > This series very likely removes the need for the gpiolib patch (we can > wait for Marc to confirm). I'm split on whether we should leave it in or > not. Thoughts?
Actually, thinking more about this, we should keep the gpiolib patch. It'll ensure the suspend/resume order is always correct. This series basically gives up on creating device links to firmware nodes that don't have a corresponding device added. The gpiolib patch makes sure the nodes have a device that corresponds to them. So device links will get created to the gpio_device and will make sure the parent of the gpio_device doesn't suspend before the consumers of the gpio. -Saravana