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