Thread (75 messages) 75 messages, 8 authors, 2026-01-22

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

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2026-01-21 14:37:31
Also in: imx, linux-acpi, linux-clk, linux-cxl, linux-gpio, linux-i2c, linux-pci, linux-pm, linux-sound, linux-spi, lkml

Hi Hervé,

Revisiting his old thread (sorry for the delay)...

On Thu, 11 Dec 2025 at 16:19, Herve Codina [off-list ref] wrote:
On Thu, 11 Dec 2025 15:52:28 +0200
Matti Vaittinen [off-list ref] wrote:
quoted
On 11/12/2025 14:20, Herve Codina wrote:
quoted
On Thu, 11 Dec 2025 10:34:46 +0200
Matti Vaittinen [off-list ref] 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.
quoted
quoted
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:

    - 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: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

Loading the overlay again causes no changes in the links, but the SPI
bus and FLASH always work.

[1] https://web.git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git/commit/?h=topic/renesas-overlays&id=383285b905a20d6734bfcbf7bcf715c1c2b45395

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help