The commit "generic: ar8216: add sanity check to ar8216_probe" (774da6c7a40320a320b28d71291c0e61fcf7bc8a) stated that PHY IDs should be checked at address 0-4. However, the PHY 4 was never check by the for loop... And I can't find any documents about why this check should be performed the way it is currently?!
Signed-off-by: Christian Lamparter <chunk...@gmail.com> --- .../linux/generic/files/drivers/net/phy/ar8216.c | 23 ---------------------- 1 file changed, 23 deletions(-) diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c index 70f4774..57130b1 100644 --- a/target/linux/generic/files/drivers/net/phy/ar8216.c +++ b/target/linux/generic/files/drivers/net/phy/ar8216.c @@ -2110,26 +2110,6 @@ ar8xxx_phy_match(u32 phy_id) return false; } -static bool -ar8xxx_is_possible(struct mii_bus *bus) -{ - unsigned i; - - for (i = 0; i < 4; i++) { - u32 phy_id; - - phy_id = mdiobus_read(bus, i, MII_PHYSID1) << 16; - phy_id |= mdiobus_read(bus, i, MII_PHYSID2); - if (!ar8xxx_phy_match(phy_id)) { - pr_debug("ar8xxx: unknown PHY at %s:%02x id:%08x\n", - dev_name(&bus->dev), i, phy_id); - return false; - } - } - - return true; -} - static int ar8xxx_phy_probe(struct phy_device *phydev) { @@ -2141,9 +2121,6 @@ ar8xxx_phy_probe(struct phy_device *phydev) if (phydev->addr != 0 && phydev->addr != 4) return -ENODEV; - if (!ar8xxx_is_possible(phydev->bus)) - return -ENODEV; - mutex_lock(&ar8xxx_dev_list_lock); list_for_each_entry(priv, &ar8xxx_dev_list, list) if (priv->mii_bus == phydev->bus) -- 2.9.3 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev