• Maxime Chevallier's avatar
    net: dsa: mv88e6xxx: power serdes on/off for 10G interfaces on 6390X · d235c48b
    Maxime Chevallier authored
    Upon setting the cmode on 6390 and 6390X, the associated serdes
    interfaces must be powered off/on.
    
    Both 6390X and 6390 share code to do so, but it currently uses the 6390
    specific helper mv88e6390_serdes_power() to disable and enable the
    serdes interface.
    
    This call will fail silently on 6390X when trying so set a 10G interface
    such as XAUI or RXAUI, since mv88e6390_serdes_power() internally grabs
    the lane number based on modes supported by the 6390, and returns 0 when
    getting -ENODEV as a lane number.
    
    Using mv88e6390x_serdes_power() should be safe here, since we explicitly
    rule-out all ports but the 9 and 10, and because modes supported by 6390
    ports 9 and 10 are a subset of those supported on 6390X.
    
    This was tested on 6390X using RXAUI mode.
    
    Fixes: 364e9d77 ("net: dsa: mv88e6xxx: Power on/off SERDES on cmode change")
    Signed-off-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d235c48b
port.c 26.5 KB