@@ -1323,22 +1323,15 @@ static int owl_emac_mdio_init(struct net_device *netdev)
struct owl_emac_priv *priv = netdev_priv(netdev);
struct device *dev = owl_emac_get_dev(priv);
struct device_node *mdio_node;
- int ret;
+ struct device_node *mdio_node _free(device_node) =
+ of_get_available_child_by_name(dev->of_node, "mdio");
- mdio_node = of_get_child_by_name(dev->of_node, "mdio");
if (!mdio_node)
return -ENODEV;
- if (!of_device_is_available(mdio_node)) {
- ret = -ENODEV;
- goto err_put_node;
- }
-
priv->mii = devm_mdiobus_alloc(dev);
- if (!priv->mii) {
- ret = -ENOMEM;
- goto err_put_node;
- }
+ if (!priv->mii)
+ return -ENOMEM;
snprintf(priv->mii->id, MII_BUS_ID_SIZE, "%s", dev_name(dev));
priv->mii->name = "owl-emac-mdio";
@@ -1348,11 +1341,7 @@ static int owl_emac_mdio_init(struct net_device *netdev)
priv->mii->phy_mask = ~0; /* Mask out all PHYs from auto probing. */
priv->mii->priv = priv;
- ret = devm_of_mdiobus_register(dev, priv->mii, mdio_node);
-
-err_put_node:
- of_node_put(mdio_node);
- return ret;
+ return devm_of_mdiobus_register(dev, priv->mii, mdio_node);
}
static int owl_emac_phy_init(struct net_device *netdev)
Use the helper of_get_available_child_by_name() to simplify owl_emac_mdio_init(). Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> --- This patch is only compile tested and depend upon[1] [1] https://lore.kernel.org/all/20250201093126.7322-1-biju.das.jz@bp.renesas.com/ --- drivers/net/ethernet/actions/owl-emac.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-)