Skip to content

Commit

Permalink
net: mii: add linkmode_adv_to_mii_adv_x()
Browse files Browse the repository at this point in the history
Add a helper to convert a linkmode advertisement to a clause 37
advertisement value for 1000base-x and 2500base-x.

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>
  • Loading branch information
Russell King authored and David S. Miller committed Mar 16, 2020
1 parent f655418 commit a9f28eb
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions include/linux/mii.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,26 @@ static inline void mii_lpa_mod_linkmode_x(unsigned long *linkmodes, u16 lpa,
lpa & LPA_1000XFULL);
}

/**
* linkmode_adv_to_mii_adv_x - encode a linkmode to config_reg
* @linkmodes: linkmodes
* @fd_bit: full duplex bit
*/
static inline u16 linkmode_adv_to_mii_adv_x(const unsigned long *linkmodes,
int fd_bit)
{
u16 adv = 0;

if (linkmode_test_bit(fd_bit, linkmodes))
adv |= ADVERTISE_1000XFULL;
if (linkmode_test_bit(ETHTOOL_LINK_MODE_Pause_BIT, linkmodes))
adv |= ADVERTISE_1000XPAUSE;
if (linkmode_test_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, linkmodes))
adv |= ADVERTISE_1000XPSE_ASYM;

return adv;
}

/**
* mii_advertise_flowctrl - get flow control advertisement flags
* @cap: Flow control capabilities (FLOW_CTRL_RX, FLOW_CTRL_TX or both)
Expand Down

0 comments on commit a9f28eb

Please sign in to comment.