@@ -2581,6 +2581,7 @@ static const struct mii_phy_ops emac_dt_mdio_phy_ops = {
2581
2581
static int emac_dt_mdio_probe (struct emac_instance * dev )
2582
2582
{
2583
2583
struct device_node * mii_np ;
2584
+ struct mii_bus * bus ;
2584
2585
int res ;
2585
2586
2586
2587
mii_np = of_get_child_by_name (dev -> ofdev -> dev .of_node , "mdio" );
@@ -2594,23 +2595,23 @@ static int emac_dt_mdio_probe(struct emac_instance *dev)
2594
2595
goto put_node ;
2595
2596
}
2596
2597
2597
- dev -> mii_bus = devm_mdiobus_alloc (& dev -> ofdev -> dev );
2598
- if (!dev -> mii_bus ) {
2598
+ bus = devm_mdiobus_alloc (& dev -> ofdev -> dev );
2599
+ if (!bus ) {
2599
2600
res = - ENOMEM ;
2600
2601
goto put_node ;
2601
2602
}
2602
2603
2603
- dev -> mii_bus -> priv = dev -> ndev ;
2604
- dev -> mii_bus -> parent = dev -> ndev -> dev .parent ;
2605
- dev -> mii_bus -> name = "emac_mdio" ;
2606
- dev -> mii_bus -> read = & emac_mii_bus_read ;
2607
- dev -> mii_bus -> write = & emac_mii_bus_write ;
2608
- dev -> mii_bus -> reset = & emac_mii_bus_reset ;
2609
- snprintf (dev -> mii_bus -> id , MII_BUS_ID_SIZE , "%s" , dev -> ofdev -> name );
2610
- res = of_mdiobus_register ( dev -> mii_bus , mii_np );
2604
+ bus -> priv = dev -> ndev ;
2605
+ bus -> parent = dev -> ndev -> dev .parent ;
2606
+ bus -> name = "emac_mdio" ;
2607
+ bus -> read = & emac_mii_bus_read ;
2608
+ bus -> write = & emac_mii_bus_write ;
2609
+ bus -> reset = & emac_mii_bus_reset ;
2610
+ snprintf (bus -> id , MII_BUS_ID_SIZE , "%s" , dev -> ofdev -> name );
2611
+ res = devm_of_mdiobus_register ( & dev -> ofdev -> dev , bus , mii_np );
2611
2612
if (res ) {
2612
2613
dev_err (& dev -> ofdev -> dev , "cannot register MDIO bus %s (%d)" ,
2613
- dev -> mii_bus -> name , res );
2614
+ bus -> name , res );
2614
2615
}
2615
2616
2616
2617
put_node :
@@ -2656,8 +2657,6 @@ static int emac_dt_phy_probe(struct emac_instance *dev)
2656
2657
res = emac_dt_mdio_probe (dev );
2657
2658
if (!res ) {
2658
2659
res = emac_dt_phy_connect (dev , phy_handle );
2659
- if (res )
2660
- mdiobus_unregister (dev -> mii_bus );
2661
2660
}
2662
2661
}
2663
2662
@@ -2697,10 +2696,8 @@ static int emac_init_phy(struct emac_instance *dev)
2697
2696
2698
2697
res = of_phy_register_fixed_link (np );
2699
2698
dev -> phy_dev = of_phy_find_device (np );
2700
- if (res || !dev -> phy_dev ) {
2701
- mdiobus_unregister (dev -> mii_bus );
2699
+ if (res || !dev -> phy_dev )
2702
2700
return res ? res : - EINVAL ;
2703
- }
2704
2701
emac_adjust_link (dev -> ndev );
2705
2702
put_device (& dev -> phy_dev -> mdio .dev );
2706
2703
}
@@ -3265,9 +3262,6 @@ static void emac_remove(struct platform_device *ofdev)
3265
3262
if (dev -> phy_dev )
3266
3263
phy_disconnect (dev -> phy_dev );
3267
3264
3268
- if (dev -> mii_bus )
3269
- mdiobus_unregister (dev -> mii_bus );
3270
-
3271
3265
busy_phy_map &= ~(1 << dev -> phy .address );
3272
3266
DBG (dev , "busy_phy_map now %#x" NL , busy_phy_map );
3273
3267
0 commit comments