[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <6ee209b3-4d7a-45a8-bd65-6a51730d458d@gmail.com>
Date: Mon, 24 Nov 2025 10:48:54 +0200
From: Kalle Niemi <kaleposti@...il.com>
To: Saravana Kannan <saravanak@...gle.com>,
Herve Codina <herve.codina@...tlin.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J. Wysocki" <rafael@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
Wolfram Sang <wsa+renesas@...g-engineering.com>,
Rob Herring <robh@...nel.org>, Mark Brown <broonie@...nel.org>,
Len Brown <lenb@...nel.org>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Daniel Scally <djrscally@...il.com>,
Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
Sakari Ailus <sakari.ailus@...ux.intel.com>,
Geert Uytterhoeven <geert+renesas@...der.be>
Cc: kernel-team@...roid.com, Wolfram Sang <wsa@...nel.org>,
linux-kernel@...r.kernel.org, imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, linux-i2c@...r.kernel.org,
devicetree@...r.kernel.org, linux-spi@...r.kernel.org,
linux-acpi@...r.kernel.org, Matti Vaittinen <mazziesaccount@...il.com>
Subject: Re: [PATCH v3 1/2] Revert "treewide: Fix probing of devices in DT
overlays"
On 4/12/24 02:56, Saravana Kannan wrote:
> 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@...tlin.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@...gle.com>
> ---
> drivers/bus/imx-weim.c | 6 ------
> drivers/i2c/i2c-core-of.c | 5 -----
> drivers/of/dynamic.c | 1 -
> drivers/of/platform.c | 5 -----
> drivers/spi/spi.c | 5 -----
> 5 files changed, 22 deletions(-)
>
> diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c
> index 837bf9d51c6e..caaf887e0ccc 100644
> --- a/drivers/bus/imx-weim.c
> +++ b/drivers/bus/imx-weim.c
> @@ -331,12 +331,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.
> - */
> - rd->dn->fwnode.flags &= ~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",
> diff --git a/drivers/i2c/i2c-core-of.c b/drivers/i2c/i2c-core-of.c
> index a6c407d36800..a250921bbce0 100644
> --- a/drivers/i2c/i2c-core-of.c
> +++ b/drivers/i2c/i2c-core-of.c
> @@ -178,11 +178,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.
> - */
> - rd->dn->fwnode.flags &= ~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",
> diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c
> index 4d57a4e34105..19a1a38554f2 100644
> --- a/drivers/of/dynamic.c
> +++ b/drivers/of/dynamic.c
> @@ -224,7 +224,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);
> - np->fwnode.flags |= FWNODE_FLAG_NOT_DEVICE;
>
> raw_spin_unlock_irqrestore(&devtree_lock, flags);
>
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index 389d4ea6bfc1..efd861fa254f 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -743,11 +743,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.
> - */
> - rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE;
> /* pdev_parent may be NULL when no bus platform device */
> pdev_parent = of_find_device_by_node(rd->dn->parent);
> pdev = of_platform_device_create(rd->dn, NULL,
> diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
> index ff75838c1b5d..17cd417f7681 100644
> --- a/drivers/spi/spi.c
> +++ b/drivers/spi/spi.c
> @@ -4761,11 +4761,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.
> - */
> - rd->dn->fwnode.flags &= ~FWNODE_FLAG_NOT_DEVICE;
> spi = of_register_spi_device(ctlr, rd->dn);
> put_device(&ctlr->dev);
>
Hello,
Test system testing drivers for ROHM ICs bisected this commit to cause
BD71847 drivers probe to not be called.
The devicetree blob overlay describing bd71847 enables I2C1 bus on
BeagleBone Black aswell.
Probe is called when the driver is used with HW connected to I2C2 bus.
I2C2 bus is enabled before overlaying devicetree blobs.
---- BD71847 Devicetree overlay source ----
/dts-v1/;
/plugin/;
/{ /* this is our device tree overlay root node */
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "BBB-I2C1";
version = "00A0";
fragment@0 {
target = <&am33xx_pinmux>; // this is a link to an already defined
node in the device tree, so that node is overlayed with our modification
__overlay__ {
i2c1_pins: pinmux_i2c1_pins {
pinctrl-single,pins = <
0x158 0x72 /* spi0_d1.i2c1_sda */
0x15C 0x72 /* spi0_cs0.i2c1_sdl */
>;
};
};
};
....
....
fragment@2 {
target = <&i2c1>;
__overlay__ {
pinctrl-0 = <&i2c1_pins>;
clock-frequency = <100000>;
status = "okay";
pmic: pmic@4b { /* the "test" defined as child of the i2c1 bus */
compatible = "rohm,bd71847";
reg = <0x4b>;
....
....
}; /* root node end */
---- END OF BD71847 Devicetree overlay source ----
Reverting this patch from linux-next from last friday fixes the issue.
BR
Kalle Niemi
Powered by blists - more mailing lists