Skip to content

Commit a9f28eb

Browse files
Russell Kingdavem330
authored andcommitted
net: mii: add linkmode_adv_to_mii_adv_x()
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 <[email protected]> Reviewed-by: Andrew Lunn <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent f655418 commit a9f28eb

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

include/linux/mii.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,26 @@ static inline void mii_lpa_mod_linkmode_x(unsigned long *linkmodes, u16 lpa,
536536
lpa & LPA_1000XFULL);
537537
}
538538

539+
/**
540+
* linkmode_adv_to_mii_adv_x - encode a linkmode to config_reg
541+
* @linkmodes: linkmodes
542+
* @fd_bit: full duplex bit
543+
*/
544+
static inline u16 linkmode_adv_to_mii_adv_x(const unsigned long *linkmodes,
545+
int fd_bit)
546+
{
547+
u16 adv = 0;
548+
549+
if (linkmode_test_bit(fd_bit, linkmodes))
550+
adv |= ADVERTISE_1000XFULL;
551+
if (linkmode_test_bit(ETHTOOL_LINK_MODE_Pause_BIT, linkmodes))
552+
adv |= ADVERTISE_1000XPAUSE;
553+
if (linkmode_test_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, linkmodes))
554+
adv |= ADVERTISE_1000XPSE_ASYM;
555+
556+
return adv;
557+
}
558+
539559
/**
540560
* mii_advertise_flowctrl - get flow control advertisement flags
541561
* @cap: Flow control capabilities (FLOW_CTRL_RX, FLOW_CTRL_TX or both)

0 commit comments

Comments
 (0)