Changeset 35537


Ignore:
Timestamp:
2013-02-10T14:05:14+01:00 (5 years ago)
Author:
juhosg
Message:

generic: ar8216: add sanity check to ar8216_probe

Verify that the mdio bus has PHY devices with
a supported PHY ID at address 0-4.

Signed-off-by: Gabor Juhos <juhosg@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/files/drivers/net/phy/ar8216.c

    r35536 r35537  
    19571957} 
    19581958 
     1959static const u32 ar8xxx_phy_ids[] = { 
     1960        0x004dd033, 
     1961        0x004dd041, 
     1962        0x004dd042, 
     1963}; 
     1964 
     1965static bool 
     1966ar8xxx_phy_match(u32 phy_id) 
     1967{ 
     1968        int i; 
     1969 
     1970        for (i = 0; i < ARRAY_SIZE(ar8xxx_phy_ids); i++) 
     1971                if (phy_id == ar8xxx_phy_ids[i]) 
     1972                        return true; 
     1973 
     1974        return false; 
     1975} 
     1976 
     1977static bool 
     1978ar8xxx_is_possible(struct mii_bus *bus) 
     1979{ 
     1980        unsigned i; 
     1981 
     1982        for (i = 0; i < 4; i++) { 
     1983                u32 phy_id; 
     1984 
     1985                phy_id = mdiobus_read(bus, i, MII_PHYSID1) << 16; 
     1986                phy_id |= mdiobus_read(bus, i, MII_PHYSID2); 
     1987                if (!ar8xxx_phy_match(phy_id)) { 
     1988                        pr_debug("ar8xxx: unknown PHY at %s:%02x id:%08x\n", 
     1989                                 dev_name(&bus->dev), i, phy_id); 
     1990                        return false; 
     1991                } 
     1992        } 
     1993 
     1994        return true; 
     1995} 
     1996 
    19591997static int 
    19601998ar8216_probe(struct phy_device *pdev) 
     
    19652003        /* skip PHYs at unused adresses */ 
    19662004        if (pdev->addr != 0 && pdev->addr != 4) 
     2005                return -ENODEV; 
     2006 
     2007        if (!ar8xxx_is_possible(pdev->bus)) 
    19672008                return -ENODEV; 
    19682009 
Note: See TracChangeset for help on using the changeset viewer.