• Marek Behún's avatar
    net: dsa: mv88e6xxx: check for mode change in port_setup_mac · 927441ad
    Marek Behún authored
    The mv88e6xxx_port_setup_mac checks if the requested MAC settings are
    different from the current ones, and if not, does nothing (since chaning
    them requires putting the link down).
    
    In this check it only looks if the triplet [link, speed, duplex] is
    being changed.
    
    This patch adds support to also check if the mode parameter (of type
    phy_interface_t) is requested to be changed. The current mode is
    computed by the ->port_link_state() method, and if it is different from
    PHY_INTERFACE_MODE_NA, we check for equality with the requested mode.
    
    In the implementations of the mv88e6250_port_link_state() method we set
    the current mode to PHY_INTERFACE_MODE_NA - so the code does not check
    for mode change on 6250.
    
    In the mv88e6352_port_link_state() method, we use the cached cmode of
    the port to determine the mode as phy_interface_t (and if it is not
    enough, eg. for RGMII, we also look at the port control register for
    RX/TX timings).
    Signed-off-by: default avatarMarek Behún <marek.behun@nic.cz>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    927441ad
port.h 15.7 KB