aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/mii.c
diff options
context:
space:
mode:
authorDavid Decotigny <decot@google.com>2011-04-27 14:32:40 -0400
committerDavid S. Miller <davem@davemloft.net>2011-04-29 17:03:01 -0400
commit707394972093e2056e1e8cc39be19cf9bcb3e7b3 (patch)
treef6dc95219bca6895adf304b79241e9d60561f8f5 /drivers/net/mii.c
parent25db0338813a8915457636b1f6abe6a28fa73f8d (diff)
ethtool: cosmetic: Use ethtool ethtool_cmd_speed API
This updates the network drivers so that they don't access the ethtool_cmd::speed field directly, but use ethtool_cmd_speed() instead. For most of the drivers, these changes are purely cosmetic and don't fix any problem, such as for those 1GbE/10GbE drivers that indirectly call their own ethtool get_settings()/mii_ethtool_gset(). The changes are meant to enforce code consistency and provide robustness with future larger throughputs, at the expense of a few CPU cycles for each ethtool operation. All drivers compiled with make allyesconfig ion x86_64 have been updated. Tested: make allyesconfig on x86_64 + e1000e/bnx2x work Signed-off-by: David Decotigny <decot@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/mii.c')
-rw-r--r--drivers/net/mii.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/mii.c b/drivers/net/mii.c
index e8198edeaa76..4fbc816efee2 100644
--- a/drivers/net/mii.c
+++ b/drivers/net/mii.c
@@ -121,22 +121,25 @@ int mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd)
121 121
122 if (nego & (ADVERTISED_1000baseT_Full | 122 if (nego & (ADVERTISED_1000baseT_Full |
123 ADVERTISED_1000baseT_Half)) { 123 ADVERTISED_1000baseT_Half)) {
124 ecmd->speed = SPEED_1000; 124 ethtool_cmd_speed_set(ecmd, SPEED_1000);
125 ecmd->duplex = !!(nego & ADVERTISED_1000baseT_Full); 125 ecmd->duplex = !!(nego & ADVERTISED_1000baseT_Full);
126 } else if (nego & (ADVERTISED_100baseT_Full | 126 } else if (nego & (ADVERTISED_100baseT_Full |
127 ADVERTISED_100baseT_Half)) { 127 ADVERTISED_100baseT_Half)) {
128 ecmd->speed = SPEED_100; 128 ethtool_cmd_speed_set(ecmd, SPEED_100);
129 ecmd->duplex = !!(nego & ADVERTISED_100baseT_Full); 129 ecmd->duplex = !!(nego & ADVERTISED_100baseT_Full);
130 } else { 130 } else {
131 ecmd->speed = SPEED_10; 131 ethtool_cmd_speed_set(ecmd, SPEED_10);
132 ecmd->duplex = !!(nego & ADVERTISED_10baseT_Full); 132 ecmd->duplex = !!(nego & ADVERTISED_10baseT_Full);
133 } 133 }
134 } else { 134 } else {
135 ecmd->autoneg = AUTONEG_DISABLE; 135 ecmd->autoneg = AUTONEG_DISABLE;
136 136
137 ecmd->speed = ((bmcr & BMCR_SPEED1000 && 137 ethtool_cmd_speed_set(ecmd,
138 (bmcr & BMCR_SPEED100) == 0) ? SPEED_1000 : 138 ((bmcr & BMCR_SPEED1000 &&
139 (bmcr & BMCR_SPEED100) ? SPEED_100 : SPEED_10); 139 (bmcr & BMCR_SPEED100) == 0) ?
140 SPEED_1000 :
141 ((bmcr & BMCR_SPEED100) ?
142 SPEED_100 : SPEED_10)));
140 ecmd->duplex = (bmcr & BMCR_FULLDPLX) ? DUPLEX_FULL : DUPLEX_HALF; 143 ecmd->duplex = (bmcr & BMCR_FULLDPLX) ? DUPLEX_FULL : DUPLEX_HALF;
141 } 144 }
142 145