diff mbox series

[01/13] net: fsl_enetc: Introduce enetc_is_ls1028a()

Message ID 20250116040449.306098-1-marex@denx.de
State Accepted
Commit 6ee57e5f0f7cd2f736f9f87e453695174d790cb1
Delegated to: Fabio Estevam
Headers show
Series [01/13] net: fsl_enetc: Introduce enetc_is_ls1028a() | expand

Commit Message

Marek Vasut Jan. 16, 2025, 4:03 a.m. UTC
Introduce accurate test for LS1028A compatibility based both on
IS_ENABLED(CONFIG_ARCH_LS1028A) and PCI vendor ID. This is done
in preparation for adding ENETCv4 support, which has a different
PCI vendor ID.

Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Alice Guo <alice.guo@nxp.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jerome Forissier <jerome.forissier@linaro.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Markus Gothe <markus.gothe@genexis.eu>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Ramon Fried <rfried.dev@gmail.com>
Cc: Robert Marko <robert.marko@sartura.hr>
Cc: Romain Naour <romain.naour@smile.fr>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tim Harvey <tharvey@gateworks.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Ye Li <ye.li@nxp.com>
Cc: u-boot@lists.denx.de
---
 drivers/net/fsl_enetc.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Comments

Fabio Estevam Jan. 20, 2025, 1:45 p.m. UTC | #1
On Thu, Jan 16, 2025 at 1:05 AM Marek Vasut <marex@denx.de> wrote:
>
> Introduce accurate test for LS1028A compatibility based both on
> IS_ENABLED(CONFIG_ARCH_LS1028A) and PCI vendor ID. This is done
> in preparation for adding ENETCv4 support, which has a different
> PCI vendor ID.
>
> Signed-off-by: Marek Vasut <marex@denx.de>

Series applied, thanks.
diff mbox series

Patch

diff --git a/drivers/net/fsl_enetc.c b/drivers/net/fsl_enetc.c
index a6b0bafc8c6..d1414167723 100644
--- a/drivers/net/fsl_enetc.c
+++ b/drivers/net/fsl_enetc.c
@@ -23,6 +23,15 @@ 
 
 static int enetc_remove(struct udevice *dev);
 
+static int enetc_is_ls1028a(struct udevice *dev)
+{
+	struct pci_child_plat *pplat = dev_get_parent_plat(dev);
+
+	/* Test whether this is LS1028A ENETC. This may be optimized out. */
+	return IS_ENABLED(CONFIG_ARCH_LS1028A) &&
+	       pplat->vendor == PCI_VENDOR_ID_FREESCALE;
+}
+
 /*
  * sets the MAC address in IERB registers, this setting is persistent and
  * carried over to Linux.
@@ -416,7 +425,7 @@  static int enetc_write_hwaddr(struct udevice *dev)
 	struct enetc_priv *priv = dev_get_priv(dev);
 	u8 *addr = plat->enetaddr;
 
-	if (IS_ENABLED(CONFIG_ARCH_LS1028A))
+	if (enetc_is_ls1028a(dev))
 		return enetc_ls1028a_write_hwaddr(dev);
 
 	u16 lower = *(const u16 *)(addr + 4);