diff options
author | David Decotigny <decot@google.com> | 2011-04-27 14:32:40 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-04-29 17:03:01 -0400 |
commit | 707394972093e2056e1e8cc39be19cf9bcb3e7b3 (patch) | |
tree | f6dc95219bca6895adf304b79241e9d60561f8f5 /drivers/net/e1000e/ethtool.c | |
parent | 25db0338813a8915457636b1f6abe6a28fa73f8d (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/e1000e/ethtool.c')
-rw-r--r-- | drivers/net/e1000e/ethtool.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c index bc02c6b91f15..12f1ee250522 100644 --- a/drivers/net/e1000e/ethtool.c +++ b/drivers/net/e1000e/ethtool.c | |||
@@ -122,6 +122,7 @@ static int e1000_get_settings(struct net_device *netdev, | |||
122 | { | 122 | { |
123 | struct e1000_adapter *adapter = netdev_priv(netdev); | 123 | struct e1000_adapter *adapter = netdev_priv(netdev); |
124 | struct e1000_hw *hw = &adapter->hw; | 124 | struct e1000_hw *hw = &adapter->hw; |
125 | u32 speed; | ||
125 | 126 | ||
126 | if (hw->phy.media_type == e1000_media_type_copper) { | 127 | if (hw->phy.media_type == e1000_media_type_copper) { |
127 | 128 | ||
@@ -159,23 +160,23 @@ static int e1000_get_settings(struct net_device *netdev, | |||
159 | ecmd->transceiver = XCVR_EXTERNAL; | 160 | ecmd->transceiver = XCVR_EXTERNAL; |
160 | } | 161 | } |
161 | 162 | ||
162 | ecmd->speed = -1; | 163 | speed = -1; |
163 | ecmd->duplex = -1; | 164 | ecmd->duplex = -1; |
164 | 165 | ||
165 | if (netif_running(netdev)) { | 166 | if (netif_running(netdev)) { |
166 | if (netif_carrier_ok(netdev)) { | 167 | if (netif_carrier_ok(netdev)) { |
167 | ecmd->speed = adapter->link_speed; | 168 | speed = adapter->link_speed; |
168 | ecmd->duplex = adapter->link_duplex - 1; | 169 | ecmd->duplex = adapter->link_duplex - 1; |
169 | } | 170 | } |
170 | } else { | 171 | } else { |
171 | u32 status = er32(STATUS); | 172 | u32 status = er32(STATUS); |
172 | if (status & E1000_STATUS_LU) { | 173 | if (status & E1000_STATUS_LU) { |
173 | if (status & E1000_STATUS_SPEED_1000) | 174 | if (status & E1000_STATUS_SPEED_1000) |
174 | ecmd->speed = 1000; | 175 | speed = SPEED_1000; |
175 | else if (status & E1000_STATUS_SPEED_100) | 176 | else if (status & E1000_STATUS_SPEED_100) |
176 | ecmd->speed = 100; | 177 | speed = SPEED_100; |
177 | else | 178 | else |
178 | ecmd->speed = 10; | 179 | speed = SPEED_10; |
179 | 180 | ||
180 | if (status & E1000_STATUS_FD) | 181 | if (status & E1000_STATUS_FD) |
181 | ecmd->duplex = DUPLEX_FULL; | 182 | ecmd->duplex = DUPLEX_FULL; |
@@ -184,6 +185,7 @@ static int e1000_get_settings(struct net_device *netdev, | |||
184 | } | 185 | } |
185 | } | 186 | } |
186 | 187 | ||
188 | ethtool_cmd_speed_set(ecmd, speed); | ||
187 | ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) || | 189 | ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) || |
188 | hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE; | 190 | hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE; |
189 | 191 | ||