• Russell King's avatar
    net: phy: marvell: avoid pause mode on SGMII-to-Copper for 88e151x · 6623c0fb
    Russell King authored
    Observed on the 88e1512 in SGMII-to-Copper mode, negotiating pause
    is unreliable.  While the pause bits can be set in the advertisment
    register, they clear shortly after negotiation with a link partner
    commences irrespective of the cause of the negotiation.
    
    While these bits may be correctly conveyed to the link partner on the
    first negotiation, a subsequent negotiation (eg, due to negotiation
    restart by the link partner, or reconnection of the cable) will result
    in the link partner seeing these bits as zero, while the kernel
    believes that it has advertised pause modes.
    
    This leads to the local kernel evaluating (eg) symmetric pause mode,
    while the remote end evaluates that we have no pause mode capability.
    
    Since we can't guarantee the advertisment, disable pause mode support
    with this PHY when used in SGMII-to-Copper mode.
    
    The 88e1510 in RGMII-to-Copper mode appears to behave correctly.
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6623c0fb
marvell.c 53.3 KB