[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20220420124053.853891-6-kai.heng.feng@canonical.com>
Date: Wed, 20 Apr 2022 20:40:52 +0800
From: Kai-Heng Feng <kai.heng.feng@...onical.com>
To: andrew@...n.ch, hkallweit1@...il.com, linux@...linux.org.uk,
peppe.cavallaro@...com, alexandre.torgue@...s.st.com,
joabreu@...opsys.com, davem@...emloft.net, kuba@...nel.org,
pabeni@...hat.com
Cc: Kai-Heng Feng <kai.heng.feng@...onical.com>,
Maxime Coquelin <mcoquelin.stm32@...il.com>,
netdev@...r.kernel.org, linux-stm32@...md-mailman.stormreply.com,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: [PATCH 5/5] net: stmmac: Use acpi_mdiobus_register() for ACPI based system
Child nodes of stmmac ACPI node may have additional properties that the
PHY layer can use.
To achieve that, use acpi_mdiobus_register() to find PHY nodes
references via "phy-handle", so the properties of PHY nodes can be used
by the PHY layer.
Signed-off-by: Kai-Heng Feng <kai.heng.feng@...onical.com>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
index a5d150c5f3d8c..37cebd8f2ec5c 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
@@ -10,6 +10,8 @@
Maintainer: Giuseppe Cavallaro <peppe.cavallaro@...com>
*******************************************************************************/
+#include <linux/acpi.h>
+#include <linux/acpi_mdio.h>
#include <linux/gpio/consumer.h>
#include <linux/io.h>
#include <linux/iopoll.h>
@@ -445,6 +447,7 @@ int stmmac_mdio_register(struct net_device *ndev)
struct stmmac_mdio_bus_data *mdio_bus_data = priv->plat->mdio_bus_data;
struct device_node *mdio_node = priv->plat->mdio_node;
struct device *dev = ndev->dev.parent;
+ struct fwnode_handle *fwnode = dev->fwnode;
int addr, found, max_addr;
if (!mdio_bus_data)
@@ -488,7 +491,10 @@ int stmmac_mdio_register(struct net_device *ndev)
new_bus->phy_mask = mdio_bus_data->phy_mask;
new_bus->parent = priv->device;
- err = of_mdiobus_register(new_bus, mdio_node);
+ if (is_acpi_node(fwnode))
+ err = acpi_mdiobus_register(new_bus, fwnode);
+ else
+ err = of_mdiobus_register(new_bus, mdio_node);
if (err != 0) {
dev_err(dev, "Cannot register the MDIO bus\n");
goto bus_register_fail;
--
2.34.1
Powered by blists - more mailing lists