+++ /dev/null
---- a/drivers/net/phy/mdio_bus.c
-+++ b/drivers/net/phy/mdio_bus.c
-@@ -135,6 +135,9 @@ static int mdio_bus_match(struct device
- struct phy_device *phydev = to_phy_device(dev);
- struct phy_driver *phydrv = to_phy_driver(drv);
-
-+ if (phydrv->detect)
-+ return (phydrv->detect(phydev->bus, phydev->addr));
-+
- return ((phydrv->phy_id & phydrv->phy_id_mask) ==
- (phydev->phy_id & phydrv->phy_id_mask));
- }
---- a/include/linux/phy.h
-+++ b/include/linux/phy.h
-@@ -339,6 +339,11 @@ struct phy_driver {
- u32 features;
- u32 flags;
-
-+ /* Called during discovery to test if the
-+ * device can attach to the bus, even if
-+ * phy id and mask do not match */
-+ bool (*detect)(struct mii_bus *bus, int addr);
-+
- /*
- * Called to initialize the PHY,
- * including after a reset
+++ /dev/null
---- a/drivers/net/phy/mdio_bus.c
-+++ b/drivers/net/phy/mdio_bus.c
-@@ -135,6 +135,9 @@ static int mdio_bus_match(struct device
- struct phy_device *phydev = to_phy_device(dev);
- struct phy_driver *phydrv = to_phy_driver(drv);
-
-+ if (phydrv->detect)
-+ return (phydrv->detect(phydev->bus, phydev->addr));
-+
- return ((phydrv->phy_id & phydrv->phy_id_mask) ==
- (phydev->phy_id & phydrv->phy_id_mask));
- }
---- a/include/linux/phy.h
-+++ b/include/linux/phy.h
-@@ -339,6 +339,11 @@ struct phy_driver {
- u32 features;
- u32 flags;
-
-+ /* Called during discovery to test if the
-+ * device can attach to the bus, even if
-+ * phy id and mask do not match */
-+ bool (*detect)(struct mii_bus *bus, int addr);
-+
- /*
- * Called to initialize the PHY,
- * including after a reset
+++ /dev/null
---- a/drivers/net/phy/mdio_bus.c
-+++ b/drivers/net/phy/mdio_bus.c
-@@ -274,6 +274,9 @@ static int mdio_bus_match(struct device
- struct phy_device *phydev = to_phy_device(dev);
- struct phy_driver *phydrv = to_phy_driver(drv);
-
-+ if (phydrv->detect)
-+ return (phydrv->detect(phydev->bus, phydev->addr));
-+
- return ((phydrv->phy_id & phydrv->phy_id_mask) ==
- (phydev->phy_id & phydrv->phy_id_mask));
- }
---- a/include/linux/phy.h
-+++ b/include/linux/phy.h
-@@ -356,6 +356,11 @@ struct phy_driver {
- u32 features;
- u32 flags;
-
-+ /* Called during discovery to test if the
-+ * device can attach to the bus, even if
-+ * phy id and mask do not match */
-+ bool (*detect)(struct mii_bus *bus, int addr);
-+
- /*
- * Called to initialize the PHY,
- * including after a reset