• Russell King's avatar
    net: phylink: improve initial mac configuration · 97fec51f
    Russell King authored
    Improve the initial MAC configuration so we get a configuration which
    more represents the final operating mode, in particular with respect
    to the flow control settings.
    
    We do this by:
    1) more fully initialising our phy state, so we can use this as the
       initial state for PHY based connections.
    2) reading the fixed link state.
    3) ensuring that in-band mode has sane pause settings for SGMII vs
       802.3z negotiation modes.
    
    In all three cases, we ensure that state->link is false, just in case
    any MAC drivers have other ideas by mis-using this member, and we also
    take account of manual pause mode configuration at this point.
    
    This avoids MLO_PAUSE_AN being seen in mac_config() when operating in
    PHY, fixed mode or inband SGMII mode, thereby giving cleaner semantics
    to the pause flags.  As a result of this, the pause flags now indicate
    in a mode-independent way what is required from a mac_config()
    implementation.
    Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    97fec51f
phylink.c 54.1 KB