]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Revert "treewide: Fix probing of devices in DT overlays"
authorSaravana Kannan <saravanak@google.com>
Mon, 11 May 2026 15:57:48 +0000 (17:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 22 May 2026 11:33:58 +0000 (13:33 +0200)
This reverts commit 1a50d9403fb90cbe4dea0ec9fd0351d2ecbd8924.

While the commit fixed fw_devlink overlay handling for one case, it
broke it for another case. So revert it and redo the fix in a separate
patch.

Fixes: 1a50d9403fb9 ("treewide: Fix probing of devices in DT overlays")
Reported-by: Herve Codina <herve.codina@bootlin.com>
Closes: https://lore.kernel.org/lkml/CAMuHMdXEnSD4rRJ-o90x4OprUacN_rJgyo8x6=9F9rZ+-KzjOg@mail.gmail.com/
Closes: https://lore.kernel.org/all/20240221095137.616d2aaa@bootlin.com/
Closes: https://lore.kernel.org/lkml/20240312151835.29ef62a0@bootlin.com/
Signed-off-by: Saravana Kannan <saravanak@google.com>
Link: https://lore.kernel.org/lkml/20240411235623.1260061-2-saravanak@google.com/
[Herve: Fix conflicts due to f72e77c33e4b ("device property: Make
modifications of fwnode "flags" thread safe")]

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Acked-by: Mark Brown <broonie@kernel.org>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com> # for I2C
Link: https://patch.msgid.link/20260511155755.34428-2-herve.codina@bootlin.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/bus/imx-weim.c
drivers/i2c/i2c-core-of.c
drivers/of/dynamic.c
drivers/of/platform.c
drivers/spi/spi.c

index f735e0462c55ee9ab877b0f9c7a85330892b1be4..87070155b057241f28f123f1c23d4800f01df827 100644 (file)
@@ -327,12 +327,6 @@ static int of_weim_notify(struct notifier_block *nb, unsigned long action,
                                 "Failed to setup timing for '%pOF'\n", rd->dn);
 
                if (!of_node_check_flag(rd->dn, OF_POPULATED)) {
-                       /*
-                        * Clear the flag before adding the device so that
-                        * fw_devlink doesn't skip adding consumers to this
-                        * device.
-                        */
-                       fwnode_clear_flag(&rd->dn->fwnode, FWNODE_FLAG_NOT_DEVICE);
                        if (!of_platform_device_create(rd->dn, NULL, &pdev->dev)) {
                                dev_err(&pdev->dev,
                                        "Failed to create child device '%pOF'\n",
index 354a88d0599e3e983bb24d188b545f8441aec8c2..30b48a428c0be66c1568439e1904266a785adab5 100644 (file)
@@ -176,11 +176,6 @@ static int of_i2c_notify(struct notifier_block *nb, unsigned long action,
                        return NOTIFY_OK;
                }
 
-               /*
-                * Clear the flag before adding the device so that fw_devlink
-                * doesn't skip adding consumers to this device.
-                */
-               fwnode_clear_flag(&rd->dn->fwnode, FWNODE_FLAG_NOT_DEVICE);
                client = of_i2c_register_device(adap, rd->dn);
                if (IS_ERR(client)) {
                        dev_err(&adap->dev, "failed to create client for '%pOF'\n",
index ade288372101bb9d24873a97f96bc52282a81e72..aa450425ec1e6a867878d139e35141f65b9ba5f4 100644 (file)
@@ -225,7 +225,6 @@ static void __of_attach_node(struct device_node *np)
        np->sibling = np->parent->child;
        np->parent->child = np;
        of_node_clear_flag(np, OF_DETACHED);
-       fwnode_set_flag(&np->fwnode, FWNODE_FLAG_NOT_DEVICE);
 
        raw_spin_unlock_irqrestore(&devtree_lock, flags);
 
index a42224f9d1a888a6e6cad7534cd2c5f110e995da..53bca8c6f7810ce2235b4d084a361626b1d2da33 100644 (file)
@@ -744,11 +744,6 @@ static int of_platform_notify(struct notifier_block *nb,
                if (of_node_check_flag(rd->dn, OF_POPULATED))
                        return NOTIFY_OK;
 
-               /*
-                * Clear the flag before adding the device so that fw_devlink
-                * doesn't skip adding consumers to this device.
-                */
-               fwnode_clear_flag(&rd->dn->fwnode, FWNODE_FLAG_NOT_DEVICE);
                /* pdev_parent may be NULL when no bus platform device */
                pdev_parent = of_find_device_by_node(parent);
                pdev = of_platform_device_create(rd->dn, NULL,
index 104279858f567bc54d54263c87ab349b9233ccef..889e1eecc757378ab72b03bf6e8e08fdb5c1cb9a 100644 (file)
@@ -5003,11 +5003,6 @@ static int of_spi_notify(struct notifier_block *nb, unsigned long action,
                        return NOTIFY_OK;
                }
 
-               /*
-                * Clear the flag before adding the device so that fw_devlink
-                * doesn't skip adding consumers to this device.
-                */
-               fwnode_clear_flag(&rd->dn->fwnode, FWNODE_FLAG_NOT_DEVICE);
                spi = of_register_spi_device(ctlr, rd->dn);
                put_device(&ctlr->dev);