Re: [PATCH v4 01/29] Revert "treewide: Fix probing of devices in DT overlays"

Herve Codina
2026-01-22T11:41:39Z

Hi Geert,

On Wed, 21 Jan 2026 13:59:26 +0100
Geert Uytterhoeven <geert@linux-m68k.org> wrote:

> Hi Hervé,
>
> Revisiting his old thread (sorry for the delay)...
>
> On Thu, 11 Dec 2025 at 16:19, Herve Codina <herve.codina@bootlin.com> wrote:
> > On Thu, 11 Dec 2025 15:52:28 +0200
> > Matti Vaittinen <mazziesaccount@gmail.com> wrote:
> > > On 11/12/2025 14:20, Herve Codina wrote:
> > > > On Thu, 11 Dec 2025 10:34:46 +0200
> > > > Matti Vaittinen <mazziesaccount@gmail.com> wrote:
> > > > Do you see the same trace with:
> > > > - "pinctrl-0 = <&i2c1_pins>;" in your overlay
> > > > - fragment0 removed from the overlay (i2c1_pins definition removed from
> > > > the overlay.
> > > > - i2c1_pins node defined in your base DT.
> > >
> > > Just tested. The i2c1 appears and the test-overlay probe gets called,
> > > when the i2c1_pins is in the base-dt and not in the overlay.
> >
> > Geert, do you expirement same results?
>
> Yes, after moving the pin control subnode from the overlay[1] to the
> base DTS, the SPI bus and FLASH work after loading the overlay for
> the first time.

Ok. What I said for Matti's use-case is also valid for your use-case.

>
> > > > In other word, is the issues related to adding a pinctrl sub-node (pinctrl
> > > > pins definition) in the overlay or is it something else?
> > >
> > > Seems to be related to the pinctrl.
> >
> > I don't think that the issue is related to pinctrl itself.
> >
> > IMHO, I think the issue is related to overlays and fw_devlink.
> > The distinction between "a new node is going to lead to a device" vs "a new
> > node is just data and will never been attached to a new device" when an
> > overlay is applied is broken.
> >
> > This is broken with the upstream "treewide: Fix probing of devices in DT
> > overlays" commit I've tried to revert. Indeed, on the LAN966x PCI device
> > use case devlinks created are not correct with this commit applied.
> >
> > I am not sure also that devlinks created with a more complex overlay will be
> > correct. For instance, Matti, with your overlay not sure that a phandle from
> > the oscillator node referencing the pmic node will lead to a correct
> > provider/consumer devlink between the pmic device and the oscillator device.
> >
> > On the other hand, this is broken with "of: dynamic: Fix overlayed devices
> > not probing because of fw_devlink" works for the LAN966x PCI device use case
> > an lead to correct devlinks but breaks your use cases.
>
> Loading my overlay[1] causes the following changes under
> /sys/class/devlink/:
>
> + genpd_provider:ca53-cpu0--platform:e6e90000.spi ->
> ../../devices/virtual/devlink/genpd_provider:ca53-cpu0--platform:e6e90000.spi
> + platform:e6055000.gpio--platform:e6e90000.spi ->
> ../../devices/virtual/devlink/platform:e6055000.gpio--platform:e6e90000.spi
> + platform:e6060000.pinctrl--platform:e6e90000.spi ->
> ../../devices/virtual/devlink/platform:e6060000.pinctrl--platform:e6e90000.spi
> - platform:e6060000.pinctrl--platform:keys ->
> ../../devices/virtual/devlink/platform:e6060000.pinctrl--platform:keys
> + platform:e6150000.clock-controller--platform:e6e90000.spi ->
> ../../devices/virtual/devlink/platform:e6150000.clock-controller--platform:e6e90000.spi
> + platform:soc--platform:e6e90000.spi ->
> ../../devices/virtual/devlink/platform:soc--platform:e6e90000.spi
>
> Note that these changes are exactly the same in the working and the
> non-working case.
>
> Removing the overlay again removes all added links, but does not
> restore the keys link:

I think you should have the exact same behavior with and without my
modification.

Can you confirm?

Best regards,
Hervé