net: phy: mscc: use mdiobus_get_phy()
authorMichael Walle <michael@walle.cc>
Sun, 19 Apr 2020 08:27:57 +0000 (10:27 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 Apr 2020 19:07:22 +0000 (12:07 -0700)
Don't use internal knowledge of the mdio bus core, instead use
mdiobus_get_phy() which does the same thing.

Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/mscc/mscc_main.c

index acddef7..5391acd 100644 (file)
@@ -1292,7 +1292,7 @@ out:
  */
 static bool vsc8584_is_pkg_init(struct phy_device *phydev, bool reversed)
 {
-       struct mdio_device **map = phydev->mdio.bus->mdio_map;
+       struct mii_bus *bus = phydev->mdio.bus;
        struct vsc8531_private *vsc8531;
        struct phy_device *phy;
        int i, addr;
@@ -1306,11 +1306,10 @@ static bool vsc8584_is_pkg_init(struct phy_device *phydev, bool reversed)
                else
                        addr = vsc8531->base_addr + i;
 
-               if (!map[addr])
+               phy = mdiobus_get_phy(bus, addr);
+               if (!phy)
                        continue;
 
-               phy = container_of(map[addr], struct phy_device, mdio);
-
                if ((phy->phy_id & phydev->drv->phy_id_mask) !=
                    (phydev->drv->phy_id & phydev->drv->phy_id_mask))
                        continue;