17 Feb, 2020

2 commits

  • Add a linkmode helper to set the flow control advertisement in an
    ethtool linkmode mask according to the tx/rx capabilities. This
    implementation is moved from phylib, and documented with an
    analysis of its shortcomings.

    Signed-off-by: Russell King
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Russell King
     
  • Add a couple of helpers to resolve negotiated flow control. Two helpers
    are provided:

    - linkmode_resolve_pause() which takes the link partner and local
    advertisements, and decodes whether we should enable TX or RX pause
    at the MAC. This is useful outside of phylib, e.g. in phylink.
    - phy_get_pause(), which returns the TX/RX enablement status for the
    current negotiation results of the PHY.

    This allows us to centralise the flow control resolution, rather than
    spreading it around.

    Signed-off-by: Russell King
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Russell King