Skip to content

Commit

Permalink
s390/qeth: use LINK_MODE_* to report the link characteristics
Browse files Browse the repository at this point in the history
LINK_MODE_* replaces the u32-limited SUPPORTED_* / ENABLED_*
definitions.

Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Reviewed-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Reviewed-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
julianwiedmann authored and davem330 committed Apr 11, 2017
1 parent 993e19c commit 41fc3b6
Showing 1 changed file with 47 additions and 24 deletions.
71 changes: 47 additions & 24 deletions drivers/s390/net/qeth_core_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 41fc3b6

Please sign in to comment.