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);
static void qeth_set_cmd_adv_sup(struct ethtool_link_ksettings *cmd,
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;
adv = ADVERTISED_Autoneg;
ethtool_link_ksettings_add_link_mode(cmd, supported, Autoneg);
ethtool_link_ksettings_add_link_mode(cmd, advertising, Autoneg);
switch (porttype) {
case PORT_TP:
sup |= SUPPORTED_TP;
adv |= ADVERTISED_TP;
ethtool_link_ksettings_add_link_mode(cmd, supported, TP);
ethtool_link_ksettings_add_link_mode(cmd, advertising, TP);
break;
case PORT_FIBRE:
sup |= SUPPORTED_FIBRE;
adv |= ADVERTISED_FIBRE;
ethtool_link_ksettings_add_link_mode(cmd, supported, FIBRE);
ethtool_link_ksettings_add_link_mode(cmd, advertising, FIBRE);
break;
default:
sup |= SUPPORTED_TP;
adv |= ADVERTISED_TP;
ethtool_link_ksettings_add_link_mode(cmd, supported, TP);
ethtool_link_ksettings_add_link_mode(cmd, advertising, TP);
WARN_ON_ONCE(1);
}
/* fallthrough from high to low, to select all legal speeds: */
switch (maxspeed) {
case SPEED_10000:
sup |= SUPPORTED_10000baseT_Full;
adv |= ADVERTISED_10000baseT_Full;
ethtool_link_ksettings_add_link_mode(cmd, supported,
10000baseT_Full);
ethtool_link_ksettings_add_link_mode(cmd, advertising,
10000baseT_Full);
case SPEED_1000:
sup |= SUPPORTED_1000baseT_Half | SUPPORTED_1000baseT_Full;
adv |= ADVERTISED_1000baseT_Half | ADVERTISED_1000baseT_Full;
ethtool_link_ksettings_add_link_mode(cmd, supported,
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:
sup |= SUPPORTED_100baseT_Half | SUPPORTED_100baseT_Full;
adv |= ADVERTISED_100baseT_Half | ADVERTISED_100baseT_Full;
ethtool_link_ksettings_add_link_mode(cmd, supported,
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:
sup |= SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full;
adv |= ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full;
ethtool_link_ksettings_add_link_mode(cmd, supported,
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 */
break;
default:
sup |= SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full;
adv |= ADVERTISED_10baseT_Half | ADVERTISED_10baseT_Full;
ethtool_link_ksettings_add_link_mode(cmd, supported,
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);
}
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,
......
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