• Marek Behún's avatar
    net: dsa: mv88e6xxx: Link in pcs_get_state() if AN is bypassed · ede359d8
    Marek Behún authored
    Function mv88e6xxx_serdes_pcs_get_state() currently does not report link
    up if AN is enabled, Link bit is set, but Speed and Duplex Resolved bit
    is not set, which testing shows is the case for when auto-negotiation
    was bypassed (we have AN enabled but link partner does not).
    
    An example of such link partner is Marvell 88X3310 PHY, when put into
    the mode where host interface changes between 10gbase-r, 5gbase-r,
    2500base-x and sgmii according to copper speed. The 88X3310 does not
    enable AN in 2500base-x, and so SerDes on mv88e6xxx currently does not
    link with it.
    
    Fix this.
    
    Fixes: a5a6858b ("net: dsa: mv88e6xxx: extend phylink to Serdes PHYs")
    Signed-off-by: default avatarMarek Behún <kabel@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ede359d8
serdes.c 38.6 KB