diff options
Diffstat (limited to 'drivers/net/ehea/ehea_ethtool.c')
-rw-r--r-- | drivers/net/ehea/ehea_ethtool.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/drivers/net/ehea/ehea_ethtool.c b/drivers/net/ehea/ehea_ethtool.c index 5f13491cf2a..1df5f40c646 100644 --- a/drivers/net/ehea/ehea_ethtool.c +++ b/drivers/net/ehea/ehea_ethtool.c | |||
@@ -34,6 +34,7 @@ | |||
34 | static int ehea_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) | 34 | static int ehea_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) |
35 | { | 35 | { |
36 | struct ehea_port *port = netdev_priv(dev); | 36 | struct ehea_port *port = netdev_priv(dev); |
37 | u32 speed; | ||
37 | int ret; | 38 | int ret; |
38 | 39 | ||
39 | ret = ehea_sense_port_attr(port); | 40 | ret = ehea_sense_port_attr(port); |
@@ -43,17 +44,29 @@ static int ehea_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) | |||
43 | 44 | ||
44 | if (netif_carrier_ok(dev)) { | 45 | if (netif_carrier_ok(dev)) { |
45 | switch (port->port_speed) { | 46 | switch (port->port_speed) { |
46 | case EHEA_SPEED_10M: cmd->speed = SPEED_10; break; | 47 | case EHEA_SPEED_10M: |
47 | case EHEA_SPEED_100M: cmd->speed = SPEED_100; break; | 48 | speed = SPEED_10; |
48 | case EHEA_SPEED_1G: cmd->speed = SPEED_1000; break; | 49 | break; |
49 | case EHEA_SPEED_10G: cmd->speed = SPEED_10000; break; | 50 | case EHEA_SPEED_100M: |
51 | speed = SPEED_100; | ||
52 | break; | ||
53 | case EHEA_SPEED_1G: | ||
54 | speed = SPEED_1000; | ||
55 | break; | ||
56 | case EHEA_SPEED_10G: | ||
57 | speed = SPEED_10000; | ||
58 | break; | ||
59 | default: | ||
60 | speed = -1; | ||
61 | break; /* BUG */ | ||
50 | } | 62 | } |
51 | cmd->duplex = port->full_duplex == 1 ? | 63 | cmd->duplex = port->full_duplex == 1 ? |
52 | DUPLEX_FULL : DUPLEX_HALF; | 64 | DUPLEX_FULL : DUPLEX_HALF; |
53 | } else { | 65 | } else { |
54 | cmd->speed = -1; | 66 | speed = ~0; |
55 | cmd->duplex = -1; | 67 | cmd->duplex = -1; |
56 | } | 68 | } |
69 | ethtool_cmd_speed_set(cmd, speed); | ||
57 | 70 | ||
58 | cmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_1000baseT_Full | 71 | cmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_1000baseT_Full |
59 | | SUPPORTED_100baseT_Full | SUPPORTED_100baseT_Half | 72 | | SUPPORTED_100baseT_Full | SUPPORTED_100baseT_Half |