mirror of
https://github.com/torvalds/linux.git
synced 2025-01-01 15:51:46 +00:00
net: mii: convert mii_lpa_to_ethtool_lpa_x() to linkmode variant
Add a LPA to linkmode decoder for 1000BASE-X protocols; this decoder only provides the modify semantics similar to other such decoders. This replaces the unused mii_lpa_to_ethtool_lpa_x() helper. 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
5d0ab06b63
commit
f655418785
@ -354,24 +354,6 @@ static inline u32 mii_adv_to_ethtool_adv_x(u32 adv)
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* mii_lpa_to_ethtool_lpa_x
|
||||
* @adv: value of the MII_LPA register
|
||||
*
|
||||
* A small helper function that translates MII_LPA
|
||||
* bits, when in 1000Base-X mode, to ethtool
|
||||
* LP advertisement settings.
|
||||
*/
|
||||
static inline u32 mii_lpa_to_ethtool_lpa_x(u32 lpa)
|
||||
{
|
||||
u32 result = 0;
|
||||
|
||||
if (lpa & LPA_LPACK)
|
||||
result |= ADVERTISED_Autoneg;
|
||||
|
||||
return result | mii_adv_to_ethtool_adv_x(lpa);
|
||||
}
|
||||
|
||||
/**
|
||||
* mii_lpa_mod_linkmode_adv_sgmii
|
||||
* @lp_advertising: pointer to destination link mode.
|
||||
@ -535,6 +517,25 @@ static inline u32 linkmode_adv_to_lcl_adv_t(unsigned long *advertising)
|
||||
return lcl_adv;
|
||||
}
|
||||
|
||||
/**
|
||||
* mii_lpa_mod_linkmode_x - decode the link partner's config_reg to linkmodes
|
||||
* @linkmodes: link modes array
|
||||
* @lpa: config_reg word from link partner
|
||||
* @fd_bit: link mode for 1000XFULL bit
|
||||
*/
|
||||
static inline void mii_lpa_mod_linkmode_x(unsigned long *linkmodes, u16 lpa,
|
||||
int fd_bit)
|
||||
{
|
||||
linkmode_mod_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, linkmodes,
|
||||
lpa & LPA_LPACK);
|
||||
linkmode_mod_bit(ETHTOOL_LINK_MODE_Pause_BIT, linkmodes,
|
||||
lpa & LPA_1000XPAUSE);
|
||||
linkmode_mod_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, linkmodes,
|
||||
lpa & LPA_1000XPAUSE_ASYM);
|
||||
linkmode_mod_bit(fd_bit, linkmodes,
|
||||
lpa & LPA_1000XFULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* mii_advertise_flowctrl - get flow control advertisement flags
|
||||
* @cap: Flow control capabilities (FLOW_CTRL_RX, FLOW_CTRL_TX or both)
|
||||
|
Loading…
Reference in New Issue
Block a user