This patch makes mdiobus_scan() to try on C45 first as C45 can access all devices. This allows the function available for the PHY that supports for both C45 and C22.
Reviewed-by: Voon Weifeng <weifeng.v...@intel.com> Reviewed-by: Ong Boon Leong <boon.leong....@intel.com> Signed-off-by: Wong Vee Khee <vee.khee.w...@intel.com> --- drivers/net/phy/mdio_bus.c | 5 +++++ include/linux/phy.h | 1 + 2 files changed, 6 insertions(+) diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c index 56094dd6bf26..372d0d088f7e 100644 --- a/drivers/net/phy/mdio_bus.c +++ b/drivers/net/phy/mdio_bus.c @@ -691,6 +691,11 @@ struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr) if (IS_ERR(phydev)) phydev = get_phy_device(bus, addr, true); break; + case MDIOBUS_C45_C22: + phydev = get_phy_device(bus, addr, true); + if (IS_ERR(phydev)) + phydev = get_phy_device(bus, addr, false); + break; } if (IS_ERR(phydev)) diff --git a/include/linux/phy.h b/include/linux/phy.h index 189bc9881ea6..73d9be2c00f4 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -360,6 +360,7 @@ struct mii_bus { MDIOBUS_C22, MDIOBUS_C45, MDIOBUS_C22_C45, + MDIOBUS_C45_C22, } probe_capabilities; /** @shared_lock: protect access to the shared element */ -- 2.17.0