net: ethtool: export conversion function between u32 and link mode
The function convert_legacy_u32_to_link_mode and convert_link_mode_to_legacy_u32 may be used outside of ethtool.c. We rename them to ethtool_convert_... and export them, so we could use them in others drivers and modules. Signed-off-by: Philippe Reynes <tremyfr@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2a2bbf1700
commit
6d62b4d5fa
@ -150,6 +150,13 @@ extern int
|
|||||||
__ethtool_get_link_ksettings(struct net_device *dev,
|
__ethtool_get_link_ksettings(struct net_device *dev,
|
||||||
struct ethtool_link_ksettings *link_ksettings);
|
struct ethtool_link_ksettings *link_ksettings);
|
||||||
|
|
||||||
|
void ethtool_convert_legacy_u32_to_link_mode(unsigned long *dst,
|
||||||
|
u32 legacy_u32);
|
||||||
|
|
||||||
|
/* return false if src had higher bits set. lower bits always updated. */
|
||||||
|
bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32,
|
||||||
|
const unsigned long *src);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct ethtool_ops - optional netdev operations
|
* struct ethtool_ops - optional netdev operations
|
||||||
* @get_settings: DEPRECATED, use %get_link_ksettings/%set_link_ksettings
|
* @get_settings: DEPRECATED, use %get_link_ksettings/%set_link_ksettings
|
||||||
|
@ -391,15 +391,17 @@ static int __ethtool_set_flags(struct net_device *dev, u32 data)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void convert_legacy_u32_to_link_mode(unsigned long *dst, u32 legacy_u32)
|
void ethtool_convert_legacy_u32_to_link_mode(unsigned long *dst,
|
||||||
|
u32 legacy_u32)
|
||||||
{
|
{
|
||||||
bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS);
|
bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS);
|
||||||
dst[0] = legacy_u32;
|
dst[0] = legacy_u32;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(ethtool_convert_legacy_u32_to_link_mode);
|
||||||
|
|
||||||
/* return false if src had higher bits set. lower bits always updated. */
|
/* return false if src had higher bits set. lower bits always updated. */
|
||||||
static bool convert_link_mode_to_legacy_u32(u32 *legacy_u32,
|
bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32,
|
||||||
const unsigned long *src)
|
const unsigned long *src)
|
||||||
{
|
{
|
||||||
bool retval = true;
|
bool retval = true;
|
||||||
|
|
||||||
@ -419,6 +421,7 @@ static bool convert_link_mode_to_legacy_u32(u32 *legacy_u32,
|
|||||||
*legacy_u32 = src[0];
|
*legacy_u32 = src[0];
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(ethtool_convert_link_mode_to_legacy_u32);
|
||||||
|
|
||||||
/* return false if legacy contained non-0 deprecated fields
|
/* return false if legacy contained non-0 deprecated fields
|
||||||
* transceiver/maxtxpkt/maxrxpkt. rest of ksettings always updated
|
* transceiver/maxtxpkt/maxrxpkt. rest of ksettings always updated
|
||||||
@ -441,13 +444,13 @@ convert_legacy_settings_to_link_ksettings(
|
|||||||
legacy_settings->maxrxpkt)
|
legacy_settings->maxrxpkt)
|
||||||
retval = false;
|
retval = false;
|
||||||
|
|
||||||
convert_legacy_u32_to_link_mode(
|
ethtool_convert_legacy_u32_to_link_mode(
|
||||||
link_ksettings->link_modes.supported,
|
link_ksettings->link_modes.supported,
|
||||||
legacy_settings->supported);
|
legacy_settings->supported);
|
||||||
convert_legacy_u32_to_link_mode(
|
ethtool_convert_legacy_u32_to_link_mode(
|
||||||
link_ksettings->link_modes.advertising,
|
link_ksettings->link_modes.advertising,
|
||||||
legacy_settings->advertising);
|
legacy_settings->advertising);
|
||||||
convert_legacy_u32_to_link_mode(
|
ethtool_convert_legacy_u32_to_link_mode(
|
||||||
link_ksettings->link_modes.lp_advertising,
|
link_ksettings->link_modes.lp_advertising,
|
||||||
legacy_settings->lp_advertising);
|
legacy_settings->lp_advertising);
|
||||||
link_ksettings->base.speed
|
link_ksettings->base.speed
|
||||||
@ -486,13 +489,13 @@ convert_link_ksettings_to_legacy_settings(
|
|||||||
* __u32 maxrxpkt;
|
* __u32 maxrxpkt;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
retval &= convert_link_mode_to_legacy_u32(
|
retval &= ethtool_convert_link_mode_to_legacy_u32(
|
||||||
&legacy_settings->supported,
|
&legacy_settings->supported,
|
||||||
link_ksettings->link_modes.supported);
|
link_ksettings->link_modes.supported);
|
||||||
retval &= convert_link_mode_to_legacy_u32(
|
retval &= ethtool_convert_link_mode_to_legacy_u32(
|
||||||
&legacy_settings->advertising,
|
&legacy_settings->advertising,
|
||||||
link_ksettings->link_modes.advertising);
|
link_ksettings->link_modes.advertising);
|
||||||
retval &= convert_link_mode_to_legacy_u32(
|
retval &= ethtool_convert_link_mode_to_legacy_u32(
|
||||||
&legacy_settings->lp_advertising,
|
&legacy_settings->lp_advertising,
|
||||||
link_ksettings->link_modes.lp_advertising);
|
link_ksettings->link_modes.lp_advertising);
|
||||||
ethtool_cmd_speed_set(legacy_settings, link_ksettings->base.speed);
|
ethtool_cmd_speed_set(legacy_settings, link_ksettings->base.speed);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user