• Vladimir Oltean's avatar
    net: pcs: xpcs: also ignore phy id if it's all ones · 36641b04
    Vladimir Oltean authored
    xpcs_get_id() searches multiple MMDs for a known PHY ID, starting with
    MDIO_MMD_PCS (3). However not all integrators might have implemented
    that MMD on their MDIO bus. For example, the NXP SJA1105 and SJA1110
    switches only implement vendor-specific MMD 1 and 2.
    
    When there is nothing on an MDIO bus at a certain address, traditionally
    the bus returns 0xffff, which means that the bus remained in its default
    pull-up state for the duration of the MDIO transaction. The 0xffff value
    is widely used in drivers/net/phy/phy_device.c (see get_phy_c22_id for
    example) to denote a missing device.
    
    So it makes sense for the xpcs to ignore this value as well, and
    continue its search, eventually finding the proper PHY ID in the
    vendor-specific MMDs.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    36641b04
pcs-xpcs.c 25.9 KB