|
@@ -295,7 +295,7 @@ err_phy:
|
|
|
static int mtk_mdio_init(struct mtk_eth *eth)
|
|
|
{
|
|
|
struct device_node *mii_np;
|
|
|
- int err;
|
|
|
+ int ret;
|
|
|
|
|
|
mii_np = of_get_child_by_name(eth->dev->of_node, "mdio-bus");
|
|
|
if (!mii_np) {
|
|
@@ -304,13 +304,13 @@ static int mtk_mdio_init(struct mtk_eth *eth)
|
|
|
}
|
|
|
|
|
|
if (!of_device_is_available(mii_np)) {
|
|
|
- err = 0;
|
|
|
+ ret = 0;
|
|
|
goto err_put_node;
|
|
|
}
|
|
|
|
|
|
- eth->mii_bus = mdiobus_alloc();
|
|
|
+ eth->mii_bus = devm_mdiobus_alloc(eth->dev);
|
|
|
if (!eth->mii_bus) {
|
|
|
- err = -ENOMEM;
|
|
|
+ ret = -ENOMEM;
|
|
|
goto err_put_node;
|
|
|
}
|
|
|
|
|
@@ -321,20 +321,11 @@ static int mtk_mdio_init(struct mtk_eth *eth)
|
|
|
eth->mii_bus->parent = eth->dev;
|
|
|
|
|
|
snprintf(eth->mii_bus->id, MII_BUS_ID_SIZE, "%s", mii_np->name);
|
|
|
- err = of_mdiobus_register(eth->mii_bus, mii_np);
|
|
|
- if (err)
|
|
|
- goto err_free_bus;
|
|
|
- of_node_put(mii_np);
|
|
|
-
|
|
|
- return 0;
|
|
|
-
|
|
|
-err_free_bus:
|
|
|
- mdiobus_free(eth->mii_bus);
|
|
|
+ ret = of_mdiobus_register(eth->mii_bus, mii_np);
|
|
|
|
|
|
err_put_node:
|
|
|
of_node_put(mii_np);
|
|
|
- eth->mii_bus = NULL;
|
|
|
- return err;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
static void mtk_mdio_cleanup(struct mtk_eth *eth)
|
|
@@ -343,8 +334,6 @@ static void mtk_mdio_cleanup(struct mtk_eth *eth)
|
|
|
return;
|
|
|
|
|
|
mdiobus_unregister(eth->mii_bus);
|
|
|
- of_node_put(eth->mii_bus->dev.of_node);
|
|
|
- mdiobus_free(eth->mii_bus);
|
|
|
}
|
|
|
|
|
|
static inline void mtk_irq_disable(struct mtk_eth *eth, u32 mask)
|