From nobody Fri Apr 3 01:28:28 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 96CC03E274F; Wed, 25 Mar 2026 14:36:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449404; cv=none; b=iIIpXsKAmD/8zqs7Tuux0VfsA/IU40CFpYWDzFj6EZRQ8XMgb2OBoNLdhZ60pal4PdXpoDjQLvB8UKntGw7OCfTJb3edQEghqeduaPII2ithG5d+HbIuK3Rh1Z1zeTjbLTEwi+yHhlGXM2cw+zKuU6UisHqiR+2puOHgug2NbSM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449404; c=relaxed/simple; bh=FArXeehyZTW3N0bt5Bcb/H3S/Bs4a13KfFNQGV+ZYDY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kCYqgIYh7I6utXKuG3l5D0A1VGIgHXGMaMm0168OIYoYucPE6V7TCZVQHZNNFHybCNerdPAnFhh44I5+FfEUY0h+wFIsR22dpt7vFjs+FdiWCVkrtKlMqQhKdBvOXoE0jYIKtDK4iQnsYJcOyGHLEOA/Voa3hos+qngTGod+15I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=vTPsCQ0O; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="vTPsCQ0O" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 3676F4E427F0; Wed, 25 Mar 2026 14:36:40 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 06E2A601FA; Wed, 25 Mar 2026 14:36:40 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 8BAD4104513C1; Wed, 25 Mar 2026 15:36:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449396; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=udl87NYHrbG5beYr+sj6tRLtpueqBaBik+Z+B4KV8SY=; b=vTPsCQ0OXGCOjFNQKGFCHfcsVlmP8F5muE1qprMIH7KqRdt5RtvV9lSR0G9oClrERWD7ka sG+buxOuzeQ9qYnnck+CnS9RbkMQFieTw3xJO1ixkw4ob2MZ/VIzPHom7nLmNYCc863rru 2D6BYhvh03S0ms+Fdhnd9KMH4RY5G3luwYHvAgTenvyqp5mbiZpqS6vKJslt4oAGCpHJgi SargWsR4V8zAfmXCf/bEy1Eor6i7ivHIOpunI8GA7DFXONdIhqNue5SDG/aUSVRzQJvPMr At40NnKGsahrmofS/xGpJAX4HOs1Sx6i1yzcSK0nyW/LQoQwgSddwdj78duGGA== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni , Saravana Kannan Subject: [PATCH v6 01/27] Revert "treewide: Fix probing of devices in DT overlays" Date: Wed, 25 Mar 2026 15:35:28 +0100 Message-ID: <20260325143555.451852-2-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" From: Saravana Kannan 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 Closes: https://lore.kernel.org/lkml/CAMuHMdXEnSD4rRJ-o90x4OprUacN_rJgyo8x6= =3D9F9rZ+-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 Link: https://lore.kernel.org/lkml/20240411235623.1260061-2-saravanak@googl= e.com/ Signed-off-by: Herve Codina Acked-by: Mark Brown --- 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 83d623d97f5f..87070155b057 100644 --- a/drivers/bus/imx-weim.c +++ b/drivers/bus/imx-weim.c @@ -327,12 +327,6 @@ static int of_weim_notify(struct notifier_block *nb, u= nsigned long action, "Failed to setup timing for '%pOF'\n", rd->dn); =20 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 &=3D ~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 eb7fb202355f..30b48a428c0b 100644 --- a/drivers/i2c/i2c-core-of.c +++ b/drivers/i2c/i2c-core-of.c @@ -176,11 +176,6 @@ static int of_i2c_notify(struct notifier_block *nb, un= signed long action, return NOTIFY_OK; } =20 - /* - * Clear the flag before adding the device so that fw_devlink - * doesn't skip adding consumers to this device. - */ - rd->dn->fwnode.flags &=3D ~FWNODE_FLAG_NOT_DEVICE; client =3D 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 1a06175def37..aa450425ec1e 100644 --- a/drivers/of/dynamic.c +++ b/drivers/of/dynamic.c @@ -225,7 +225,6 @@ static void __of_attach_node(struct device_node *np) np->sibling =3D np->parent->child; np->parent->child =3D np; of_node_clear_flag(np, OF_DETACHED); - np->fwnode.flags |=3D FWNODE_FLAG_NOT_DEVICE; =20 raw_spin_unlock_irqrestore(&devtree_lock, flags); =20 diff --git a/drivers/of/platform.c b/drivers/of/platform.c index ba591fbceb56..2037c0b3880d 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -738,11 +738,6 @@ static int of_platform_notify(struct notifier_block *n= b, if (of_node_check_flag(rd->dn, OF_POPULATED)) return NOTIFY_OK; =20 - /* - * Clear the flag before adding the device so that fw_devlink - * doesn't skip adding consumers to this device. - */ - rd->dn->fwnode.flags &=3D ~FWNODE_FLAG_NOT_DEVICE; /* pdev_parent may be NULL when no bus platform device */ pdev_parent =3D of_find_device_by_node(parent); pdev =3D of_platform_device_create(rd->dn, NULL, diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 61f7bde8c7fb..749d306ce1cc 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -4934,11 +4934,6 @@ static int of_spi_notify(struct notifier_block *nb, = unsigned long action, return NOTIFY_OK; } =20 - /* - * Clear the flag before adding the device so that fw_devlink - * doesn't skip adding consumers to this device. - */ - rd->dn->fwnode.flags &=3D ~FWNODE_FLAG_NOT_DEVICE; spi =3D of_register_spi_device(ctlr, rd->dn); put_device(&ctlr->dev); =20 --=20 2.53.0 From nobody Fri Apr 3 01:28:28 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D3183DD537; Wed, 25 Mar 2026 14:36:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449418; cv=none; b=PmUgiVJLesrBYCDZcWCCDY3sdN4B3MKzLguDtqpM+6P5pEBvL2ZIJyrjc49J3/lTado06MGg+FW3VkFWOrGzTJqLv+t78UUgHLOetfAPpmvU1OzLlJv7MLaebWCfki94/zXo0thQuwoA1b/5mGJkaQeligDoXNKNs4QmVJ7FFQY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449418; c=relaxed/simple; bh=ELGRYLKuygkGfQqF1xaCp2fy8ZYCsjD3GfCuUCSoLgI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gLGOtbPmrUiY4e8Yj9ngZuP+MpvNOUeAQ8KX+RHT8qQwVvjl0Xfz6ssb+PkNhkCA4XnSFrXYIYmTUiZc72zs0HDTVBpeecUOJ2B93mWJxeyVxDSoG+SP+tGN/VFabc+R15hpNf/YcI0RR7zhE8mkTUXdI7yTiaRHF+cflT2pgTc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=FZ4i1own; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="FZ4i1own" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 6674C1A2FE3; Wed, 25 Mar 2026 14:36:55 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 34573601FA; Wed, 25 Mar 2026 14:36:55 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id E0A7A10451A72; Wed, 25 Mar 2026 15:36:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449412; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=e66ZQnhCt52Yibqi7nOR45Pvk80W8g1E8vl6pyJHbMg=; b=FZ4i1ownWnZlcO6echlt3He9lacUD3OtK1ESVkQBGJdxIaeUAg5DhQar1BIOX1ngtCyuvF HpQN/pZ8Rvolp6VKJVoDRZOu84w4cDwJ4fbWj6n/40MI3s6GwSwHXCrpD8Ux3R2bGRb+c9 YZO3pVL0ca75D17F+SeHxBlgG5d1vMfwQ+JwMF0Yb356cE328akPZtJYRGEbwVdM35PhHO y+0QXt9Zoi6UOgYUDRO6HkOjNFnk04zwchEKQ4V8z3aabB2PqmqmUEND1fDVloFY8pQ+M7 W9KxUk+LZD82hvJt88ZtB8unLGMbRnRKbUSk1VxQKFRNgobJcpQopx1UOCH9jA== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni , Saravana Kannan Subject: [PATCH v6 02/27] of: dynamic: Fix overlayed devices not probing because of fw_devlink Date: Wed, 25 Mar 2026 15:35:29 +0100 Message-ID: <20260325143555.451852-3-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" From: Saravana Kannan When an overlay is applied, if the target device has already probed successfully and bound to a device, then some of the fw_devlink logic that ran when the device was probed needs to be rerun. This allows newly created dangling consumers of the overlayed device tree nodes to be moved to become consumers of the target device. Fixes: 1a50d9403fb9 ("treewide: Fix probing of devices in DT overlays") Reported-by: Herve Codina Closes: https://lore.kernel.org/lkml/CAMuHMdXEnSD4rRJ-o90x4OprUacN_rJgyo8x6= =3D9F9rZ+-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 Link: https://lore.kernel.org/lkml/20240411235623.1260061-3-saravanak@googl= e.com/ [Herve: Rebase on top of recent kernel] [Herve: Add the call to driver_deferred_probe_trigger()] Signed-off-by: Herve Codina Tested-by: Kalle Niemi Tested-by: Geert Uytterhoeven --- drivers/base/core.c | 83 +++++++++++++++++++++++++++++++++++++----- drivers/of/overlay.c | 15 ++++++++ include/linux/fwnode.h | 1 + 3 files changed, 90 insertions(+), 9 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 791f9e444df8..019fda47d089 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -235,6 +235,79 @@ static void __fw_devlink_pickup_dangling_consumers(str= uct fwnode_handle *fwnode, __fw_devlink_pickup_dangling_consumers(child, new_sup); } =20 +static void fw_devlink_pickup_dangling_consumers(struct device *dev) +{ + struct fwnode_handle *child; + + guard(mutex)(&fwnode_link_lock); + + fwnode_for_each_available_child_node(dev->fwnode, child) + __fw_devlink_pickup_dangling_consumers(child, dev->fwnode); + __fw_devlink_link_to_consumers(dev); +} + +/** + * fw_devlink_refresh_fwnode - Recheck the tree under this firmware node + * @fwnode: The fwnode under which the fwnode tree has changed + * + * This function is mainly meant to adjust the supplier/consumer dependenc= ies + * after a fwnode tree overlay has occurred. + */ +void fw_devlink_refresh_fwnode(struct fwnode_handle *fwnode) +{ + struct device *dev; + + /* + * Find the closest ancestor fwnode that has been converted to a device + * that can bind to a driver (bus device). + */ + fwnode_handle_get(fwnode); + do { + if (fwnode->flags & FWNODE_FLAG_NOT_DEVICE) + continue; + + dev =3D get_dev_from_fwnode(fwnode); + if (!dev) + continue; + + if (dev->bus) + break; + + put_device(dev); + } while ((fwnode =3D fwnode_get_next_parent(fwnode))); + + /* + * If none of the ancestor fwnodes have (yet) been converted to a device + * that can bind to a driver, there's nothing to fix up. + */ + if (!fwnode) + return; + + WARN(device_is_bound(dev) && dev->links.status !=3D DL_DEV_DRIVER_BOUND, + "Don't multithread overlaying and probing the same device!\n"); + + /* + * If the device has already bound to a driver, then we need to redo + * some of the work that was done after the device was bound to a + * driver. If the device hasn't bound to a driver, running things too + * soon would incorrectly pick up consumers that it shouldn't. + */ + if (dev->links.status =3D=3D DL_DEV_DRIVER_BOUND) { + fw_devlink_pickup_dangling_consumers(dev); + /* + * Some of dangling consumers could have been put previously in + * the deferred probe list due to the unavailability of their + * suppliers. Those consumers have been picked up and some of + * their suppliers links have been updated. Time to re-try their + * probe sequence. + */ + driver_deferred_probe_trigger(); + } + + put_device(dev); + fwnode_handle_put(fwnode); +} + static DEFINE_MUTEX(device_links_lock); DEFINE_STATIC_SRCU(device_links_srcu); =20 @@ -1312,16 +1385,8 @@ void device_links_driver_bound(struct device *dev) * child firmware node. */ if (dev->fwnode && dev->fwnode->dev =3D=3D dev) { - struct fwnode_handle *child; - fwnode_links_purge_suppliers(dev->fwnode); - - guard(mutex)(&fwnode_link_lock); - - fwnode_for_each_available_child_node(dev->fwnode, child) - __fw_devlink_pickup_dangling_consumers(child, - dev->fwnode); - __fw_devlink_link_to_consumers(dev); + fw_devlink_pickup_dangling_consumers(dev); } device_remove_file(dev, &dev_attr_waiting_for_supplier); =20 diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c index c1c5686fc7b1..4e45f3414c2c 100644 --- a/drivers/of/overlay.c +++ b/drivers/of/overlay.c @@ -185,6 +185,15 @@ static int overlay_notify(struct overlay_changeset *ov= cs, return 0; } =20 +static void overlay_fw_devlink_refresh(struct overlay_changeset *ovcs) +{ + for (int i =3D 0; i < ovcs->count; i++) { + struct device_node *np =3D ovcs->fragments[i].target; + + fw_devlink_refresh_fwnode(of_fwnode_handle(np)); + } +} + /* * The values of properties in the "/__symbols__" node are paths in * the ovcs->overlay_root. When duplicating the properties, the paths @@ -951,6 +960,12 @@ static int of_overlay_apply(struct overlay_changeset *= ovcs, pr_err("overlay apply changeset entry notify error %d\n", ret); /* notify failure is not fatal, continue */ =20 + /* + * Needs to happen after changeset notify to give the listeners a chance + * to finish creating all the devices they need to create. + */ + overlay_fw_devlink_refresh(ovcs); + ret_tmp =3D overlay_notify(ovcs, OF_OVERLAY_POST_APPLY); if (ret_tmp) if (!ret) diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h index 097be89487bf..a921ca2fe940 100644 --- a/include/linux/fwnode.h +++ b/include/linux/fwnode.h @@ -228,6 +228,7 @@ int fwnode_link_add(struct fwnode_handle *con, struct f= wnode_handle *sup, u8 flags); void fwnode_links_purge(struct fwnode_handle *fwnode); void fw_devlink_purge_absent_suppliers(struct fwnode_handle *fwnode); +void fw_devlink_refresh_fwnode(struct fwnode_handle *fwnode); bool fw_devlink_is_strict(void); =20 #endif --=20 2.53.0 From nobody Fri Apr 3 01:28:28 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 726A93E315D; Wed, 25 Mar 2026 14:37:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449435; cv=none; b=m5tV6Scy1FA2tAA28gbfXRF7h6DfRfU9gue7jUzsQRpTOPhuwsD7+DGqTQboDthtF/a7e6TZyTztUZT8rW9LzWZN69PoVPUV9pUNi3oRYaG4bProqN+n8aB2QB1zVjuRcfrKKxd4QwUQ+pWng1SWXuGoBflDKIIDG68oD7Ug1bo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449435; c=relaxed/simple; bh=+4o3wPaMwan2MCfaea1vEsPxc09waB5Zo6tFRpwWVm0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D84lTjDNnGoY3GBqIf42xoGK5ejsOa8NadZ9ebIEs+IsJdPxZHTnnSEuxrh4roAKCoSBsD6KJu8qtz9E+UllOGxlOnBMwiQv3mm/Q9PW6ARgNKSqIrikZaahnZ9ZsiclBwd9EjHko53la6g6JrP4owGig5GVRf9OEZzGrtYFC0s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=FFGPN5nV; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="FFGPN5nV" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 383C34E42742; Wed, 25 Mar 2026 14:37:11 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 0EDB9601FA; Wed, 25 Mar 2026 14:37:11 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id CEB51104513C1; Wed, 25 Mar 2026 15:36:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449428; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=U0+APqYNxOm5BrIt/rkc9+bR4FWNwWtem6DAlTFw1es=; b=FFGPN5nVEzUE/C8alp2Y3x0pOsDaiW6bIsM+7p+PbLkuBxxT59XGJBEl1roxot4uvVgXbI //DxIJt+WmgFpZ4EsD/3v3lPNOLVccZCMXTL6r+ZmIkKoMPUl3I8kA1NaIcqljxG1r3woQ qTwJYgCC6MKUTfwMb2oSfh1kIcsQM+O83g2M8ekeEovZ+vrMG7dQ02YJANblxD/hbd6P17 trRjtx6mltWXztorri0PKGTWdZqxadhZl9ZEZGDE1RcgmLW+Yqh/J+w+Tqyd8I4feKYyqO 3vfvwRvCxE+SB7UgA8ugLwLjeuMJlndhTFZ/nTTSYYWmj2g3DaJVKWsQukj48w== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni , Saravana Kannan Subject: [PATCH v6 03/27] driver core: Avoid warning when removing a device while its supplier is unbinding Date: Wed, 25 Mar 2026 15:35:30 +0100 Message-ID: <20260325143555.451852-4-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" During driver removal, the following warning can appear: WARNING: CPU: 1 PID: 139 at drivers/base/core.c:1497 __device_links_no_d= river+0xcc/0xfc ... Call trace: __device_links_no_driver+0xcc/0xfc (P) device_links_driver_cleanup+0xa8/0xf0 device_release_driver_internal+0x208/0x23c device_links_unbind_consumers+0xe0/0x108 device_release_driver_internal+0xec/0x23c device_links_unbind_consumers+0xe0/0x108 device_release_driver_internal+0xec/0x23c device_links_unbind_consumers+0xe0/0x108 device_release_driver_internal+0xec/0x23c driver_detach+0xa0/0x12c bus_remove_driver+0x6c/0xbc driver_unregister+0x30/0x60 pci_unregister_driver+0x20/0x9c lan966x_pci_driver_exit+0x18/0xa90 [lan966x_pci] This warning is triggered when a consumer is removed because the links status of its supplier is not DL_DEV_DRIVER_BOUND and the link flag DL_FLAG_SYNC_STATE_ONLY is not set. The topology in terms of consumers/suppliers used was the following (consumer ---> supplier): i2c -----------> OIC ----> PCI device | ^ | | +---> pinctrl ---+ When the PCI device is removed, the OIC (interrupt controller) has to be removed. In order to remove the OIC, pinctrl and i2c need to be removed and to remove pinctrl, i2c need to be removed. The removal order is: 1) i2c 2) pinctrl 3) OIC 4) PCI device In details, the removal sequence is the following (with 0000:01:00.0 the PCI device): driver_detach: call device_release_driver_internal(0000:01:00.0)... device_links_busy(0000:01:00.0): links->status =3D DL_DEV_UNBINDING device_links_unbind_consumers(0000:01:00.0): 0000:01:00.0--oic link->status =3D DL_STATE_SUPPLIER_UNBIND call device_release_driver_internal(oic)... device_links_busy(oic): links->status =3D DL_DEV_UNBINDING device_links_unbind_consumers(oic): oic--pinctrl link->status =3D DL_STATE_SUPPLIER_UNBIND call device_release_driver_internal(pinctrl)... device_links_busy(pinctrl): links->status =3D DL_DEV_UNBINDING device_links_unbind_consumers(pinctrl): pinctrl--i2c link->status =3D DL_STATE_SUPPLIER_UNBIND call device_release_driver_internal(i2c)... device_links_busy(i2c): links->status =3D DL_DEV_UNBINDING __device_links_no_driver(i2c)... pinctrl--i2c link->status is DL_STATE_SUPPLIER_UNBIND oic--i2c link->status is DL_STATE_ACTIVE oic--i2c link->supplier->links.status is DL_DEV_UNBINDING The warning is triggered by the i2c removal because the OIC (supplier) links status is not DL_DEV_DRIVER_BOUND. Its links status is indeed set to DL_DEV_UNBINDING. It is perfectly legit to have the links status set to DL_DEV_UNBINDING in that case. Indeed we had started to unbind the OIC which triggered the consumer unbinding and didn't finish yet when the i2c is unbound. Avoid the warning when the supplier links status is set to DL_DEV_UNBINDING and thus support this removal sequence without any warnings. Signed-off-by: Herve Codina Reviewed-by: Rafael J. Wysocki Reviewed-by: Saravana Kannan --- drivers/base/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 019fda47d089..cc6b84f8cdfb 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -1500,7 +1500,8 @@ static void __device_links_no_driver(struct device *d= ev) if (link->supplier->links.status =3D=3D DL_DEV_DRIVER_BOUND) { WRITE_ONCE(link->status, DL_STATE_AVAILABLE); } else { - WARN_ON(!device_link_test(link, DL_FLAG_SYNC_STATE_ONLY)); + WARN_ON(link->supplier->links.status !=3D DL_DEV_UNBINDING && + !device_link_test(link, DL_FLAG_SYNC_STATE_ONLY)); WRITE_ONCE(link->status, DL_STATE_DORMANT); } } --=20 2.53.0 From nobody Fri Apr 3 01:28:28 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59E3B3E5ECF; Wed, 25 Mar 2026 14:37:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449454; cv=none; b=fWnErL7Qk9nG3J5er9DBxCik9BXHNMvkm2KefzCkLvSLLff75Hk2mnlkyHmDACqqofbdgnveEehIWMzmonbZg4MgKED5rCBZIVRqPwqZ58u6BvoalU9EfG+Df6AIORXtl62NbzSetgGU33vppKDuBblvub+T8E3uXEYkRjGCAJg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449454; c=relaxed/simple; bh=pNJgxM3Q6VrVRA/ImgG+f9Z478N2c1kQ4rp0wHmYr48=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RtxOXqVr5mbbjA6G7d8lOhXLombwbCdeBEue3+KQw/8n4hJ4jXrXqf9cIHBFKiJIvYbDpYywlTGzsJu1tJI7bDweRa50NniUuxYuQN0JpJd7C1XTd22QK2yKMuE7YqRijvW5kbK466aZEbIGwc++Mwe7qzjo7U0Z1OJdCCwqzgw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=OkUF+xwg; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="OkUF+xwg" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id DE424C580B1; Wed, 25 Mar 2026 14:37:58 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 2268F601E2; Wed, 25 Mar 2026 14:37:31 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 2782410451411; Wed, 25 Mar 2026 15:37:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449447; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=giDCWLXbUuWTQUHzm6UggcAb1bsu7moyMro/sWeCGf0=; b=OkUF+xwg+KzGLtZZeuTeipRi19HlS9OGToxlwsayITguVCVP9o7jIkr8zer4EEl4/Y/F52 Sr944Fdof3BVGUwEF/QP6h2Qt/of+WzWQbnQAZ6GtAtA8kf1AMo1C8BtcP9x9laPobQr2P rNxGVR3Am3j7BDfHzvgH342IB7vMqZpqvqyBqmrWzpaH1XUAiYxHzXccTL5JvybqsBBc0K TpBRFz144tF6lsrURgh3ewd/XGFxHlLgdA7GJf4xgQHowGCgGIXycrXRj91GABY5pfw510 1eBLxya9Lb4KeWwyyvjszvRu49BFZL9eG52jchJYMRA5c8oRsjocvPl6/HAKwg== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 04/27] bus: simple-pm-bus: Remove child devices when the bus is unbound Date: Wed, 25 Mar 2026 15:35:31 +0100 Message-ID: <20260325143555.451852-5-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" During its probe, the simple-pm-bus driver (simple-pm-bus compatible variant) populates its child devices but it doesn't touch them during its removal. This leads to bus child devices present and bound to drivers whereas the bus itself is unbound. Be consistent and remove child devices when the bus itself is unbound. Signed-off-by: Herve Codina --- drivers/bus/simple-pm-bus.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/bus/simple-pm-bus.c b/drivers/bus/simple-pm-bus.c index 3f00d953fb9a..9ebd588ea24f 100644 --- a/drivers/bus/simple-pm-bus.c +++ b/drivers/bus/simple-pm-bus.c @@ -83,6 +83,9 @@ static void simple_pm_bus_remove(struct platform_device *= pdev) =20 dev_dbg(&pdev->dev, "%s\n", __func__); =20 + if (pdev->dev.of_node) + of_platform_depopulate(&pdev->dev); + pm_runtime_disable(&pdev->dev); } =20 --=20 2.53.0 From nobody Fri Apr 3 01:28:28 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFD8F3E4C9B; Wed, 25 Mar 2026 14:37:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449475; cv=none; b=Cq0vZnK6FSFWJx0MUVZmZbI+R3x3ob9c38macHfPpeqlAg4Yutf013QxLXVYPaK1BfxKtSGQBK+pWPfaJxSvQ82VpePZzcWmb8mAMT0fnBOpP+SVcRa67Ml74rnFB9E+z3pQrLLJPzNRkvBZGh8MT2COp/tLmAwHn5zew8g/y/g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449475; c=relaxed/simple; bh=9WU6CnPwYf69YjJfs3q6iXeTR9MJC3N/+SMlykGezC0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T5uJrxhLTiH0hgNLlQg43CkuOhyuJy05Kax2CPmqSlV/uBtaeDL4BppEAS3LR3CHH+BidUYZW5NFaliPinx6EinNZlt2dWfmQmaM3sNXH4/K18V5mQ+aIbkU8am7/I5Oz/nFSIPkrwVqqXEH90AmCEi5xR801fiTF5V9u5dY6us= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=m62ahB0C; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="m62ahB0C" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 671344E427EF; Wed, 25 Mar 2026 14:37:49 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 36F74601FA; Wed, 25 Mar 2026 14:37:49 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id AE6F210451416; Wed, 25 Mar 2026 15:37:28 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449465; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=FQEG+gi+2Owsvm5H07y7paCS6UXV8c60jAbpve0hKl8=; b=m62ahB0CVbVSXyRzaj89A96TBTVUsl3QaPdwwSz4hjzQmkXkz5moBnHKLWQ3c5d9uBM2RC s1jU5vtd69pR9AV4zKvymEGToEMVnY1l9kYhR62DwZXGqqPwk06uwzNsCZK1kW3ypmbRCF rmoQVBgfMVdgNyKFWE1Qa5aGIzLVae1Ik50Cf6ihtlYUbrFz+ls6RMH3R6FGoiaX/orx2V wzLs7iRiMz9hudgG/Rw8kDC9/SyNC26JP9GiJakS1Yw+k2WWJvweJRTrpvT4vU85jLq0e8 QPyqwd0wiYgVNPuMQcX36ASXO+BoHi97BRRZkQadmG0Fol8WK+sQ/gjYj6ksoQ== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 05/27] bus: simple-pm-bus: Populate child nodes at probe Date: Wed, 25 Mar 2026 15:35:32 +0100 Message-ID: <20260325143555.451852-6-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The simple-pm-bus driver handles several simple busses. When it is used with busses other than a compatible "simple-pm-bus", it doesn't populate its child devices during its probe. This confuses fw_devlink and results in wrong or missing devlinks. Once a driver is bound to a device and the probe() has been called, device_links_driver_bound() is called. This function performs operation based on the following assumption: If a child firmware node of the bound device is not added as a device, it will never be added. Among operations done on fw_devlinks of those "never be added" devices, device_links_driver_bound() changes their supplier. With devices attached to a simple-bus compatible device, this change leads to wrong devlinks where supplier of devices points to the device parent (i.e. simple-bus compatible device) instead of the device itself (i.e. simple-bus child). When the device attached to the simple-bus is removed, because devlinks are not correct, its consumers are not removed first. In order to have correct devlinks created, make the simple-pm-bus driver compliant with the devlink assumption and create its child devices during its probe. Signed-off-by: Herve Codina --- drivers/bus/simple-pm-bus.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/bus/simple-pm-bus.c b/drivers/bus/simple-pm-bus.c index 9ebd588ea24f..30628958c923 100644 --- a/drivers/bus/simple-pm-bus.c +++ b/drivers/bus/simple-pm-bus.c @@ -42,14 +42,15 @@ static int simple_pm_bus_probe(struct platform_device *= pdev) match =3D of_match_device(dev->driver->of_match_table, dev); /* * These are transparent bus devices (not simple-pm-bus matches) that - * have their child nodes populated automatically. So, don't need to - * do anything more. We only match with the device if this driver is - * the most specific match because we don't want to incorrectly bind to - * a device that has a more specific driver. + * need to have their child nodes populated. So, don't need to do + * anything more except populate child nodes during this probe(). We + * only match with the device if this driver is the most specific match + * because we don't want to incorrectly bind to a device that has a more + * specific driver. */ if (match && match->data) { if (of_property_match_string(np, "compatible", match->compatible) =3D=3D= 0) - return 0; + goto populate; else return -ENODEV; } @@ -64,13 +65,14 @@ static int simple_pm_bus_probe(struct platform_device *= pdev) =20 dev_set_drvdata(&pdev->dev, bus); =20 - dev_dbg(&pdev->dev, "%s\n", __func__); - pm_runtime_enable(&pdev->dev); =20 +populate: if (np) of_platform_populate(np, NULL, lookup, &pdev->dev); =20 + dev_dbg(&pdev->dev, "%s\n", __func__); + return 0; } =20 @@ -78,7 +80,7 @@ static void simple_pm_bus_remove(struct platform_device *= pdev) { const void *data =3D of_device_get_match_data(&pdev->dev); =20 - if (pdev->driver_override || data) + if (pdev->driver_override) return; =20 dev_dbg(&pdev->dev, "%s\n", __func__); @@ -86,7 +88,8 @@ static void simple_pm_bus_remove(struct platform_device *= pdev) if (pdev->dev.of_node) of_platform_depopulate(&pdev->dev); =20 - pm_runtime_disable(&pdev->dev); + if (!data) + pm_runtime_disable(&pdev->dev); } =20 static int simple_pm_bus_runtime_suspend(struct device *dev) --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E9763E274F; Wed, 25 Mar 2026 14:38:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449491; cv=none; b=DceNmxqguG0iXN/CsMte5IVHj/96bRalinFPfqhzy1PM8uTol6RDimn3EDaCSzppHNdm/jxX5kX0Lpm8tsU03ZQzirmguHkv1+xLRht4RBubKyx413nHCHkxVYlsOXZVzTTOfPvekv1F4OgQppab6kGXN3MFyfDtd9XbnbDjAx8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449491; c=relaxed/simple; bh=UwxR+Ul1StSjhduN3EHd6qicY3DfH1rq6TnJJFzr9hg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FYrfSqIPmxFjlwvQbps3OBqXbtX7gH+DZnEfqwbkleo6zGUQqCENA4Oltz6Iq/Vt9cFJUAbhKjnmYN1SwVJF5lNFqd1Yf1IRBKr5HSmF6eUmSHnq4KoXgW+5a7FJk2hFJDv0rVusWaAdqP9CYba6GDKQFlMVkI8th6a/zh8LrFE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=jicdb06/; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="jicdb06/" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id F329E4E427EE; Wed, 25 Mar 2026 14:38:08 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id C8D2C601FA; Wed, 25 Mar 2026 14:38:08 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id EBEA2104513C1; Wed, 25 Mar 2026 15:37:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449485; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=g0YAlT/AYXN3edr5F8ErpyNXz9CtdBrFkNJZ/XQhiZk=; b=jicdb06/2xgJ6J3XEarSvubHse460HG9+RF4RFaCYJgtJ9JvDK/b4HvDl5XoWPxX1eDiuG 42s84UbAdMK71zcYCFydpQ0XvB6tTuu8FrAdBcGtW1p4bz5y+dXJs/iHDiv0tckf+aCyxe fx3+7dS2VcyXPN4AcCFSQo22UGrK0ntXYRoa6iIzlLL1r1GGgZ9sE+dE66v+j8AYl+CtlH xx6tdjroR1GRgaCpy4aoYVk4JtuMp/v+R2Cwv3KPr0XioXgTSBNRuSCHxTNc/pkFol7G1w inzAxiNuXSR72KO7J6w5gr5CnLkd28BXSakMjDSIwbpnirJHH1PcOwNcDJqJjw== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 06/27] driver core: fw_devlink: Introduce fw_devlink_set_device() Date: Wed, 25 Mar 2026 15:35:33 +0100 Message-ID: <20260325143555.451852-7-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" Setting fwnode->dev is specific to fw_devlink. In order to avoid having a direct 'fwnode->dev =3D dev;' in several place in the kernel, introduce fw_devlink_set_device() helper to perform this operation. Having this helper allows to hide the fwnode devlink related stuff behind the helper. Signed-off-by: Herve Codina Reviewed-by: Andy Shevchenko Reviewed-by: Ulf Hansson Reviewed-by: Charles Keepax --- include/linux/fwnode.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h index a921ca2fe940..a1345e274125 100644 --- a/include/linux/fwnode.h +++ b/include/linux/fwnode.h @@ -231,4 +231,10 @@ void fw_devlink_purge_absent_suppliers(struct fwnode_h= andle *fwnode); void fw_devlink_refresh_fwnode(struct fwnode_handle *fwnode); bool fw_devlink_is_strict(void); =20 +static inline void fw_devlink_set_device(struct fwnode_handle *fwnode, + struct device *dev) +{ + fwnode->dev =3D dev; +} + #endif --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70EE83E3C50; Wed, 25 Mar 2026 14:38:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449505; cv=none; b=Xi0I1CYZbjoLIdSf4/9IZ+WtmNvN0we3z33SE35JAlW0HgzqWrr/e/FI/hT8Xethr/AIYMMnWmexnwfaNrgikUnmrQB2x14wyrTsZDXvdNzsKNRULMrRRbmn9X/w+1qVlDdGQM7xIwNq3dh02lV0fIXgo1CMaXGFjjcbSpkrg74= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449505; c=relaxed/simple; bh=JEQ8/7M9PhVTzEZ12saJtFuyT84/Zc+tx/AtLOTAoVU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nxPAy9nfT1v5sw86e/pexdQoGlWOaYH8w3JlMuKmw5AcI+EjohB3eGndOgzd2FMPJENaNmcjK02QGyiRtsX8qrrnaWV5vd99rMmsyMifr2aZBM6ghxzeb5fpLQWdNpTWFaxXkA2rfNFLn0H/8wIsoEGTXAWSuIMIggvEiPGpHXo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=vJqe1aw1; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="vJqe1aw1" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 331761A2EFA; Wed, 25 Mar 2026 14:38:23 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 0AED4601E2; Wed, 25 Mar 2026 14:38:23 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 8BD2410451411; Wed, 25 Mar 2026 15:38:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449500; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=JDz+aPPH5UncqNqbzjQgNuwFV5IwAdORaJ+M18m6sNY=; b=vJqe1aw1jCsnpl5DxTwhanGZ3EHi4wDhA7cuXyoGW5L6LBdPlBp7DwfYSfQ3wNYqu740wE w8efB3S0W+gc6JwlIhLjuJPQrXeDWo2oRfLsfwHLVlOaPfEFhOSbm8i/hUVrb0d2PvtlUv rXrvVmIEmA3j+nWJoUkhFqMvKekJhIIbBRvfu8VTeAgp6agK6YHdfEU10i/3LlsU6c9mSn 7ef+H8t+wVKlO7z5AM1EWA/AbpslJmcQKaph6BziMFaUSOwzj+B/ERpjxhWdi+R0Y6o6IR wU5SCwRAFiiO0uXQsLbYPUFawSx50ldBMb55yjKZkK9Zl8cTLbPy8NuTbvUmdQ== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 07/27] drivers: core: Use fw_devlink_set_device() Date: Wed, 25 Mar 2026 15:35:34 +0100 Message-ID: <20260325143555.451852-8-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The code set directly fwnode->dev field. Use the dedicated fw_devlink_set_device() helper to perform this operation. Signed-off-by: Herve Codina Reviewed-by: Andy Shevchenko Reviewed-by: Ulf Hansson --- drivers/base/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index cc6b84f8cdfb..850c0774eb82 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -3748,7 +3748,7 @@ int device_add(struct device *dev) * device and the driver sync_state callback is called for this device. */ if (dev->fwnode && !dev->fwnode->dev) { - dev->fwnode->dev =3D dev; + fw_devlink_set_device(dev->fwnode, dev); fw_devlink_link_device(dev); } =20 @@ -3908,7 +3908,7 @@ void device_del(struct device *dev) device_unlock(dev); =20 if (dev->fwnode && dev->fwnode->dev =3D=3D dev) - dev->fwnode->dev =3D NULL; + fw_devlink_set_device(dev->fwnode, NULL); =20 /* Notify clients of device removal. This call must come * before dpm_sysfs_remove(). --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 005563DEAF6; Wed, 25 Mar 2026 14:38:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449521; cv=none; b=grcrbRoosbgkmIiCh2j4mpgXM+SUz6AsoHkqR9SLbi5MtMAX3fr6sTgNkuzayw09xfDLnYYLlz+OEUzr18TwJMhVz6MMUdHvZubySClj0ctD19xukfoKtdAT/yFwI5wN9xUnNkFaMk41hSvt1UUWWRgLky/GLt+LdVDsjK0QdMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449521; c=relaxed/simple; bh=jF8SXTLGvqCNovYdgFo0rGZiHniOeJO7pck4Oa8oV7Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MCN4S7NBXDqIBlZGo/TkMan8MhUsu7A8cIl3YD8LdRwnZHYZURBihJaDB7sSUyXp+yWd9ug+wDwn0hFPTbbA5CCikSxx7o6QlCByYmVG/cYOL95zBnUoBKGA9BS3CBJpEChEAUFURkoV2N4ndSUgtlfLIMvtSSFIQKqzXltvJns= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=AfM5bk8N; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="AfM5bk8N" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id AF52DC580B1; Wed, 25 Mar 2026 14:39:06 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id E6ADD601E2; Wed, 25 Mar 2026 14:38:38 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 21321104513C1; Wed, 25 Mar 2026 15:38:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449516; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=D/CSnmjJJB4LIOz4jz2KWQa2CCN3pJHbREkQ4BSKJ24=; b=AfM5bk8NnRqVHiS5VlAVgLLyWXnd5DmgwHPjOV4U0BMF5JeD2EIvy58J7xxJUd0X7nbffu /KHwYNZ1SDrpbKJ7CcaE0PqY5nP9gWstdPIKSuy40mKfgBx9Acddn03C7/QAtrPHfVqY5R K4LbVR7l8k0CEWhihhmxITYhLQIAtScn2AaY+G1FpfM66ehJImnW8F7f1sd11xSLpQMIEA 3DcLS1+AUrQ/qRTo70YOF+H/du2APgl4ERTYwk1fj+0rSu2vqsXJYRFJYKnZ5FWPNpdrrg q+M9sMj1Q+SMhEGn9iX4FkUaLFVMIcW54IG2c6jmcQdP1X4+THTPG1wtTK0cDA== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 08/27] pinctrl: cs42l43: Use fw_devlink_set_device() Date: Wed, 25 Mar 2026 15:35:35 +0100 Message-ID: <20260325143555.451852-9-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The code set directly fwnode->dev field. Use the dedicated fw_devlink_set_device() helper to perform this operation. Signed-off-by: Herve Codina Reviewed-by: Andy Shevchenko Reviewed-by: Charles Keepax Acked-by: Linus Walleij --- drivers/pinctrl/cirrus/pinctrl-cs42l43.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/cirrus/pinctrl-cs42l43.c b/drivers/pinctrl/cir= rus/pinctrl-cs42l43.c index a8f82104a384..a3dd8da15919 100644 --- a/drivers/pinctrl/cirrus/pinctrl-cs42l43.c +++ b/drivers/pinctrl/cirrus/pinctrl-cs42l43.c @@ -579,7 +579,7 @@ static int cs42l43_pin_probe(struct platform_device *pd= ev) return ret; } if (!child->dev) - child->dev =3D priv->dev; + fw_devlink_set_device(child, priv->dev); fwnode =3D child; } } --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 585743E2770; Wed, 25 Mar 2026 14:38:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449539; cv=none; b=O9bEOMyOBk97hQ68dUSIBLW8ojJkdIQ6Zc8aBB/aqpwoadb02HDSv3b8QvxFvHaAYlDFsEy5pNGC7nkMAIxg5Heh97TjAC498sHh7Ek5+5t3+im/UNkVQFuKUQzPQhT4wjotVdkHhNLKyhEk5TnNM8M4hjf0i0IywlOCG0K+JEU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449539; c=relaxed/simple; bh=ee9REj7j8m9PM2lqEpC1OC+EN41zbbPVh2nrC8HVXMA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RuEIgtepdNbMumF4DFdC0aT0uLOiSsGKmeqFLrVQVMudzxPL4vmcDedu+W/QMHboCAb3avZYURSYJveHFLPR4Uhr630ZCdF1rWcZJTzqLy71rpxfSHVhQ708CTzFfotObFYS/4zcuIYsgmny0gdylHS0/s2NsdbJqo+pZEmvRY4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=x80zm25g; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="x80zm25g" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 1CC9E1A2EFA; Wed, 25 Mar 2026 14:38:57 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id E3C38601E2; Wed, 25 Mar 2026 14:38:56 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 1776D10451A72; Wed, 25 Mar 2026 15:38:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449534; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=N/KlsJSkwrhBxFpr7TNyZYHTx44wz3bJOca1ZQDNVw4=; b=x80zm25gtFYbmJwGUIbPz/8KgHHVQuyO79J/eLYSODRWbbQ2rFBP1GxEOLrsp1nkJWCzZk QfryeXxmHyplOcu0sOGW4fLIyqg7u64UTJ6kzLMFwWmVThTjRz5QxUhtpoK6C08/pJEyb2 WxQwzbW2zrK1vY4aeKFl4/GaQel9i/fEpoSW+4LV0QdWuiBgv8orRcuZh/QL0qxRoDALrM zxAkxtu68SXXBbe1w5bGqZCclUNHPo0Z3gsKlx03CZF+rl36+RaFFj2bB5XUuX5qGVenWG cJsm9eyogR+9FApKbG6wfykYIFsrkEM+3kamgYKQQ7eeVKMw9OASi9G26X5XJw== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 09/27] cxl/test: Use device_set_node() Date: Wed, 25 Mar 2026 15:35:36 +0100 Message-ID: <20260325143555.451852-10-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The code set directly dev->fwnode. Use the dedicated helper to perform this operation. Signed-off-by: Herve Codina Reviewed-by: Dave Jiang Reviewed-by: Jonathan Cameron --- tools/testing/cxl/test/cxl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/cxl/test/cxl.c b/tools/testing/cxl/test/cxl.c index 81e2aef3627a..3d9107b2661c 100644 --- a/tools/testing/cxl/test/cxl.c +++ b/tools/testing/cxl/test/cxl.c @@ -1136,7 +1136,7 @@ static void mock_companion(struct acpi_device *adev, = struct device *dev) { device_initialize(&adev->dev); fwnode_init(&adev->fwnode, NULL); - dev->fwnode =3D &adev->fwnode; + device_set_node(dev, &adev->fwnode); adev->fwnode.dev =3D dev; } =20 --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1BDC93E1D18; Wed, 25 Mar 2026 14:39:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449558; cv=none; b=IZfy866fPSlDGdxpPyHwDZkkArh0mgJWVELP6KXu2SGzPphtS/puh/QzVZ6i8hnwYk4cmvbZNEiMAY9ZCxFp+WUwC4Au7ePv77LkfVQAIw6KdhXmKNThgFMnpPsLjO56cMsPa2llUzXzQgoHjBohOsTo0Q9F610ZNyH5ooopROE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449558; c=relaxed/simple; bh=Z3oC9/POKhwfdjTtmsHd2pg+zwQZW+us7WLdQjetqpA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F/o2ypBndRBDqzoRyKPJ7JCcuMkezkoImHHc6y/uwBeCvZuqMgYVnHt2yrJEJuI74OV1TEowPEGW+ivFJy0eWLqH+87Dcp0CjOpy4MMQ4uZxhLoBq5Cj3UyH5a/NJpquOoRcfiiLIeJ7qcAaD2jvj1RBcGN4j24LSlsZosQuX7Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=T3jf2TqO; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="T3jf2TqO" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id C20BAC580B1; Wed, 25 Mar 2026 14:39:43 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 06134601E2; Wed, 25 Mar 2026 14:39:16 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id A960110451A6D; Wed, 25 Mar 2026 15:38:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449552; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=RT26/2fKPjyIS0Owkqhsx5QIpyatFck465D5WIi6VSg=; b=T3jf2TqOasAOXpU96H73zN2CUMqpwrvi6agIAxQoVJuF0iKAmOz8Z4VcbtZnDVSfCutyGD A5yKXzCCHCD5I+ffCwliM0aQ7ongXLc0GmzN540XDcsVSe766PQ6Cj0ANHM+THQXXElN6b BQ7VQ+3uTi9r6/hqALncR0CgxxoaI4BGaqeCeXWSYTxb1uQ1Ab8RR8CecEti0BV6MIHGFR 1ZmDAdnbH8dhYRk6UM9PWWzRwWkfucFzblQbVrj6XqxLaS2gE3/PNv0ymXas72hUHTZtDA njJ/9g0OpYxUZoePD/w5tdTWtQf26ZS3DGB5oIpBEwYxcEQXef7CcPPd/3JdOg== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 10/27] cxl/test: Use fw_devlink_set_device() Date: Wed, 25 Mar 2026 15:35:37 +0100 Message-ID: <20260325143555.451852-11-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The code set directly fwnode.dev field. Use the dedicated fw_devlink_set_device() helper to perform this operation. Signed-off-by: Herve Codina Reviewed-by: Dave Jiang Reviewed-by: Jonathan Cameron --- tools/testing/cxl/test/cxl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/cxl/test/cxl.c b/tools/testing/cxl/test/cxl.c index 3d9107b2661c..7f232a869389 100644 --- a/tools/testing/cxl/test/cxl.c +++ b/tools/testing/cxl/test/cxl.c @@ -1137,7 +1137,7 @@ static void mock_companion(struct acpi_device *adev, = struct device *dev) device_initialize(&adev->dev); fwnode_init(&adev->fwnode, NULL); device_set_node(dev, &adev->fwnode); - adev->fwnode.dev =3D dev; + fw_devlink_set_device(&adev->fwnode, dev); } =20 #ifndef SZ_64G --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA4ED3E1D1B; Wed, 25 Mar 2026 14:39:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449580; cv=none; b=IxxxYmViaR9ZQ1Qi9IIFD3j/lFdrT1dottJS2NqrjKW/d/l8H3tCsF1seL33v9s+NC0UCbTHOnWcFd7d4tUli1+sm72f49yMNqfAOxz6MJSqQfo9G2Lhct9HP2pNT9TEHUiaDFVEIv5LqVOmgMYaQiKO5ExSk86e8xjBql1LFh0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449580; c=relaxed/simple; bh=94S/auSQnlqiMO0MBY7GNMga8poixO0zkKh7Tijvh1Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J0rKZ8Cznz6iJPtdgqVFrsTIAiqEK91te3ffreetnEKcjCmdGNrHc3XNeDbQoD9Xhxx8V4waPyIoZIaJsgaNcqDxoZZ5w1hJ3YWruASQpXObTfUNbcjdmInRQQg4VtEJPp4tP3ebzopDNLiiE2nKlzi14rik6QPGmr7Zhg5wlqg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=e/VV90L+; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="e/VV90L+" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 0A959C580B1; Wed, 25 Mar 2026 14:40:04 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 3F8C5601FA; Wed, 25 Mar 2026 14:39:36 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id BA92D104513C1; Wed, 25 Mar 2026 15:39:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449572; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=3kiBN+7JDb7znVHm1oVUABFZVov2dDFkX+PB5Hb4f2s=; b=e/VV90L+4uWL5vf7WKRW0qCeXGe7sqPBwAXsY4GRdv7x1M01CGG6fzNTYU7U1SRz0zD2qg zogXx/vGpRmSqu4Q9v20JRmBSyuMgCTYJ36p9hFRMzNqzyJX10Rr4eS3KxApjdUoHv4t9N 2nG08gOnR8/kb2eD0Zhq9qNe/RAzbubNAf3PdLBG+cz0BWPiLKTegszRxyPdLHA2S6N0Vk IRYK6ILz7plEbPYQY9dyUjiXCQNMVEwclXbn3LMLjQiHnRRfRK+QfLT/l5k41zvCx3m4IU ojkHWy1wghexQB3J7ChVPvfesmPS5pU+ZAJH1ycjJt0sQ4ncCBnZ8PPFA/OTXA== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 11/27] PCI: of: Use fw_devlink_set_device() Date: Wed, 25 Mar 2026 15:35:38 +0100 Message-ID: <20260325143555.451852-12-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The code set directly fwnode.dev field. Use the dedicated fw_devlink_set_device() helper to perform this operation. Signed-off-by: Herve Codina Reviewed-by: Andy Shevchenko Acked-by: Bjorn Helgaas --- drivers/pci/of.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/of.c b/drivers/pci/of.c index 9f8eb5df279e..5fb7f501fd35 100644 --- a/drivers/pci/of.c +++ b/drivers/pci/of.c @@ -803,7 +803,7 @@ void of_pci_make_host_bridge_node(struct pci_host_bridg= e *bridge) * bus. Avoid any new device creation. */ of_node_set_flag(np, OF_POPULATED); - np->fwnode.dev =3D &bridge->dev; + fw_devlink_set_device(&np->fwnode, &bridge->dev); fwnode_dev_initialized(&np->fwnode, true); =20 ret =3D of_changeset_apply(cset); --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8804B3E92AA; Wed, 25 Mar 2026 14:39:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449601; cv=none; b=g/jyk1CaWqSaei1dsfFRuIUMlzGXIs5xb52G6YlT3KBlx7RAJkciZgJDAsBbESjnRjPUPKJSDuBJmsl7kiJkq3UUUxuJPO4Dazi1Ed7TB/Qc4LBt6OoLj1lzbh2+e9Z3gnQwX9ETk5H7kCo846cWp7uv27WgjH64pMd5Z1H95qs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449601; c=relaxed/simple; bh=L23lGgbCNqkBwJpNpYsPxMg7r57kvKFqnA/eUe0ik7I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=h5o2TMJdxccrhPqLSC1BYDjr4MsV2NA+hJAZBaNJfUN0TmIyAkplLobe1qdH9ffWnWHWcKLvTVliZv5uDRel0r5bbp7MM13G0iAxS3p4XQ0qvBKmaYB9Fm1XRiv+UnzA3OyVDKMgF5y8xZIJ6Ux0tFfNH7LrowRY05Y3b8S2TCo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=2gt8oXAR; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="2gt8oXAR" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 89C291A2EFA; Wed, 25 Mar 2026 14:39:53 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 60DB3601E2; Wed, 25 Mar 2026 14:39:53 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 5FE0C10451A74; Wed, 25 Mar 2026 15:39:34 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449590; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=iMwFVtskD7lrHa/yvIrbdu/L2Of80knkDmIMEmyrkXU=; b=2gt8oXAR258GdJ4ulaRWWHTFbMH3N/SiTChjp6RkQnCNVIcJ+EnvdEb+P1Y/C4AfQcdBps o7aEnPIXSMsqTZmfbVYo0jo7VKQUxmFJe2e4W3Afh22teE4YJCcMPZRFdPDNahV14NM9rf esSYoi1yXAH2YRsdn+c4EpjIpbGNt99ryldZnJHUPb0DuFO/p74u4bj4fi0P1J1DSMXxDh R1CI9Tdm1mXsPdneDvIoRDf0+I04tBx3k8ZQ9o8j/AL9P6ghAqXsTJOe3AWnBOu/kAY+3k Hd78qxaDWxhnjYdWy4LMU9Jr6WPfYwTKdZ1u5eYhm1D1q0xi2W11ReQNQDDp9g== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 12/27] PCI: of: Set fwnode device of newly created PCI device nodes Date: Wed, 25 Mar 2026 15:35:39 +0100 Message-ID: <20260325143555.451852-13-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" Device-tree node can be created when CONFIG_PCI_DYNAMIC_OF_NODES. Those node are created and filled based on PCI core information but the fwnode device field is not set. When later an overlay is applied, this confuses fw_devlink. Indeed, without any device attached to the node, fw_devlink considers that this node will never become a device. When this node is pointed as a supplier, devlink looks at its ancestors in order to find a node with a device that could be used as the supplier. In the PCI use case, this leads to links that wrongly use the PCI root bridge device as the supplier instead of the expected PCI device. Setting the fwnode device to the device of the PCI device allows devlink to use this device as a supplier and so, correct links are created. Signed-off-by: Herve Codina Acked-by: Bjorn Helgaas --- drivers/pci/of.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/pci/of.c b/drivers/pci/of.c index 5fb7f501fd35..b694fcda16b1 100644 --- a/drivers/pci/of.c +++ b/drivers/pci/of.c @@ -709,6 +709,13 @@ void of_pci_make_dev_node(struct pci_dev *pdev) if (ret) goto out_free_node; =20 + /* + * Set the fwnode device in order to have fw_devlink creating links + * pointing to this PCI device instead of walking up to the PCI host + * bridge. + */ + fw_devlink_set_device(&np->fwnode, &pdev->dev); + ret =3D of_changeset_apply(cset); if (ret) goto out_free_node; --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 676A53DE43F; Wed, 25 Mar 2026 14:40:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449614; cv=none; b=Yf5V3Flo4nP0L3A1h2eG8+4kzG7cfcEFOvQX8GthGApydjHgR4JJ4/QKiYlph8st+TT5oG/6fKCGpBK3/gUvxlY8NRop2XpYYFx94Z4lwszlXQYIBHWJR8SQEu4etrJqFhJuS60EI4CAxkzjykfOrVrMoF1GTg8ZLjcPIgLTIRQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449614; c=relaxed/simple; bh=4h2yYuYVfm6Oq6yHMs3qtFJ1/EsJ3+lJviBvaZ2hC1s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L25C0Zt9jdmNNhNioneoUA/Go/EAp2PI93Hge+kic8aWQ+09W4i+x5hehTUkZ9Ec5xfjqFs0xmvjwg12/cYGnUnzs+h9zxKbrS5eMBSezE8vXCEQWHbeLDT1gbEgU3K+Xz4jvvIBUqWQJfjOxI0nQzCrENVIAnniStY4eM0HSm8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=MrK9dIcM; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="MrK9dIcM" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 0CA0DC580B1; Wed, 25 Mar 2026 14:40:39 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 439E0601E2; Wed, 25 Mar 2026 14:40:11 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 0FB7610451411; Wed, 25 Mar 2026 15:39:50 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449608; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=mvCVCaNxt5yWvSG+f0bAkdIRx8+iR7I3Ow45RsOxmKI=; b=MrK9dIcMrVe+4aMbBhoK26i9Myy9Bd30M/z/mLvQ5EbG2m6o9Cmv+XowQedso0iQ6bu4Mc 8R5AvdQurBVRcZxr4ogmaBzdiL+i2sRquAbr8x8/tsYtgIZDHTWoGMNjhgOvJyleRe9S5S HBiRuE92Eb+gADSZrfDFw/43cO2zuO4h79wJkelLVfb1mM7v7mXwBKiaPMKmpWv+xON9Nt hiLOXACUxLPoUbMk77U3hBM21cXykPj4GVit0F/fHea1FYnRi7GlUtcYersOVq5Y2wwFW4 G66y5Vyp4OxdMIOKkSaYmkVJ+5RNI6/JC367WikuDduX2NCCsqpPsH1lMWL8Hw== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 13/27] PCI: of: Remove fwnode_dev_initialized() call for a PCI root bridge node Date: Wed, 25 Mar 2026 15:35:40 +0100 Message-ID: <20260325143555.451852-14-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" During the instantiation of devices described by a device-tree overlay applied on a PCI device, devlink displays the following kind of debug messages instead of creating the expected links: 'Not linking xxxx - might never become dev' Without those expected links, the device removal order cannot be correct. Those debug traces are printed by fw_devlink_create_devlink(). In our use case, they are all printed because the supplier of the link has at least one of its ancestor with its fwnode flag FWNODE_FLAG_INITIALIZED set. The culprit ancestor is the PCI root bridge. The fwnode related to the PCI root bridge is created dynamically by the of_pci_make_host_bridge_node() function. During this creation fwnode_dev_initialized() is called which set the FWNODE_FLAG_INITIALIZED flag. Calling fwnode_dev_initialized() tells devlink that the device related to this node is handled out of the driver core. This is not correct in our case. Indeed the device related to this firmware node is handled using driver core mechanisms and is fully compliant devlink expectations. Simply remove the fwnode_dev_initialized() call. With that done, the devlink debug messages are no more displayed and links that were missing are correctly created. Signed-off-by: Herve Codina Acked-by: Bjorn Helgaas --- drivers/pci/of.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/pci/of.c b/drivers/pci/of.c index b694fcda16b1..0993257fe025 100644 --- a/drivers/pci/of.c +++ b/drivers/pci/of.c @@ -811,7 +811,6 @@ void of_pci_make_host_bridge_node(struct pci_host_bridg= e *bridge) */ of_node_set_flag(np, OF_POPULATED); fw_devlink_set_device(&np->fwnode, &bridge->dev); - fwnode_dev_initialized(&np->fwnode, true); =20 ret =3D of_changeset_apply(cset); if (ret) --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8442A3B8937; Wed, 25 Mar 2026 14:40:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449634; cv=none; b=FvC887BjyZXwMZfQuDHWrv7m5qHaL5nSr99QhXggJEW1RdBzpha6lI8/tq5z6m3lABPPS0MmaW1kfK0gfryxEUGFi20Xj5lq8aILgtfjCgFq+nvqW3VNuVyiyHoWQFpVO2PiW6WbjMa0sT2H/r8595t5cHBcOTqzLxnqbxk0x3Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449634; c=relaxed/simple; bh=a6PXb9i+X1sA4Or6Y0E0jaWxGpVSsTki8LaE/KXqa6Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=okOvsb0q0EnUZndP83TbTzMMCgAWygR1B0xkdLdKGcJCppULWYj2OtITNa+6Ms8+JANlLtutC0atxsBOY7lku+joqLUvp73KHmLVRsNlMXGbXk54rtQMPdiGVCaXoTy1+ixXMYts+Gp+qv2tI4qyDxB/uC/1advkOzTIZVjizYM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=eC6sXYvc; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="eC6sXYvc" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 14FDE4E427F0; Wed, 25 Mar 2026 14:40:30 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id D523A601E2; Wed, 25 Mar 2026 14:40:29 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 6D38B104513C1; Wed, 25 Mar 2026 15:40:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449627; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=d6GGxvV9pG6IJ1z9yk6YAUQbBDjX/c3f4oqsz6zyCeA=; b=eC6sXYvcy1sbxzBU10Zt2dInt8ndm88CV4Qo6Iw7KTXzO7C6jVI2r2RcACPtCyjtNJzAf+ 1sYrW+qMhbEmaKyasvX4jM6OUuNEEwB9hqDlwgQzz0EvoBbgCIG8/tBkpyq5WOzkW0QLK3 qpGmW0gIcXpOCJI+vSG77iQpUQTBoFbRy94ZpbE4rT/ZQYsN2HyCHHUxPbxWpPVlOJzS9B 2+FnoicqBodmnjgPqIHf7DzDeFDCymvRhSYqPnW/U4MEEUXX4Ax42bK51eF9k1lbSRvak+ jCJVLQuViHHgGo5saAxd074QWAAZfmf0eVAcIupuNvmAAB1dmExuwZN5TzYOCw== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 14/27] i2c: core: Introduce i2c_get_adapter_physdev() Date: Wed, 25 Mar 2026 15:35:41 +0100 Message-ID: <20260325143555.451852-15-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The physical device providing an I2C adapter is the device that calls i2c_add_adapter() or variants and i2c_del_adapter(). Most of the time this physical device is the parent of the adapter device. Exceptions exist with i2c muxes. Indeed, in case of i2c muxes, the parent of the mux adapter device points to the adapter device the mux is connected to instead of the physical of this mux adapter. Introduce i2c_get_adapter_physdev() and a new physdev field in the adapter structure in order to ease the adapter physical device retrieval. Signed-off-by: Herve Codina Reviewed-by: Andi Shyti --- drivers/i2c/i2c-core-base.c | 16 ++++++++++++++++ include/linux/i2c.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index 9c46147e3506..59214f0c84ec 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -1919,6 +1919,22 @@ struct i2c_adapter *i2c_get_adapter_by_fwnode(struct= fwnode_handle *fwnode) } EXPORT_SYMBOL(i2c_get_adapter_by_fwnode); =20 +/** + * i2c_get_adapter_physdev() - Get the physical device of an adapter + * @adapter: the adapter to get the physical device from + * + * Return: + * Look up and return the &struct device corresponding to the device suppl= ying + * this @adapter. + * + * The user must call put_device() once done with the physical device retu= rned. + */ +struct device *i2c_get_adapter_physdev(struct i2c_adapter *adapter) +{ + return get_device(adapter->physdev ?: adapter->dev.parent); +} +EXPORT_SYMBOL(i2c_get_adapter_physdev); + static void i2c_parse_timing(struct device *dev, char *prop_name, u32 *cur= _val_p, u32 def_val, bool use_def) { diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 20fd41b51d5c..dff04d20cafe 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -744,6 +744,7 @@ struct i2c_adapter { int timeout; /* in jiffies */ int retries; struct device dev; /* the adapter device */ + struct device *physdev; /* the physical device */ unsigned long locked_flags; /* owned by the I2C core */ #define I2C_ALF_IS_SUSPENDED 0 #define I2C_ALF_SUSPEND_REPORTED 1 @@ -911,6 +912,8 @@ struct i2c_adapter *i2c_get_adapter(int nr); void i2c_put_adapter(struct i2c_adapter *adap); unsigned int i2c_adapter_depth(struct i2c_adapter *adapter); =20 +struct device *i2c_get_adapter_physdev(struct i2c_adapter *adap); + void i2c_parse_fw_timings(struct device *dev, struct i2c_timings *t, bool = use_defaults); =20 /* Return the functionality mask */ --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 986EE244660; Wed, 25 Mar 2026 14:40:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449649; cv=none; b=L9KYZdZufPeTL7+3rthHbTby1XN0JFxV0XabNUhlXq35DRyAzYA8Pbp4K5r6D/NXA5kKEq2b4aBq+Fu5XDwBDnRGhJ/3ZBC8rQdz3A6foScQmWjKR8foe8ZnPVpX9g9koMMK2rlJvFIIbMgMOdI9GqKE212Ylx4qNJjGHtw4v6E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449649; c=relaxed/simple; bh=DaRfsV2u+e7/20CbFYhTmGEe9Lq4oc9ftgi7hzgtJxs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tgbm5gWetpyknaXCQ0zp6a4cllMqAGlzoeTQfI7DiF98Il9kCheRDSh/UL8mB4k//m0bQ1dil5kC/V/ZECYeza9X15BhdnEeds58y2ZO4mXdY4LJagWQL9b3s6k+t2iuY06V/XYUye4+ERDv5Mk6Lkw/+XnygI33WihT4F6Px1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=YFHVBRNZ; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="YFHVBRNZ" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 773921A2EFA; Wed, 25 Mar 2026 14:40:46 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 3ECA6601E2; Wed, 25 Mar 2026 14:40:46 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id D65EA10451417; Wed, 25 Mar 2026 15:40:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449643; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=EO+KwDm3fpx2sS0DmTpGwECNmbhB0N19pDgf5whzoMI=; b=YFHVBRNZ+4X0eUGYxGcRdBemBZJ+IuGttbYxvNOnEWumFTnvI89irKZyA/5L5njmYiGFY6 eeQpqEBeK+GrJFArhYFNfLvTKbm0jPktRKzSgWPxpYjvCbaUr6j6CiM4jYev6430X0Ch3v GON1VTnHTdBuZ9PL6ncaw03zYbuAVgt0LZXPIR1q3xwDzRYuH3tuRY64VgHPDDs4ZluL9d r2I3ie4W0rxnR2Z+qj3G4vq2JLnaRjplGvKlIOj4EyVfupQULSx+tWgGSrLUmpyIHf4z8m Fb8x1MMoHX6TBHTPtEa4nq4AeFJs8VXZjKyA5cLHoLkNlgTZNdUOXLWz5Vtszg== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 15/27] i2c: mux: Set adapter physical device Date: Wed, 25 Mar 2026 15:35:42 +0100 Message-ID: <20260325143555.451852-16-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" For i2c muxes, the parent of the mux adapter device is the adapter device the mux is connected to. This parent is not the physical device related to the mux adapter. Indeed, the physical device of the mux adapter is the mux device itself. Fill the adap.physdev with the mux device. Signed-off-by: Herve Codina Reviewed-by: Andi Shyti --- drivers/i2c/i2c-mux.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c index 681a201c239b..f4e73e7a0e33 100644 --- a/drivers/i2c/i2c-mux.c +++ b/drivers/i2c/i2c-mux.c @@ -315,6 +315,7 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc, priv->adap.algo =3D &priv->algo; priv->adap.algo_data =3D priv; priv->adap.dev.parent =3D &parent->dev; + priv->adap.physdev =3D muxc->dev; priv->adap.retries =3D parent->retries; priv->adap.timeout =3D parent->timeout; priv->adap.quirks =3D parent->quirks; --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A65C53F8DE7; Wed, 25 Mar 2026 14:41:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449669; cv=none; b=Nxmc0yy3MJ+wyZy1L5haoqlsZ39WBEKjIJ3W3ewvl/vBEuXIClkWyZDkVUGetcmZWvL53GjVyxjQqUrsknIZyJSyvROrwabm4IkJgaX9GNRy1J40WdY+O9AswONVPhkaN84E+9KJymrAEs6DR4Tz+mAtmOsL1GcUoYHzcmeuqYw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449669; c=relaxed/simple; bh=uDuPgt2o/9oBQHh+Cpy7Gf83um6TASnvbhCiTbvCQdY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vC5dYS6C44c08CXHiVn4h8xI68VPk4hJ/Kv7LSNTO7Ax/dpPQKAILKhwUo1gAanYIPO6k6P7mCUR9z0hw11NWS3Qy1HhUaTlLY6hIhDxdDofdIJ4bCcR0n9ZKExm9n8wQ9So+L/STUaAGyV+w2aRaukML9h+08yZPnXqXJBgGtY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=x9aXYJt2; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="x9aXYJt2" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 2FD9E4E427EF; Wed, 25 Mar 2026 14:41:05 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 05245601FA; Wed, 25 Mar 2026 14:41:05 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 5F96E104513C1; Wed, 25 Mar 2026 15:40:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449661; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=EB2C+jRFMxDkKtJvrc3FzQhnrQCg9ZYzY6GBMb2A8G4=; b=x9aXYJt2Xgv4kB01GyPszWYFEN17VsPTuRWho3EM5oIObrs0bojHjDhISOKnG44m1DMxNq cKQJDZLmCapQChTQoa3OODYY+pV9TVmx+9r2a1wgUgaAXGCgOsYXiXVRNoih0o25MH/3Fc MGwNg9BPQmrmMvUjiRSJxCoactYMhwFr7lQUqyE9QjOGv6YC/kIA9QXZRIxrN+qsbAaGeQ aKwIxzVON7u5qPOVEvBm8Em5pWnL1+NdeOnjZHFydwFiUarG2Xc/wCG2XUwBwISErwUn2f ysLd8Zbxa66++hAPrjNqzamzw69xul/RiuxCwgrNipfI3j+0AvjiRJ2e4Ea7CQ== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 16/27] i2c: mux: Create missing devlink between mux and adapter physical device Date: Wed, 25 Mar 2026 15:35:43 +0100 Message-ID: <20260325143555.451852-17-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" When removing an i2c controller device handling an i2c bus where an i2c mux is connected to, the removal process hangs and is stuck in the wait_completion() call done in i2c_del_adapter(). The i2c_del_adapter() tries to removed the i2c adapter related to the i2c controller device and the wait_completion() is waiting for the i2c adapter device release. This release is performed when the device is no more used (i.e. refcount reaches zero). When an i2c mux is involved in an i2c path, the struct dev topology is the following: +----------------+ +-------------------+ | i2c controller | | i2c mux | | device | | device | | ^ | | | | | | | | | dev's parent | | | | | | | | | i2c adapter | | i2c adapter chanX | | device <---- dev's parent ------ device | | (no driver) | | (no driver) | +----------------+ +-------------------+ When an i2c mux device creates an i2c adapter for its downstream channel, a reference is taken to its adapter dev's parent. This parent is the i2c mux upstream adapter device. No relationship exists between the i2c mux device itself and the i2c controller device (physical device) in order to have the i2c mux device calling i2c_del_adapter() to remove its downstream adapters and so, release references taken to the upstream adapter. This consumer/supplier relationship is typically a devlink relationship. Also, i2c muxes can be chained and so, the upstream adapter can be supplied by either an i2c controller device or an other i2c mux device. In order to get the physical device of the adapter a mux is connected to, rely on the newly introduced i2c_adapter_get_physdev() and create the missing devlink between the i2c mux device and the physical device of the adapter the mux is connected to. With that done, the i2c mux device is removed before the device handling the upstream i2c adapter (i2c controller device or i2c mux device). All references are released and the i2c_del_adapter() call performed by driver handling the upstream adapter device is not blocking anymore. Signed-off-by: Herve Codina --- drivers/i2c/i2c-mux.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c index f4e73e7a0e33..26470a7c2eea 100644 --- a/drivers/i2c/i2c-mux.c +++ b/drivers/i2c/i2c-mux.c @@ -268,7 +268,9 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc, u32 force_nr, u32 chan_id) { struct i2c_adapter *parent =3D muxc->parent; + struct device *parent_physdev; struct i2c_mux_priv *priv; + struct device_link *dl; char symlink_name[20]; int ret; =20 @@ -375,6 +377,29 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc, ACPI_COMPANION(muxc->dev), chan_id); =20 + /* + * There is no relationship set between the mux device and the physical + * device handling the parent adapter. Create this missing relationship + * in order to remove the i2c mux device (consumer) and so the dowstream + * channel adapters before removing the physical device (supplier) which + * handles the i2c mux upstream adapter. + */ + parent_physdev =3D i2c_get_adapter_physdev(parent); + if (!parent_physdev) { + dev_err(muxc->dev, "failed to get the parent physical device\n"); + ret =3D -ENODEV; + goto err_free_priv; + } + dl =3D device_link_add(muxc->dev, parent_physdev, DL_FLAG_AUTOREMOVE_CONS= UMER); + if (!dl) { + dev_err(muxc->dev, "failed to create device link to %s\n", + dev_name(parent_physdev)); + put_device(parent_physdev); + ret =3D -EINVAL; + goto err_free_priv; + } + put_device(parent_physdev); + if (force_nr) { priv->adap.nr =3D force_nr; ret =3D i2c_add_numbered_adapter(&priv->adap); --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 370713FBED3; Wed, 25 Mar 2026 14:41:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449687; cv=none; b=PAOMPTSbYNdeUkxG07JiUu08kTm5Fq/BK5ncSHiNcLZ45D6+cCugWffoz/0mLuO2oKnD6tEMokjGcTuXovmklAET45bL1PbmM08aLAuJm2iAJVxCDJVidZcev5LaI4/yZaQGJqAwruzZNWE2sD/z7BhNql3Ixz4p/bMX+oMUiUQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449687; c=relaxed/simple; bh=opKdfdVK4CzMrQ5mOvu1aN+T6KAaaDtxxB/GB80aspg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Tp53rtye+WxkV5ZAPgzDQMQob2xblfEio4tJyR8DHBL+3fkAcnjJ77Vsjsz5r/BGlKuOhq6ytqHAPewWKkBoY0Jcmjo1gsftAKOKZktg527gSeDaqn+V7ixYwQuSpVtufuq3a0xhLugBdAaE9YdGWNQPq7n6rlHi5Hn7Vi8l09k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=Cdqrgp2N; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="Cdqrgp2N" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 7F928C580B1; Wed, 25 Mar 2026 14:41:48 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id B6FF5601E2; Wed, 25 Mar 2026 14:41:20 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 280B110451411; Wed, 25 Mar 2026 15:41:02 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449678; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=vTj0jmIFVnvyBrAo1BELaCko6WzI+kUICmGliPFJzCI=; b=Cdqrgp2NOy+ir/c4DFMnlhHuzvBZcwpcFZZUIDZvhcIn4x1WPWTNE+MlPCfcq+AdXGyg+o JU44FbMKZ2TXktvP+4lBVQxOEGBOrPnL5Ues0/h5OsfEwzAZOG5nb+gpCM48rMZEQqISbU kOqVDFkmP8vMouAB5pY08DCLcAOkGdxpDo2igFLXqNrLgnPB2T05lmsxh8gUCbKvgyJ4Ju S4hj1yB/gOXOcT3KQgzyUkEMpmbPC61OJW609YG5nx6C46iMQY5eSZN5PeJ/3JEfNVNj4k 1BIZ4MfhIcxwfRJ3WqAhS10uWWKLYtAIn7P5XvvEAUvPhklG6ovgpTmh4OKxKQ== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 17/27] of: property: Allow fw_devlink device-tree on x86 Date: Wed, 25 Mar 2026 15:35:44 +0100 Message-ID: <20260325143555.451852-18-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" PCI drivers can use a device-tree overlay to describe the hardware available on the PCI board. This is the case, for instance, of the LAN966x PCI device driver. Adding some more nodes in the device-tree overlay adds some more consumer/supplier relationship between devices instantiated from this overlay. Those fw_node consumer/supplier relationships are handled by fw_devlink and are created based on the device-tree parsing done by the of_fwnode_add_links() function. Those consumer/supplier links are needed in order to ensure a correct PM runtime management and a correct removal order between devices. For instance, without those links a supplier can be removed before its consumers is removed leading to all kind of issue if this consumer still want the use the already removed supplier. The support for the usage of an overlay from a PCI driver has been added on x86 systems in commit 1f340724419ed ("PCI: of: Create device tree PCI host bridge node"). In the past, support for fw_devlink on x86 had been tried but this support has been removed in commit 4a48b66b3f52 ("of: property: Disable fw_devlink DT support for X86"). Indeed, this support was breaking some x86 systems such as OLPC system and the regression was reported in [0]. Instead of disabling this support for all x86 system, use a finer grain and disable this support only for the possible problematic subset of x86 systems (at least OLPC and CE4100). Those systems use a device-tree to describe their hardware. Identify those systems using key properties in the device-tree. Signed-off-by: Herve Codina Link: https://lore.kernel.org/lkml/3c1f2473-92ad-bfc4-258e-a5a08ad73dd0@web= .de/ [0] --- drivers/of/property.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/drivers/of/property.c b/drivers/of/property.c index 50d95d512bf5..80800a20d1ac 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1620,12 +1620,36 @@ static int of_fwnode_irq_get(const struct fwnode_ha= ndle *fwnode, return of_irq_get(to_of_node(fwnode), index); } =20 +static int match_property_by_path(const char *node_path, const char *prop_= name, + const char *value) +{ + struct device_node *np __free(device_node) =3D of_find_node_by_path(node_= path); + + return of_property_match_string(np, prop_name, value); +} + +static bool of_is_fwnode_add_links_supported(void) +{ + static int is_supported =3D -1; + + if (!IS_ENABLED(CONFIG_X86)) + return true; + + if (is_supported !=3D -1) + return !!is_supported; + + is_supported =3D !((match_property_by_path("/soc", "compatible", "intel,c= e4100-cp") >=3D 0) || + (match_property_by_path("/", "architecture", "OLPC") >=3D 0)); + + return !!is_supported; +} + static int of_fwnode_add_links(struct fwnode_handle *fwnode) { const struct property *p; struct device_node *con_np =3D to_of_node(fwnode); =20 - if (IS_ENABLED(CONFIG_X86)) + if (!of_is_fwnode_add_links_supported()) return 0; =20 if (!con_np) --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A71743FA5CD; Wed, 25 Mar 2026 14:41:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449705; cv=none; b=dWWjFdftPKvGMuqjkF+ObhDe8VagXqydQg+og7bpCQi0IliiExg6Krf0GVGFEzHbh/UQ03kEuw4r5Nha9T8CVYsrbNQtTpOKLrg8phdnOtv/n67FlFZ1wKMS6hO/ou/Ztpa0VXF9ogkSWFoQussNmyjZHm0QOSpbFNW3AvuIoQk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449705; c=relaxed/simple; bh=t4S3Im2Q9VHd65b1LNW0YeMdFBvQQnKTQdoHV0TNdoM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LJps3nSsw3uhrjZ1seqKCMVgwpDVvVbIDE5A+zbedj7DRfDD0m4t1sURiSYKWUFlbzSV2TkAoAbinHmFIFJ6KfDas+2hGrUn6tqIfEcOkvFeg/sdnToH9eZb62n3Hh+hMoRhZ9yyXBvzxwZHXLKl+vJeCr9+Xn+hzxLx+VZ3lEA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=U+NzknoY; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="U+NzknoY" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 7D3FC1A2EFA; Wed, 25 Mar 2026 14:41:37 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 4E518601FA; Wed, 25 Mar 2026 14:41:37 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id E4AB510451417; Wed, 25 Mar 2026 15:41:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449694; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=yjXgFwtIgYgLY+NqzIdKN5xDoSSBCrFHV69qZDYtiog=; b=U+NzknoYJ9okEhCAgJFhC9TfFDSjgIi9vj+ILprMTd50A/9wkRcLjqs+tSz5sccXCm6Ghg dxF2PwU+DQUNuH1cwovKvBzYSIV4EGzc9ZqA9bPjSGWdtavu1BR3YqGVbHtIMN+LLvXaJt hDODthDz8Gv78GxV6i8a9AlFtEWgKvQZKiE65pjTCcg9ED3azlAIngU+GrZfQvgJ4CcStK SK9rs8qH8LSECniDYgsZztK9cGxpLPArSm1MdC2wgvERFh1zW1GPV2DBn/0HZDul5w5gzZ 3AwNTRpIIGHUwK62CjsxtoA2EdzWaECr94l/Ex4/MS//Y2lfKnjWp57/t5xkKQ== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 18/27] clk: lan966x: Add MCHP_LAN966X_PCI dependency Date: Wed, 25 Mar 2026 15:35:45 +0100 Message-ID: <20260325143555.451852-19-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The lan966x clock controller depends on the LAN969x architecture or the LAN966x SoC. This clock controller can be used by the LAN966x PCI device and so it needs to be available when the LAN966x PCI device is enabled. Signed-off-by: Herve Codina Acked-by: Stephen Boyd --- drivers/clk/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index 3d803b4cf5c1..0231dd449134 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig @@ -278,7 +278,7 @@ config COMMON_CLK_LAN966X tristate "Generic Clock Controller driver for LAN966X SoC" depends on HAS_IOMEM depends on OF - depends on SOC_LAN966 || ARCH_LAN969X || COMPILE_TEST + depends on SOC_LAN966 || ARCH_LAN969X || MCHP_LAN966X_PCI || COMPILE_TEST help This driver provides support for Generic Clock Controller(GCK) on LAN966X SoC. GCK generates and supplies clock to various peripherals --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 625023EC2FC; Wed, 25 Mar 2026 14:41:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449717; cv=none; b=nZrdvRZ99YI2CJsDPCwQJVYGECpXzXWTitFeWOwOiieurbFjZ7QP9zmxgoya67+/0/EVlDqK2Hqd5wWU//FTmdJFd2p7t9PIfJnmp5Bqy6JLLIcjs1NY9s8LWmGjG2yhyco8ObJEm8AoJFHlriWkqQ7o72V+Ki1GlWPgF4vg5H0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449717; c=relaxed/simple; bh=z5qo+njxOq59cfnMFpWRPyGgRlTcviG2FIatZoRwOvA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DiTqFTd45hvjESc2CCdIKgNXkhnHAgy5qUyi617gaV7vV1KYs/2FvpOpOeGcHhAc+zjSvuQRW8E++JqIlhImlkNvuV1SeJtQIZVnZ1ugFZ3VXbVCwBHx99suFYM1Y3TGQ78IVVApob+J7yhiGDgFQ+O5MJqDL5OtqqO3MRete5w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=dIff852T; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="dIff852T" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id C4AEC4E427EF; Wed, 25 Mar 2026 14:41:52 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 9B7E8601E2; Wed, 25 Mar 2026 14:41:52 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 4424A104513C1; Wed, 25 Mar 2026 15:41:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449709; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=+z4Mrq3/T+2B2/cuOhiNyTSuL/eh3kHVXp5z8mKO858=; b=dIff852TQDMXUmtL8MjszcxQxQagEadCQhojBqfgViwB5wV30oiV6f3ilkwmc2ZMwTo18m zsIRU93u3p2Ze9BsXgJRTPJf7p3Za4K69uxsNyoO5n6g0gihh7/FOVtTmZK47cIsmix/yf IdH/w/guqbpxI+nZQ4VuVk+ATpRPaBZNGSU08GS3XS98bLUTskztkoCaVjsIbmf2l99N7R Y7FfPOmae+YfyCarjVkknmc7dn/1vTOyoZHiqMYk3cyFmQIip8lniHK+mji+1Qh4+LaWQ7 CVZmBgm5L9D+Mh6fr6UvmfUbjslh71G+TXEx7bvLg8aSODOiObr9YivWvCW4hw== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 19/27] i2c: busses: at91: Add MCHP_LAN966X_PCI dependency Date: Wed, 25 Mar 2026 15:35:46 +0100 Message-ID: <20260325143555.451852-20-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The AT91 I2C driver depends on ARCH_MICROCHIP. This I2C controller can be used by the LAN966x PCI device and so it needs to be available when the LAN966x PCI device is enabled. Signed-off-by: Herve Codina Acked-by: Andi Shyti --- drivers/i2c/busses/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index e11d50750e63..f43b3e8ca317 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -417,7 +417,7 @@ config I2C_ASPEED =20 config I2C_AT91 tristate "Atmel AT91 I2C Two-Wire interface (TWI)" - depends on ARCH_MICROCHIP || COMPILE_TEST + depends on ARCH_MICROCHIP || MCHP_LAN966X_PCI || COMPILE_TEST help This supports the use of the I2C interface on Atmel AT91 processors. --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE59F3E3171; Wed, 25 Mar 2026 14:42:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449734; cv=none; b=o721In9K/w3oN3Lw6MF5qr3WuK8NTIPgbcDd4Rdx0fLXhKfL4xDbFFS74z2eRIYpSav7no7VBkox4Zps45GKYbyMaJtkIZwLKWA/h3YGvZZfz2ThdoQSNPO0gbp7jBYs/I2Z2rRfkLHolfC9E5ZmDTLu4jB/5H6uFz48NSI7RTI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449734; c=relaxed/simple; bh=DItZty9R5mtd5FXD6pz2hLLOYiHipPPsCn4tibvE0LM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fpJ5YgDTcU0/aN3610MgyGhjMjw8heKZHcfpgNYovFsp/c30+OJPyUxGTdnUIkfW5QGVUON+aj8SZCQPJLCG0FoJGnVvNJXu/INzN3BHaf3bFe9U58QPjAlQlfnjynEg1Ib2hWaRUk6N8rcBmvE/D+KXnEt5jD9Sbq+9dzofwqk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=f2bP3aCv; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="f2bP3aCv" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 62991C580B1; Wed, 25 Mar 2026 14:42:39 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 99A07601E2; Wed, 25 Mar 2026 14:42:11 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 694AF10451411; Wed, 25 Mar 2026 15:41:50 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449728; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=MeQEnVXAUpOp9CamCeIUdO4wkcnSXPVtha4nwOJPHlU=; b=f2bP3aCvXHmgS1c6pTep+UCKyaiwv5Eo3qm1FhHLFHRTvUu2DUyPtmYlAOeOTp4nfzPomf wTlMpceqAeWXM16l7wDUR+XaqOPGTN3IlvgEUxfHzjqZj6eU/sqW0M31XuxVgRTEKq+7qC kAaDYS5Kd7HUTHDGtsWTIFBD9hi9KDmpaz44hrYkfxyVJK47JCqDC2jri7Ba0xu5I4596v pSoxPg6i48ZGXOU67fINFjGGI/wOw6VTFJOVNwWH8tgCoZ7ZcAqzIcvT39zMV4Pz6J77hA hOZ2A6xCOu94/L4zARyl7jtZPSMkS383GHEpQuBYhNk4xBgGO7OsWEPemcPlxw== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 20/27] misc: lan966x_pci: Fix dtso nodes ordering Date: Wed, 25 Mar 2026 15:35:47 +0100 Message-ID: <20260325143555.451852-21-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" Nodes available in the dtso are not ordered by their unit address. Fix that re-ordering them according to their unit address. Signed-off-by: Herve Codina --- drivers/misc/lan966x_pci.dtso | 99 +++++++++++++++++------------------ 1 file changed, 49 insertions(+), 50 deletions(-) diff --git a/drivers/misc/lan966x_pci.dtso b/drivers/misc/lan966x_pci.dtso index 7b196b0a0eb6..94a967b384f3 100644 --- a/drivers/misc/lan966x_pci.dtso +++ b/drivers/misc/lan966x_pci.dtso @@ -59,6 +59,50 @@ pci-ep-bus@0 { ranges =3D <0xe2000000 0x00 0x00 0x00 0x2000000 0xe0000000 0x01 0x00 0x00 0x1000000>; =20 + switch: switch@e0000000 { + compatible =3D "microchip,lan966x-switch"; + reg =3D <0xe0000000 0x0100000>, + <0xe2000000 0x0800000>; + reg-names =3D "cpu", "gcb"; + + interrupt-parent =3D <&oic>; + interrupts =3D <12 IRQ_TYPE_LEVEL_HIGH>, + <9 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names =3D "xtr", "ana"; + + resets =3D <&reset 0>; + reset-names =3D "switch"; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&tod_pins>; + + ethernet-ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port0: port@0 { + phy-handle =3D <&lan966x_phy0>; + + reg =3D <0>; + phy-mode =3D "gmii"; + phys =3D <&serdes 0 CU(0)>; + }; + + port1: port@1 { + phy-handle =3D <&lan966x_phy1>; + + reg =3D <1>; + phy-mode =3D "gmii"; + phys =3D <&serdes 1 CU(1)>; + }; + }; + }; + + cpu_ctrl: syscon@e00c0000 { + compatible =3D "microchip,lan966x-cpu-syscon", "syscon"; + reg =3D <0xe00c0000 0xa8>; + }; + oic: oic@e00c0120 { compatible =3D "microchip,lan966x-oic"; #interrupt-cells =3D <2>; @@ -67,11 +111,6 @@ oic: oic@e00c0120 { reg =3D <0xe00c0120 0x190>; }; =20 - cpu_ctrl: syscon@e00c0000 { - compatible =3D "microchip,lan966x-cpu-syscon", "syscon"; - reg =3D <0xe00c0000 0xa8>; - }; - reset: reset@e200400c { compatible =3D "microchip,lan966x-switch-reset"; reg =3D <0xe200400c 0x4>, <0xe00c0000 0xa8>; @@ -104,14 +143,6 @@ fc0_a_pins: fcb4-i2c-pins { pins =3D "GPIO_9", "GPIO_10"; function =3D "fc0_a"; }; - - }; - - serdes: serdes@e202c000 { - compatible =3D "microchip,lan966x-serdes"; - reg =3D <0xe202c000 0x9c>, - <0xe2004010 0x4>; - #phy-cells =3D <2>; }; =20 mdio1: mdio@e200413c { @@ -133,43 +164,11 @@ lan966x_phy1: ethernet-lan966x_phy@2 { }; }; =20 - switch: switch@e0000000 { - compatible =3D "microchip,lan966x-switch"; - reg =3D <0xe0000000 0x0100000>, - <0xe2000000 0x0800000>; - reg-names =3D "cpu", "gcb"; - - interrupt-parent =3D <&oic>; - interrupts =3D <12 IRQ_TYPE_LEVEL_HIGH>, - <9 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names =3D "xtr", "ana"; - - resets =3D <&reset 0>; - reset-names =3D "switch"; - - pinctrl-names =3D "default"; - pinctrl-0 =3D <&tod_pins>; - - ethernet-ports { - #address-cells =3D <1>; - #size-cells =3D <0>; - - port0: port@0 { - phy-handle =3D <&lan966x_phy0>; - - reg =3D <0>; - phy-mode =3D "gmii"; - phys =3D <&serdes 0 CU(0)>; - }; - - port1: port@1 { - phy-handle =3D <&lan966x_phy1>; - - reg =3D <1>; - phy-mode =3D "gmii"; - phys =3D <&serdes 1 CU(1)>; - }; - }; + serdes: serdes@e202c000 { + compatible =3D "microchip,lan966x-serdes"; + reg =3D <0xe202c000 0x9c>, + <0xe2004010 0x4>; + #phy-cells =3D <2>; }; }; }; --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 53C163DEFE6; Wed, 25 Mar 2026 14:42:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449752; cv=none; b=BCOqqPBRQir5ZVFM7NPuoiCW02NuI0Z5vKroTGpW2HtjB1uC9NNfCk/VpEisbO6O28O553pDWBrnps8Nl/7Jm+85BNwYnRXcKPjc84YzI/NlG5etkcHJBxPoivNzh9mGBNXWyy6X5YWbVhRZRejmwIjYC+DEMoCQSjG2dVlLi/A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449752; c=relaxed/simple; bh=/I/gBBSQjoZsOjIL0B+Qyl0IZTqk8YHRpzEsG7bIEWg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YWZhuvdJEhk/pjzebqgtGzYEf0GaTVvesxPM6EtMri3tIDA/ycr7/65apBUjBfutIYBFLcEcqi2+bLYOOz+NUzbvvwQ72xVoUynzNAog+bwCiqEE2Qh2LUtmEgEFKex8zOiE3jdERq/G/YY7Ln1Teg0M4T6EcYeav8QbdEWDMwc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=sSLi+gDn; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="sSLi+gDn" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 09B1A1A2FE8; Wed, 25 Mar 2026 14:42:29 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id CD63D601E2; Wed, 25 Mar 2026 14:42:28 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 7054910451417; Wed, 25 Mar 2026 15:42:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449745; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=yHQfhazYClBqFiWTBjKI2wJ8nGAA1W+1s1WNH3rEj08=; b=sSLi+gDngKhTCb3YbcmUiWbH3av4+qM9w25P1wNQ2+ZNTZDJDrQb16tU6NC3qDQvoP/B5p mrkZ/HdKSC3o2WNNqAGRtkxGDRLPYmMdm5ITEtoOOmonZnTH5DANIhpjRAjJhEVnMpal1F nOJi2AsHbEz2dSCDp0YHjMjWxAPWFca2GrhsxRXJVVLlyP47Gm+0gmV4E3XAaXdZmAFVSu WhobF2tbjCCdyJXDj/ANT1yl2i8YjDCmExGB85INBy26P+opFcWZL/Zdkxl8R5Pf1qx+Fy MUeFQVqLPz4V2siBhPKTcgCyegOhp5RWpivj5cyYdJkaL39M6cp109pgCWuNFA== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 21/27] misc: lan966x_pci: Split dtso in dtsi/dtso Date: Wed, 25 Mar 2026 15:35:48 +0100 Message-ID: <20260325143555.451852-22-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The lan966x_pci.dtso file contains descriptions related to both the LAN966x PCI device chip and the LAN966x PCI device board where the chip is soldered. Split the file in order to have: - lan966x_pci.dtsi The description related to the PCI chip. - lan966x_pci.dtso The description of the PCI board. Signed-off-by: Herve Codina Reviewed-by: Andrew Lunn --- MAINTAINERS | 1 + drivers/misc/lan966x_pci.dtsi | 130 +++++++++++++++++++++++++ drivers/misc/lan966x_pci.dtso | 175 +++++++--------------------------- 3 files changed, 166 insertions(+), 140 deletions(-) create mode 100644 drivers/misc/lan966x_pci.dtsi diff --git a/MAINTAINERS b/MAINTAINERS index 55af015174a5..441fe74e7ef7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -17305,6 +17305,7 @@ MICROCHIP LAN966X PCI DRIVER M: Herve Codina S: Maintained F: drivers/misc/lan966x_pci.c +F: drivers/misc/lan966x_pci.dtsi F: drivers/misc/lan966x_pci.dtso =20 MICROCHIP LAN969X ETHERNET DRIVER diff --git a/drivers/misc/lan966x_pci.dtsi b/drivers/misc/lan966x_pci.dtsi new file mode 100644 index 000000000000..170298084fa5 --- /dev/null +++ b/drivers/misc/lan966x_pci.dtsi @@ -0,0 +1,130 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2025 Microchip UNG + */ + +#include + +cpu_clk: clock-600000000 { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-frequency =3D <600000000>; /* CPU clock =3D 600MHz */ +}; + +ddr_clk: clock-30000000 { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-frequency =3D <30000000>; /* Fabric clock =3D 30MHz */ +}; + +sys_clk: clock-15625000 { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-frequency =3D <15625000>; /* System clock =3D 15.625MHz */ +}; + +pci-ep-bus@0 { + compatible =3D "simple-bus"; + #address-cells =3D <1>; + #size-cells =3D <1>; + + /* + * map @0xe2000000 (32MB) to BAR0 (CPU) + * map @0xe0000000 (16MB) to BAR1 (AMBA) + */ + ranges =3D <0xe2000000 0x00 0x00 0x00 0x2000000 + 0xe0000000 0x01 0x00 0x00 0x1000000>; + + switch: switch@e0000000 { + compatible =3D "microchip,lan966x-switch"; + reg =3D <0xe0000000 0x0100000>, + <0xe2000000 0x0800000>; + reg-names =3D "cpu", "gcb"; + interrupt-parent =3D <&oic>; + interrupts =3D <12 IRQ_TYPE_LEVEL_HIGH>, + <9 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names =3D "xtr", "ana"; + resets =3D <&reset 0>; + reset-names =3D "switch"; + status =3D "disabled"; + + ethernet-ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port0: port@0 { + reg =3D <0>; + status =3D "disabled"; + }; + + port1: port@1 { + reg =3D <1>; + status =3D "disabled"; + }; + }; + }; + + cpu_ctrl: syscon@e00c0000 { + compatible =3D "microchip,lan966x-cpu-syscon", "syscon"; + reg =3D <0xe00c0000 0xa8>; + }; + + oic: oic@e00c0120 { + compatible =3D "microchip,lan966x-oic"; + #interrupt-cells =3D <2>; + interrupt-controller; + interrupts =3D <0>; /* PCI INTx assigned interrupt */ + reg =3D <0xe00c0120 0x190>; + }; + + reset: reset@e200400c { + compatible =3D "microchip,lan966x-switch-reset"; + reg =3D <0xe200400c 0x4>, <0xe00c0000 0xa8>; + reg-names =3D "gcb","cpu"; + #reset-cells =3D <1>; + cpu-syscon =3D <&cpu_ctrl>; + }; + + gpio: pinctrl@e2004064 { + compatible =3D "microchip,lan966x-pinctrl"; + reg =3D <0xe2004064 0xb4>, + <0xe2010024 0x138>; + resets =3D <&reset 0>; + reset-names =3D "switch"; + gpio-controller; + #gpio-cells =3D <2>; + gpio-ranges =3D <&gpio 0 0 78>; + interrupt-parent =3D <&oic>; + interrupt-controller; + interrupts =3D <17 IRQ_TYPE_LEVEL_HIGH>; + #interrupt-cells =3D <2>; + }; + + mdio1: mdio@e200413c { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "microchip,lan966x-miim"; + reg =3D <0xe200413c 0x24>, + <0xe2010020 0x4>; + resets =3D <&reset 0>; + reset-names =3D "switch"; + status =3D "disabled"; + + lan966x_phy0: ethernet-lan966x_phy@1 { + reg =3D <1>; + status =3D "disabled"; + }; + + lan966x_phy1: ethernet-lan966x_phy@2 { + reg =3D <2>; + status =3D "disabled"; + }; + }; + + serdes: serdes@e202c000 { + compatible =3D "microchip,lan966x-serdes"; + reg =3D <0xe202c000 0x9c>, + <0xe2004010 0x4>; + #phy-cells =3D <2>; + }; +}; diff --git a/drivers/misc/lan966x_pci.dtso b/drivers/misc/lan966x_pci.dtso index 94a967b384f3..3ad50abee72d 100644 --- a/drivers/misc/lan966x_pci.dtso +++ b/drivers/misc/lan966x_pci.dtso @@ -3,10 +3,7 @@ * Copyright (C) 2022 Microchip UNG */ =20 -#include #include -#include -#include #include =20 /dts-v1/; @@ -29,148 +26,46 @@ __overlay__ { #address-cells =3D <3>; #size-cells =3D <2>; =20 - cpu_clk: clock-600000000 { - compatible =3D "fixed-clock"; - #clock-cells =3D <0>; - clock-frequency =3D <600000000>; /* CPU clock =3D 600MHz */ - }; - - ddr_clk: clock-30000000 { - compatible =3D "fixed-clock"; - #clock-cells =3D <0>; - clock-frequency =3D <30000000>; /* Fabric clock =3D 30MHz */ - }; - - sys_clk: clock-15625000 { - compatible =3D "fixed-clock"; - #clock-cells =3D <0>; - clock-frequency =3D <15625000>; /* System clock =3D 15.625MHz */ - }; - - pci-ep-bus@0 { - compatible =3D "simple-bus"; - #address-cells =3D <1>; - #size-cells =3D <1>; - - /* - * map @0xe2000000 (32MB) to BAR0 (CPU) - * map @0xe0000000 (16MB) to BAR1 (AMBA) - */ - ranges =3D <0xe2000000 0x00 0x00 0x00 0x2000000 - 0xe0000000 0x01 0x00 0x00 0x1000000>; - - switch: switch@e0000000 { - compatible =3D "microchip,lan966x-switch"; - reg =3D <0xe0000000 0x0100000>, - <0xe2000000 0x0800000>; - reg-names =3D "cpu", "gcb"; - - interrupt-parent =3D <&oic>; - interrupts =3D <12 IRQ_TYPE_LEVEL_HIGH>, - <9 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names =3D "xtr", "ana"; - - resets =3D <&reset 0>; - reset-names =3D "switch"; - - pinctrl-names =3D "default"; - pinctrl-0 =3D <&tod_pins>; - - ethernet-ports { - #address-cells =3D <1>; - #size-cells =3D <0>; - - port0: port@0 { - phy-handle =3D <&lan966x_phy0>; - - reg =3D <0>; - phy-mode =3D "gmii"; - phys =3D <&serdes 0 CU(0)>; - }; - - port1: port@1 { - phy-handle =3D <&lan966x_phy1>; - - reg =3D <1>; - phy-mode =3D "gmii"; - phys =3D <&serdes 1 CU(1)>; - }; - }; - }; - - cpu_ctrl: syscon@e00c0000 { - compatible =3D "microchip,lan966x-cpu-syscon", "syscon"; - reg =3D <0xe00c0000 0xa8>; - }; - - oic: oic@e00c0120 { - compatible =3D "microchip,lan966x-oic"; - #interrupt-cells =3D <2>; - interrupt-controller; - interrupts =3D <0>; /* PCI INTx assigned interrupt */ - reg =3D <0xe00c0120 0x190>; - }; - - reset: reset@e200400c { - compatible =3D "microchip,lan966x-switch-reset"; - reg =3D <0xe200400c 0x4>, <0xe00c0000 0xa8>; - reg-names =3D "gcb","cpu"; - #reset-cells =3D <1>; - cpu-syscon =3D <&cpu_ctrl>; - }; - - gpio: pinctrl@e2004064 { - compatible =3D "microchip,lan966x-pinctrl"; - reg =3D <0xe2004064 0xb4>, - <0xe2010024 0x138>; - resets =3D <&reset 0>; - reset-names =3D "switch"; - gpio-controller; - #gpio-cells =3D <2>; - gpio-ranges =3D <&gpio 0 0 78>; - interrupt-parent =3D <&oic>; - interrupt-controller; - interrupts =3D <17 IRQ_TYPE_LEVEL_HIGH>; - #interrupt-cells =3D <2>; + #include "lan966x_pci.dtsi" + }; + }; +}; =20 - tod_pins: tod_pins { - pins =3D "GPIO_36"; - function =3D "ptpsync_1"; - }; +&gpio { + tod_pins: tod_pins { + pins =3D "GPIO_36"; + function =3D "ptpsync_1"; + }; +}; =20 - fc0_a_pins: fcb4-i2c-pins { - /* RXD, TXD */ - pins =3D "GPIO_9", "GPIO_10"; - function =3D "fc0_a"; - }; - }; +&lan966x_phy0 { + status =3D "okay"; +}; =20 - mdio1: mdio@e200413c { - #address-cells =3D <1>; - #size-cells =3D <0>; - compatible =3D "microchip,lan966x-miim"; - reg =3D <0xe200413c 0x24>, - <0xe2010020 0x4>; +&lan966x_phy1 { + status =3D "okay"; +}; =20 - resets =3D <&reset 0>; - reset-names =3D "switch"; +&mdio1 { + status =3D "okay"; +}; =20 - lan966x_phy0: ethernet-lan966x_phy@1 { - reg =3D <1>; - }; +&port0 { + phy-handle =3D <&lan966x_phy0>; + phy-mode =3D "gmii"; + phys =3D <&serdes 0 CU(0)>; + status =3D "okay"; +}; =20 - lan966x_phy1: ethernet-lan966x_phy@2 { - reg =3D <2>; - }; - }; +&port1 { + phy-handle =3D <&lan966x_phy1>; + phy-mode =3D "gmii"; + phys =3D <&serdes 1 CU(1)>; + status =3D "okay"; +}; =20 - serdes: serdes@e202c000 { - compatible =3D "microchip,lan966x-serdes"; - reg =3D <0xe202c000 0x9c>, - <0xe2004010 0x4>; - #phy-cells =3D <2>; - }; - }; - }; - }; +&switch { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&tod_pins>; + status =3D "okay"; }; --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE9853ED5D2; Wed, 25 Mar 2026 14:42:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449770; cv=none; b=GFpkbcKyHvFrKcsMkK2jgOeNPBnJ1wZe7M+hvuvRBJWwdsslHbBm6sA+pSP3OwemJdL1dH1QTdHbQELQyeEhHtDv98AN7ecx/LY+UPvfX9sss6DeF2BdS6D7IbpBQlj/pMTF0i8r81zBBLtbba1m9iaU6/l0aSPyRJl9fJJmO8k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449770; c=relaxed/simple; bh=Y8m0zsSKVad7SFcsm/ZKBnRFSzmHm9gWwA6ylq8UG0o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PpbFjQy3qbKG4p6sRH9TWsRyvFBc1aHGAdzulLT6EBlEk/0aBMwSJ6LedrG94QsV/FZAZgq5UJlPylfDrbF9p8ZX4gged2YyUxnK5n0nYmumIxMGLLNW2SwcuH0VxMc9PqmKvh3yMoy8wceG4r+L7s3kM63XJs0IXm5EG+Hp6+Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=AchPJeR2; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="AchPJeR2" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 8ED174E427EF; Wed, 25 Mar 2026 14:42:46 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 5D2EE601E2; Wed, 25 Mar 2026 14:42:46 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 9F2C010451A7A; Wed, 25 Mar 2026 15:42:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449763; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=xIgC4JqFpnspOBEpImL7CCr+SrfTGe6B79z1CKickA8=; b=AchPJeR2fug4fhyuCHWO54dYk7k0vWp2pBCShF/0yFX63DPCXq9dv0dHkwvEYS5GeQbmtZ St/N91iR+BuNLTGOAYadeafPFYT18OE0AZBYSeq3WMQobrjhyIODeCKI+l05YZkyrjjBPl BOCxiHc6bTq56zwx+qAjZ3pv4QQ9cSxkQJFcc+6lvvJD0eF/TmtvZJroNBp3iVatKYkKyp 2RNwmvEzRawcDpeleoI0BIZJkAF1YWNprispczVLnNdKCI5zCMe2OLYgbr5J6Hn3lssVrv hhZ2XR8Hk0agW9H/M3HPISiXxYqcP8+nSCuV/dO0T63BeoMTCycBfxHv94aeNA== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 22/27] misc: lan966x_pci: Rename lan966x_pci.dtso to lan966x_evb_lan9662_nic.dtso Date: Wed, 25 Mar 2026 15:35:49 +0100 Message-ID: <20260325143555.451852-23-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The lan966x_pci.dtso describes the Microchip EVB-LAN9662-NIC board [0] This PCI board embeds a LAN9962 PCI device chip, part of the LAN966x family. Rename the lan966x_pci.dtso accordingly. Link: https://www.microchip.com/en-us/development-tool/EV53U25A [0] Signed-off-by: Herve Codina Reviewed-by: Andrew Lunn --- MAINTAINERS | 2 +- drivers/misc/Makefile | 2 +- .../{lan966x_pci.dtso =3D> lan966x_evb_lan9662_nic.dtso} | 0 drivers/misc/lan966x_pci.c | 8 ++++---- 4 files changed, 6 insertions(+), 6 deletions(-) rename drivers/misc/{lan966x_pci.dtso =3D> lan966x_evb_lan9662_nic.dtso} (= 100%) diff --git a/MAINTAINERS b/MAINTAINERS index 441fe74e7ef7..2c5537891071 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -17304,9 +17304,9 @@ F: drivers/irqchip/irq-lan966x-oic.c MICROCHIP LAN966X PCI DRIVER M: Herve Codina S: Maintained +F: drivers/misc/lan966x_evb_lan9662_nic.dtso F: drivers/misc/lan966x_pci.c F: drivers/misc/lan966x_pci.dtsi -F: drivers/misc/lan966x_pci.dtso =20 MICROCHIP LAN969X ETHERNET DRIVER M: Daniel Machon diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index b32a2597d246..3b3a61f45ee9 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -70,7 +70,7 @@ obj-$(CONFIG_TPS6594_PFSM) +=3D tps6594-pfsm.o obj-$(CONFIG_NSM) +=3D nsm.o obj-$(CONFIG_MARVELL_CN10K_DPI) +=3D mrvl_cn10k_dpi.o lan966x-pci-objs :=3D lan966x_pci.o -lan966x-pci-objs +=3D lan966x_pci.dtbo.o +lan966x-pci-objs +=3D lan966x_evb_lan9662_nic.dtbo.o obj-$(CONFIG_MCHP_LAN966X_PCI) +=3D lan966x-pci.o obj-y +=3D keba/ obj-y +=3D amd-sbi/ diff --git a/drivers/misc/lan966x_pci.dtso b/drivers/misc/lan966x_evb_lan96= 62_nic.dtso similarity index 100% rename from drivers/misc/lan966x_pci.dtso rename to drivers/misc/lan966x_evb_lan9662_nic.dtso diff --git a/drivers/misc/lan966x_pci.c b/drivers/misc/lan966x_pci.c index 0bb90c0943bf..bbd87c89663d 100644 --- a/drivers/misc/lan966x_pci.c +++ b/drivers/misc/lan966x_pci.c @@ -19,8 +19,8 @@ #include =20 /* Embedded dtbo symbols created by cmd_wrap_S_dtb in scripts/Makefile.lib= */ -extern char __dtbo_lan966x_pci_begin[]; -extern char __dtbo_lan966x_pci_end[]; +extern char __dtbo_lan966x_evb_lan9662_nic_begin[]; +extern char __dtbo_lan966x_evb_lan9662_nic_end[]; =20 struct pci_dev_intr_ctrl { struct pci_dev *pci_dev; @@ -125,8 +125,8 @@ struct lan966x_pci { =20 static int lan966x_pci_load_overlay(struct lan966x_pci *data) { - u32 dtbo_size =3D __dtbo_lan966x_pci_end - __dtbo_lan966x_pci_begin; - void *dtbo_start =3D __dtbo_lan966x_pci_begin; + u32 dtbo_size =3D __dtbo_lan966x_evb_lan9662_nic_end - __dtbo_lan966x_evb= _lan9662_nic_begin; + void *dtbo_start =3D __dtbo_lan966x_evb_lan9662_nic_begin; =20 return of_overlay_fdt_apply(dtbo_start, dtbo_size, &data->ovcs_id, dev_of= _node(data->dev)); } --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 27B683EE1F3; Wed, 25 Mar 2026 14:43:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449787; cv=none; b=GZmc0I+443Tjfs0hIZex8QaOYPmCTMjP6mr4SVYrnlBWgO1R5j3ZEfx40BZ0TqObrvCuDqsS2ra0bYW/e6w4+tFAPw+c7hMw3ORn5aO2gNDypA7WxWukBuXG47VuHhSIqLW50RJLI0SEX7JWh9qGQFZAFP7NLxO5atJndg6HalI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449787; c=relaxed/simple; bh=WDPFl6m6bRz8Thl6Qu9+NScWd7/JsGzUXYclLG80RUY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AQFj5pm2BIKLF13KgqkcdWm0Fqc66iWeKHdgWjMjABMDDsilvTd17rz1Fi2mXBVeiKAFWRUTd61I4pWJofykRJD8aT+RnPoGFhmHavdyW2F2BNkCF1YMvHW8oY1L+OcnNHxtjkWf8I1OexxlzGhUDC1xbUnEjsbLf+TV33KumU8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=STNluz80; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="STNluz80" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id B57221A2EFA; Wed, 25 Mar 2026 14:43:04 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 8AE77601FA; Wed, 25 Mar 2026 14:43:04 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 988C8104513C1; Wed, 25 Mar 2026 15:42:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449781; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=oI3ulT6gceg7nbKUJ1bD8cGXzZxk2WnR3vcjhMGr/6Y=; b=STNluz80BfRRMUe4pR6IxW/I6NIOsCDo02S4Lv/PmVYC5TfHHrPVtzJfPBrK+6SFzZTQ5t JS2hE+8I7YcHxT9Ch1MAmcXa+WN5KcCQ0Wj0W3II0tC2Llq10uSFAHcviaLOvth9aqkrDl jzFx1d/m7OhSjyNBlwlfD6ewaWCCZwgy7n+JQN1Jl90sLOiVHn1VyTS6HsYEjm0Jemkc8Y OEsw/Gm8uAhsvoLnvkWHGuL1qQrqD2j4twTZ195huIrnhnP2rmCTZw1ZN5taDyB9DxWXmE ss1BCcYGgDpMKAKwnvH5FYB34kD7F586PnVB2teOqXWjUmuP4qqq1Af4k5CrvQ== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 23/27] PCI: Add Microchip LAN9662 PCI Device ID Date: Wed, 25 Mar 2026 15:35:50 +0100 Message-ID: <20260325143555.451852-24-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" Existing code uses the 0x9660 value (LAN9662 PCI Device ID) in several places. Avoid this direct use of the 0x9660 value replacing it by defined PCI Device ID. Signed-off-by: Herve Codina Acked-by: Bjorn Helgaas --- drivers/misc/lan966x_pci.c | 2 +- drivers/pci/quirks.c | 2 +- include/linux/pci_ids.h | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/misc/lan966x_pci.c b/drivers/misc/lan966x_pci.c index bbd87c89663d..e6d1fce0b116 100644 --- a/drivers/misc/lan966x_pci.c +++ b/drivers/misc/lan966x_pci.c @@ -197,7 +197,7 @@ static void lan966x_pci_remove(struct pci_dev *pdev) } =20 static struct pci_device_id lan966x_pci_ids[] =3D { - { PCI_DEVICE(PCI_VENDOR_ID_EFAR, 0x9660) }, + { PCI_DEVICE(PCI_VENDOR_ID_EFAR, PCI_DEVICE_ID_EFAR_LAN9662) }, { } }; MODULE_DEVICE_TABLE(pci, lan966x_pci_ids); diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index a63c24d3901d..cdb81f90f91f 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -6358,7 +6358,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0xa76e,= dpc_log_size); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_XILINX, 0x5020, of_pci_make_dev_node= ); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_XILINX, 0x5021, of_pci_make_dev_node= ); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_REDHAT, 0x0005, of_pci_make_dev_node= ); -DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_EFAR, 0x9660, of_pci_make_dev_node); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_EFAR, PCI_DEVICE_ID_EFAR_LAN9662, of= _pci_make_dev_node); =20 /* * Devices known to require a longer delay before first config space access diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 406abf629be2..766684176a51 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -934,6 +934,7 @@ #define PCI_VENDOR_ID_EFAR 0x1055 #define PCI_DEVICE_ID_EFAR_SLC90E66_1 0x9130 #define PCI_DEVICE_ID_EFAR_SLC90E66_3 0x9463 +#define PCI_DEVICE_ID_EFAR_LAN9662 0x9660 =20 #define PCI_VENDOR_ID_MOTOROLA 0x1057 #define PCI_DEVICE_ID_MOTOROLA_MPC105 0x0001 --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A87A43EDAC6; Wed, 25 Mar 2026 14:43:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.85.4 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449809; cv=none; b=t/rjUx71/LuUxAvJrqUd0jKxh8rDXMZrywlwsYPx39EFALpLvBC9TIFMWqwbJjYyigXdpraOllZd+dtZVCLH4kPKS2ZjSDFB49QTngJ38N81Pjg3JtwS2f4mg7F/EeIJqAGs4nYfY+XQs6KIw0v+0eCtI0D3V/45mjGoiGLUWSQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449809; c=relaxed/simple; bh=NTK3i5tT9QWPEOEZ2JcdNqTuIHC5BhBkEo4P1dG/bNY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=u2bDfLdkW3ctjJSYDlpu1pIL+Gd8kJ2oAVFc/JnZIX3bX9d6HiwyFob4zeETnJPt/CoLsYukVqj0HduaAvGxfIhwNA0bU2kdSfdYZ36YqptZQb4iGEfDfrkxwTtS7RaSUGLae9TUr6KkYwBFWMmnLoftjE3vn+3WYX3yZ7qIdzc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=eJ4BmFcA; arc=none smtp.client-ip=185.246.85.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="eJ4BmFcA" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 015BF4E427EF; Wed, 25 Mar 2026 14:43:24 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 9F3A3601FA; Wed, 25 Mar 2026 14:43:23 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 9A1EE10451522; Wed, 25 Mar 2026 15:43:02 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449800; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=dyU2PMsXAmj3EbT2+UZQ+YSlvbKU0N9ZIMJJlxdw490=; b=eJ4BmFcAjAHO1RljChWdOyoj3omI/HuwZmTpXXHQa1umyn9qPlvXMX0qFWHX41OtrKkEA1 GvBSGgfM4yrx92BviPWee8JItzhEODZaOjL49ET1ZPQJiTDPdWu67AmxZcwfgAM7RHexh8 BBfjF9gNBx3YobP5vg27CSbfUTTHQgebXMzwb/Y9URTy9Fp70//V99F42kh0Q7vhs0OoVB ZvGI2Rl+HJieKsxTPvtA4ZlBtkBHUg3o5akZuVa9XdzJTMNomY3mmyUIb3q7OOjh9BmaDO wfp9AO3ccuHOnRdShguOtsQSJoF8butGZEl8ck8Nswog14Pj0jSZOuIP7WrmCw== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 24/27] misc: lan966x_pci: Introduce board specific data Date: Wed, 25 Mar 2026 15:35:51 +0100 Message-ID: <20260325143555.451852-25-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" Only one device-tree overlay (lan966x_evb_lan9662_nic.dtbo) is handled and this overlay is directly referenced in lan966x_pci_load_overlay(). This avoid to use the code for an other board. In order to be more generic and to allow support for other boards (PCI Vendor/Device IDs), introduce the lan966x_pci_info structure and attach it to PCI Vendor/Device IDs handled by the driver. This structure contains information related to the PCI board such as information related to the dtbo describing the board we have to load. Signed-off-by: Herve Codina Reviewed-by: Andrew Lunn --- drivers/misc/lan966x_pci.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/drivers/misc/lan966x_pci.c b/drivers/misc/lan966x_pci.c index e6d1fce0b116..041e92f924c4 100644 --- a/drivers/misc/lan966x_pci.c +++ b/drivers/misc/lan966x_pci.c @@ -18,10 +18,6 @@ #include #include =20 -/* Embedded dtbo symbols created by cmd_wrap_S_dtb in scripts/Makefile.lib= */ -extern char __dtbo_lan966x_evb_lan9662_nic_begin[]; -extern char __dtbo_lan966x_evb_lan9662_nic_end[]; - struct pci_dev_intr_ctrl { struct pci_dev *pci_dev; struct irq_domain *irq_domain; @@ -118,17 +114,23 @@ static int devm_pci_dev_create_intr_ctrl(struct pci_d= ev *pdev) return devm_add_action_or_reset(&pdev->dev, devm_pci_dev_remove_intr_ctrl= , intr_ctrl); } =20 +struct lan966x_pci_info { + void *dtbo_begin; + void *dtbo_end; +}; + struct lan966x_pci { struct device *dev; int ovcs_id; + const struct lan966x_pci_info *info; }; =20 static int lan966x_pci_load_overlay(struct lan966x_pci *data) { - u32 dtbo_size =3D __dtbo_lan966x_evb_lan9662_nic_end - __dtbo_lan966x_evb= _lan9662_nic_begin; - void *dtbo_start =3D __dtbo_lan966x_evb_lan9662_nic_begin; + const struct lan966x_pci_info *info =3D data->info; =20 - return of_overlay_fdt_apply(dtbo_start, dtbo_size, &data->ovcs_id, dev_of= _node(data->dev)); + return of_overlay_fdt_apply(info->dtbo_begin, info->dtbo_end - info->dtbo= _begin, + &data->ovcs_id, dev_of_node(data->dev)); } =20 static void lan966x_pci_unload_overlay(struct lan966x_pci *data) @@ -169,6 +171,9 @@ static int lan966x_pci_probe(struct pci_dev *pdev, cons= t struct pci_device_id *i =20 pci_set_drvdata(pdev, data); data->dev =3D dev; + data->info =3D (const struct lan966x_pci_info *)id->driver_data; + if (!data->info) + return -EINVAL; =20 ret =3D lan966x_pci_load_overlay(data); if (ret) @@ -196,8 +201,17 @@ static void lan966x_pci_remove(struct pci_dev *pdev) lan966x_pci_unload_overlay(data); } =20 +/* Embedded dtbo symbols created by cmd_wrap_S_dtb in scripts/Makefile.lib= */ +extern char __dtbo_lan966x_evb_lan9662_nic_begin[]; +extern char __dtbo_lan966x_evb_lan9662_nic_end[]; + +static struct lan966x_pci_info evb_lan9662_nic_info =3D { + .dtbo_begin =3D __dtbo_lan966x_evb_lan9662_nic_begin, + .dtbo_end =3D __dtbo_lan966x_evb_lan9662_nic_end, +}; + static struct pci_device_id lan966x_pci_ids[] =3D { - { PCI_DEVICE(PCI_VENDOR_ID_EFAR, PCI_DEVICE_ID_EFAR_LAN9662) }, + { PCI_DEVICE_DATA(EFAR, LAN9662, &evb_lan9662_nic_info) }, { } }; MODULE_DEVICE_TABLE(pci, lan966x_pci_ids); --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5AE963EFD27; Wed, 25 Mar 2026 14:43:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449824; cv=none; b=SIGoEk1EAxnHHrVD4KghXBXmVopVOZi6iz6tGz8NR1X0JwquS3826FK2kbBRjow9bt/POdmY8xGwMqU7MCqsa64mB+E1KRO9exZcNUbJhOfZfVWegjt71EjQWLXX3qQ1Lj0nUt0bao0uQZes39sbk2InExFQTxSAdoHrxgWTwkY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449824; c=relaxed/simple; bh=xmLqHbZKT2Cv/CWmcreGU77H12f7Xun8iJll/1MC4EU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lI0ntEYpQHEUZoPz/uRBZrGJoNviyssq8mbxXPiw6iXxBtPYihbctKe8EyG6ZN6TAUJWZqVVqQH3x50LcJ55e0Olnk0vJI4boNQ1NgeOWcG6hHqwtXsNbjmvmFU45L7LjIzHlOmrxl7nkYM0DrfNUD1Iu43YJwtbaqXhJ316f9c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=rLK9j1IT; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="rLK9j1IT" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id EFDC01A2F95; Wed, 25 Mar 2026 14:43:41 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 85FB8601FA; Wed, 25 Mar 2026 14:43:41 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 86D3D10451A7A; Wed, 25 Mar 2026 15:43:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449818; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=gX4rEvCiby9B2yvI++vEu3sfDTTG+/1csPgc0WEGIYs=; b=rLK9j1ITz0z0bNGSEhOrpOe7jzE4egSQ9Ey8bDhEEW7rnocN/skTK93R5+CdkmPXK+VGDZ h8wtTOqoJwB06VQRSfminh4dl9Et3oX89KvFjdrvOjJp5ur2+cJkesg5ZqC9RjlVOlrnh+ W/1X5Im3k1nKsYMFkz+OergHTXKBrMGsh+JRuXbjzCGnNlmywFOKzyO+u9dLmrN5zf2xQV P+SwWsC5rPt0enndmu3ajlC5eqHqvP0pPmYys9wFS3NXisOC20N4VtHeXXpNOzAAGI3dra ndPYNEyp5O+HSdRrIAGYffxvUH2GDQfSEtH0Y6sbrQMGaK8wG1Z9EzJ/vlxEyg== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 25/27] misc: lan966x_pci: Add dtsi/dtso nodes in order to support SFPs Date: Wed, 25 Mar 2026 15:35:52 +0100 Message-ID: <20260325143555.451852-26-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" Add device-tree nodes needed to support SFPs. Those nodes are: - the clock controller - the i2c controller - the i2c mux - the SFPs themselves and their related ports in the switch Signed-off-by: Herve Codina --- drivers/misc/lan966x_evb_lan9662_nic.dtso | 96 +++++++++++++++++++++++ drivers/misc/lan966x_pci.dtsi | 42 ++++++++++ 2 files changed, 138 insertions(+) diff --git a/drivers/misc/lan966x_evb_lan9662_nic.dtso b/drivers/misc/lan96= 6x_evb_lan9662_nic.dtso index 3ad50abee72d..20e1fe4f78bf 100644 --- a/drivers/misc/lan966x_evb_lan9662_nic.dtso +++ b/drivers/misc/lan966x_evb_lan9662_nic.dtso @@ -4,6 +4,7 @@ */ =20 #include +#include #include =20 /dts-v1/; @@ -27,15 +28,94 @@ __overlay__ { #size-cells =3D <2>; =20 #include "lan966x_pci.dtsi" + + i2c0_emux: i2c0-emux { + compatible =3D "i2c-mux-pinctrl"; + #address-cells =3D <1>; + #size-cells =3D <0>; + i2c-parent =3D <&i2c0>; + pinctrl-names =3D "i2c102", "i2c103", "idle"; + pinctrl-0 =3D <&i2cmux_0>; + pinctrl-1 =3D <&i2cmux_1>; + pinctrl-2 =3D <&i2cmux_pins>; + + i2c102: i2c@0 { + reg =3D <0>; + #address-cells =3D <1>; + #size-cells =3D <0>; + }; + + i2c103: i2c@1 { + reg =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + }; + }; + + sfp2: sfp2 { + compatible =3D "sff,sfp"; + i2c-bus =3D <&i2c102>; + tx-disable-gpios =3D <&gpio 0 GPIO_ACTIVE_HIGH>; + los-gpios =3D <&gpio 25 GPIO_ACTIVE_HIGH>; + mod-def0-gpios =3D <&gpio 18 GPIO_ACTIVE_LOW>; + tx-fault-gpios =3D <&gpio 2 GPIO_ACTIVE_HIGH>; + }; + + sfp3: sfp3 { + compatible =3D "sff,sfp"; + i2c-bus =3D <&i2c103>; + tx-disable-gpios =3D <&gpio 1 GPIO_ACTIVE_HIGH>; + los-gpios =3D <&gpio 26 GPIO_ACTIVE_HIGH>; + mod-def0-gpios =3D <&gpio 19 GPIO_ACTIVE_LOW>; + tx-fault-gpios =3D <&gpio 3 GPIO_ACTIVE_HIGH>; + }; }; }; }; =20 +&flx0 { + atmel,flexcom-mode =3D ; + status =3D "okay"; +}; + +&i2c0 { + pinctrl-0 =3D <&fc0_a_pins>; + pinctrl-names =3D "default"; + i2c-analog-filter; + i2c-digital-filter; + i2c-digital-filter-width-ns =3D <35>; + status =3D "okay"; +}; + &gpio { tod_pins: tod_pins { pins =3D "GPIO_36"; function =3D "ptpsync_1"; }; + + fc0_a_pins: fcb4-i2c-pins { + /* RXD, TXD */ + pins =3D "GPIO_9", "GPIO_10"; + function =3D "fc0_a"; + }; + + i2cmux_pins: i2cmux-pins { + pins =3D "GPIO_76", "GPIO_77"; + function =3D "twi_slc_gate"; + output-low; + }; + + i2cmux_0: i2cmux-0 { + pins =3D "GPIO_76"; + function =3D "twi_slc_gate"; + output-high; + }; + + i2cmux_1: i2cmux-1 { + pins =3D "GPIO_77"; + function =3D "twi_slc_gate"; + output-high; + }; }; =20 &lan966x_phy0 { @@ -64,6 +144,22 @@ &port1 { status =3D "okay"; }; =20 +&port2 { + phy-mode =3D "sgmii"; + phys =3D <&serdes 2 SERDES6G(0)>; + sfp =3D <&sfp2>; + managed =3D "in-band-status"; + status =3D "okay"; +}; + +&port3 { + phy-mode =3D "sgmii"; + phys =3D <&serdes 3 SERDES6G(1)>; + sfp =3D <&sfp3>; + managed =3D "in-band-status"; + status =3D "okay"; +}; + &switch { pinctrl-names =3D "default"; pinctrl-0 =3D <&tod_pins>; diff --git a/drivers/misc/lan966x_pci.dtsi b/drivers/misc/lan966x_pci.dtsi index 170298084fa5..d5c2056e4e5c 100644 --- a/drivers/misc/lan966x_pci.dtsi +++ b/drivers/misc/lan966x_pci.dtsi @@ -3,6 +3,7 @@ * Copyright (C) 2025 Microchip UNG */ =20 +#include #include =20 cpu_clk: clock-600000000 { @@ -61,6 +62,39 @@ port1: port@1 { reg =3D <1>; status =3D "disabled"; }; + + port2: port@2 { + reg =3D <2>; + status =3D "disabled"; + }; + + port3: port@3 { + reg =3D <3>; + status =3D "disabled"; + }; + }; + }; + + flx0: flexcom@e0040000 { + compatible =3D "atmel,sama5d2-flexcom"; + reg =3D <0xe0040000 0x100>; + clocks =3D <&clks GCK_ID_FLEXCOM0>; + #address-cells =3D <1>; + #size-cells =3D <1>; + ranges =3D <0x0 0xe0040000 0x800>; + status =3D "disabled"; + + i2c0: i2c@600 { + compatible =3D "microchip,sam9x60-i2c"; + reg =3D <0x600 0x200>; + interrupt-parent =3D <&oic>; + interrupts =3D <48 IRQ_TYPE_LEVEL_HIGH>; + #address-cells =3D <1>; + #size-cells =3D <0>; + clocks =3D <&clks GCK_ID_FLEXCOM0>; + assigned-clocks =3D <&clks GCK_ID_FLEXCOM0>; + assigned-clock-rates =3D <20000000>; + status =3D "disabled"; }; }; =20 @@ -69,6 +103,14 @@ cpu_ctrl: syscon@e00c0000 { reg =3D <0xe00c0000 0xa8>; }; =20 + clks: clock-controller@e00c00a8 { + compatible =3D "microchip,lan966x-gck"; + #clock-cells =3D <1>; + clocks =3D <&cpu_clk>, <&ddr_clk>, <&sys_clk>; + clock-names =3D "cpu", "ddr", "sys"; + reg =3D <0xe00c00a8 0x38>, <0xe00c02cc 0x4>; + }; + oic: oic@e00c0120 { compatible =3D "microchip,lan966x-oic"; #interrupt-cells =3D <2>; --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE9303F2103; Wed, 25 Mar 2026 14:43:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449840; cv=none; b=fF8INHQB3VpnRIEx82H6ZTAlMXuBjZ5jJ8JOOG0c6f12dYBQazGLNeRZyvPOoLJ1Xbin+XZMA5HJefJ6C5/5B7Kad+oBEiJUVdjSLBibdBeHshuJ1tKcebAx0Y3jc8MyqL0rJQOhdF1MBVvJ5xjYhze4ttANeUoe+a6TVcSmuxE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449840; c=relaxed/simple; bh=SsD09xOCQ2lgSQj/n0w/ZoUczDXfNByivtOBGWXEmt8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TlLUw6/pZzIanOix1Bo0Cu9P12G7JfLbWJjZjMQY1QFEnXuGzEZngFaMnFlB5QrSc34EyE//HK1wHHV2jNDjuwe7XftgXHqxhg0JznbuPgwddhOFbD1TGNVlCqpwq5+7cpS0q5N03aF18PGmtx5j5ZLgs8UABWrPg3RHy/KsCxA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=Ue2vm7uw; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="Ue2vm7uw" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 607E6C580B1; Wed, 25 Mar 2026 14:44:25 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 97A89601E2; Wed, 25 Mar 2026 14:43:57 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id B57A110451A7C; Wed, 25 Mar 2026 15:43:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449834; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=Q13pHLbTNQd/5Auc3jF+bDsxwBJ2OfItINqgqY+fL/8=; b=Ue2vm7uwkTRBp1NcWE3tdKs4TAiyHE+L3oB+LWtyTZ4MQyeOSrQP5yGBlls4jz6KpV+Z82 3zAymGBb4rq7FkQyqJ68BonJDYlM25/sCFhX7mvYLLkV/3fo6OikqnDnt2ATY6q2tAQ6EK YPKyLLGOlAfrhNpspVQUHb0X70qBUkZ29w20sHEabl8acyAal0mvx2apRrARq9rSveJVfN gJjd7CKy+/jPdKJ7/QBKk7zfq54MQrQZJqxyVh/LpeCIaRgBt8Fj6fx/UeJZYNJuud3GYy gC+1W5Coa9js9KFNP6ZsXRXTgQVCyU4y04Ry+pYul8fxEq4DCB67xmq61Zn1+A== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 26/27] misc: lan966x_pci: Sort the drivers list in Kconfig help Date: Wed, 25 Mar 2026 15:35:53 +0100 Message-ID: <20260325143555.451852-27-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" The LAN966X Kconfig help section mentions drivers related to devices. Sort this list alphabetically. Signed-off-by: Herve Codina --- drivers/misc/Kconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 5cc79d1517af..9c285a7c88ba 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -635,13 +635,13 @@ config MCHP_LAN966X_PCI Even if this driver does not depend on those other drivers, in order to have a fully functional board, the following drivers are needed: - fixed-clock (COMMON_CLK) - - lan966x-oic (LAN966X_OIC) - lan966x-cpu-syscon (MFD_SYSCON) - - lan966x-switch-reset (RESET_MCHP_SPARX5) + - lan966x-miim (MDIO_MSCC_MIIM) + - lan966x-oic (LAN966X_OIC) - lan966x-pinctrl (PINCTRL_OCELOT) - lan966x-serdes (PHY_LAN966X_SERDES) - - lan966x-miim (MDIO_MSCC_MIIM) - lan966x-switch (LAN966X_SWITCH) + - lan966x-switch-reset (RESET_MCHP_SPARX5) =20 source "drivers/misc/c2port/Kconfig" source "drivers/misc/eeprom/Kconfig" --=20 2.53.0 From nobody Fri Apr 3 01:28:29 2026 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 657CD3E315D; Wed, 25 Mar 2026 14:44:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449857; cv=none; b=NaMmfr6R38m2MYYdjYBQuL+RGLQXMmUfJnAlDtiyyp1CDIOWszWiOdCYqAQLbjR05WhnIz0o8vmd4iPVP0FAfUXXBzX2dW6paPJIJWuaFI4IPNk1KIVnXpCGjGQEnSzZs92EyEsCdTZrEUv+t/1aF778KEq7rFL70wqZCgtmS0A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774449857; c=relaxed/simple; bh=jT14jpW+74aFxWT5k0JsiKiyPP15AQVRZS7/5fdgNS0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pwxEeCaP+ai/eI1w8dxCgsbmo+yN/Y6FMQedj71gHARqo0JqKkOBplORWasMSSVe+I7bGc3U28tNPtBeHqOn8gQjQ2P6keKlm3iaUWVTACY9Ax+bvtm0zwJrvgqJasXsrdld3OIhIgGK74usQNUWu3OyQp0P/b3ybqkuE3RZ8sM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=gqvjBLpm; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="gqvjBLpm" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 4AF2F1A2F95; Wed, 25 Mar 2026 14:44:15 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 217C9601FA; Wed, 25 Mar 2026 14:44:15 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 56D7D10451522; Wed, 25 Mar 2026 15:43:55 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1774449852; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=JD+Fs5XfMyLydBRoehNihG/5lsm5NM0S4zMf8NGpirs=; b=gqvjBLpmkSLJAYbmDeGzZRLD9Ccx0kGJ+DN1N+YpWxaW5rwGSimaQrzjJDOYlV9EYSCJXC EGclYReSW/RNCSO1Hu4WTUKD57Ziz1RKr8cPgpsfGmAP4WEPw+vgCwWkjKY9MSUY9LEVJ5 6tZHX14Ux3GOzP2naksiasYRWY6SGCxOeInkkhKHnjF3KzqTlDE/RonHW77l2feenMrKtZ cSTYd0V7ODBlSM4QX1RMj5id3x2Ob313sCSnE3Hd+xGsT3juXCzJcIYBFohtcxaPyYLz+X eKq3F87xw+izeQvuGGtry4ygCvsiMBpIw+2Bl/K7VPxnw+SA0SbnFtvGb6ObSA== From: Herve Codina To: Andrew Lunn , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Kalle Niemi , Matti Vaittinen , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Michael Turquette , Stephen Boyd , Andi Shyti , Wolfram Sang , Peter Rosin , Arnd Bergmann , Herve Codina , Saravana Kannan , Bjorn Helgaas , Charles Keepax , Richard Fitzgerald , David Rhodes , Linus Walleij , Ulf Hansson , Mark Brown , Len Brown , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Shawn Guo Cc: Wolfram Sang , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, linux-sound@vger.kernel.org, patches@opensource.cirrus.com, linux-gpio@vger.kernel.org, linux-pm@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org, Allan Nielsen , Horatiu Vultur , Steen Hegelund , Luca Ceresoli , Thomas Petazzoni Subject: [PATCH v6 27/27] misc: lan966x_pci: Add drivers needed to support SFPs in Kconfig help Date: Wed, 25 Mar 2026 15:35:54 +0100 Message-ID: <20260325143555.451852-28-herve.codina@bootlin.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260325143555.451852-1-herve.codina@bootlin.com> References: <20260325143555.451852-1-herve.codina@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Last-TLS-Session-Version: TLSv1.3 Content-Type: text/plain; charset="utf-8" Recently, new device-tree nodes were added in the overlay to add support for SFPs on LAN966x PCI device. The LAN966X Kconfig help section mentions drivers related to devices added based on the overlay description. Add drivers related to devices described by those new nodes in the already existing driver list. Signed-off-by: Herve Codina --- drivers/misc/Kconfig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 9c285a7c88ba..69825dc0f85e 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -635,13 +635,18 @@ config MCHP_LAN966X_PCI Even if this driver does not depend on those other drivers, in order to have a fully functional board, the following drivers are needed: - fixed-clock (COMMON_CLK) + - i2c-mux-pinctrl (I2C_MUX_PINCTRL) - lan966x-cpu-syscon (MFD_SYSCON) + - lan966x-gck (COMMON_CLK_LAN966X) - lan966x-miim (MDIO_MSCC_MIIM) - lan966x-oic (LAN966X_OIC) - lan966x-pinctrl (PINCTRL_OCELOT) - lan966x-serdes (PHY_LAN966X_SERDES) - lan966x-switch (LAN966X_SWITCH) - lan966x-switch-reset (RESET_MCHP_SPARX5) + - sam9x60-i2c (I2C_AT91) + - sama5d2-flexcom (MFD_ATMEL_FLEXCOM) + - sfp (SFP) =20 source "drivers/misc/c2port/Kconfig" source "drivers/misc/eeprom/Kconfig" --=20 2.53.0