mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-26 14:17:26 -04:00
net: add helpers to resolve negotiated flow control
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 <rmk+kernel@armlinux.org.uk> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8062e2333f
commit
a87ae8a963
5 changed files with 79 additions and 1 deletions
|
@ -1257,6 +1257,9 @@ void phy_set_sym_pause(struct phy_device *phydev, bool rx, bool tx,
|
|||
void phy_set_asym_pause(struct phy_device *phydev, bool rx, bool tx);
|
||||
bool phy_validate_pause(struct phy_device *phydev,
|
||||
struct ethtool_pauseparam *pp);
|
||||
void phy_get_pause(struct phy_device *phydev, bool *tx_pause, bool *rx_pause);
|
||||
void phy_resolve_pause(unsigned long *local_adv, unsigned long *partner_adv,
|
||||
bool *tx_pause, bool *rx_pause);
|
||||
|
||||
int phy_register_fixup(const char *bus_id, u32 phy_uid, u32 phy_uid_mask,
|
||||
int (*run)(struct phy_device *));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue