Commit 41fc3b65 authored by Julian Wiedmann's avatar Julian Wiedmann Committed by David S. Miller

s390/qeth: use LINK_MODE_* to report the link characteristics

LINK_MODE_* replaces the u32-limited SUPPORTED_* / ENABLED_*
definitions.
Signed-off-by: default avatarJulian Wiedmann <jwi@linux.vnet.ibm.com>
Reviewed-by: default avatarThomas Richter <tmricht@linux.vnet.ibm.com>
Reviewed-by: default avatarUrsula Braun <ubraun@linux.vnet.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 993e19c0
...@@ -6031,52 +6031,75 @@ EXPORT_SYMBOL_GPL(qeth_core_get_drvinfo); ...@@ -6031,52 +6031,75 @@ EXPORT_SYMBOL_GPL(qeth_core_get_drvinfo);
static void qeth_set_cmd_adv_sup(struct ethtool_link_ksettings *cmd, static void qeth_set_cmd_adv_sup(struct ethtool_link_ksettings *cmd,
int maxspeed, int porttype) int maxspeed, int porttype)
{ {
u32 sup, adv; ethtool_link_ksettings_zero_link_mode(cmd, supported);
ethtool_link_ksettings_zero_link_mode(cmd, advertising);
ethtool_link_ksettings_zero_link_mode(cmd, lp_advertising);
sup = SUPPORTED_Autoneg; ethtool_link_ksettings_add_link_mode(cmd, supported, Autoneg);
adv = ADVERTISED_Autoneg; ethtool_link_ksettings_add_link_mode(cmd, advertising, Autoneg);
switch (porttype) { switch (porttype) {
case PORT_TP: case PORT_TP:
sup |= SUPPORTED_TP; ethtool_link_ksettings_add_link_mode(cmd, supported, TP);
adv |= ADVERTISED_TP; ethtool_link_ksettings_add_link_mode(cmd, advertising, TP);
break; break;
case PORT_FIBRE: case PORT_FIBRE:
sup |= SUPPORTED_FIBRE; ethtool_link_ksettings_add_link_mode(cmd, supported, FIBRE);
adv |= ADVERTISED_FIBRE; ethtool_link_ksettings_add_link_mode(cmd, advertising, FIBRE);
break; break;
default: default:
sup |= SUPPORTED_TP; ethtool_link_ksettings_add_link_mode(cmd, supported, TP);
adv |= ADVERTISED_TP; ethtool_link_ksettings_add_link_mode(cmd, advertising, TP);
WARN_ON_ONCE(1); WARN_ON_ONCE(1);
} }
/* fallthrough from high to low, to select all legal speeds: */ /* fallthrough from high to low, to select all legal speeds: */
switch (maxspeed) { switch (maxspeed) {
case SPEED_10000: case SPEED_10000:
sup |= SUPPORTED_10000baseT_Full; ethtool_link_ksettings_add_link_mode(cmd, supported,
adv |= ADVERTISED_10000baseT_Full; 10000baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
10000baseT_Full);
case SPEED_1000: case SPEED_1000:
sup |= SUPPORTED_1000baseT_Half | SUPPORTED_1000baseT_Full; ethtool_link_ksettings_add_link_mode(cmd, supported,
adv |= ADVERTISED_1000baseT_Half | ADVERTISED_1000baseT_Full; 1000baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
1000baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, supported,
1000baseT_Half);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
1000baseT_Half);
case SPEED_100: case SPEED_100:
sup |= SUPPORTED_100baseT_Half | SUPPORTED_100baseT_Full; ethtool_link_ksettings_add_link_mode(cmd, supported,
adv |= ADVERTISED_100baseT_Half | ADVERTISED_100baseT_Full; 100baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
100baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, supported,
100baseT_Half);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
100baseT_Half);
case SPEED_10: case SPEED_10:
sup |= SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full; ethtool_link_ksettings_add_link_mode(cmd, supported,
adv |= ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full; 10baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
10baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, supported,
10baseT_Half);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
10baseT_Half);
/* end fallthrough */ /* end fallthrough */
break; break;
default: default:
sup |= SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full; ethtool_link_ksettings_add_link_mode(cmd, supported,
adv |= ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full; 10baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
10baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, supported,
10baseT_Half);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
10baseT_Half);
WARN_ON_ONCE(1); WARN_ON_ONCE(1);
} }
ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,
sup);
ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,
adv);
} }
int qeth_core_ethtool_get_link_ksettings(struct net_device *netdev, int qeth_core_ethtool_get_link_ksettings(struct net_device *netdev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment