aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb/igb_ethtool.c
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2009-07-23 14:07:20 -0400
committerDavid S. Miller <davem@davemloft.net>2009-07-26 12:46:41 -0400
commitdcc3ae9a5252ea4ffe65b43cdc09ec2654b48000 (patch)
tree7c3c1c480e8ce395c2b3b5b78802f97e28b60b80 /drivers/net/igb/igb_ethtool.c
parent74d154189d597b91da4322996dbf4f5c3d1544ab (diff)
igb: remove media type fiber as it is misleading
The current igb driver only supports copper and serdes. The fiber media type is a holdover from earlier NICs as the current nics supported by igb all use serdes when communicating over a fiber connection. As a result we can remove media type fiber without losing any functionality. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/igb/igb_ethtool.c')
-rw-r--r--drivers/net/igb/igb_ethtool.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c
index 9598ac09f4b8..a9c37cb1bd7a 100644
--- a/drivers/net/igb/igb_ethtool.c
+++ b/drivers/net/igb/igb_ethtool.c
@@ -168,8 +168,7 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
168 ecmd->duplex = -1; 168 ecmd->duplex = -1;
169 } 169 }
170 170
171 ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) || 171 ecmd->autoneg = hw->mac.autoneg ? AUTONEG_ENABLE : AUTONEG_DISABLE;
172 hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE;
173 return 0; 172 return 0;
174} 173}
175 174
@@ -191,23 +190,18 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
191 190
192 if (ecmd->autoneg == AUTONEG_ENABLE) { 191 if (ecmd->autoneg == AUTONEG_ENABLE) {
193 hw->mac.autoneg = 1; 192 hw->mac.autoneg = 1;
194 if (hw->phy.media_type == e1000_media_type_fiber) 193 hw->phy.autoneg_advertised = ecmd->advertising |
195 hw->phy.autoneg_advertised = ADVERTISED_1000baseT_Full | 194 ADVERTISED_TP |
196 ADVERTISED_FIBRE | 195 ADVERTISED_Autoneg;
197 ADVERTISED_Autoneg;
198 else
199 hw->phy.autoneg_advertised = ecmd->advertising |
200 ADVERTISED_TP |
201 ADVERTISED_Autoneg;
202 ecmd->advertising = hw->phy.autoneg_advertised; 196 ecmd->advertising = hw->phy.autoneg_advertised;
203 } else 197 } else {
204 if (igb_set_spd_dplx(adapter, ecmd->speed + ecmd->duplex)) { 198 if (igb_set_spd_dplx(adapter, ecmd->speed + ecmd->duplex)) {
205 clear_bit(__IGB_RESETTING, &adapter->state); 199 clear_bit(__IGB_RESETTING, &adapter->state);
206 return -EINVAL; 200 return -EINVAL;
207 } 201 }
202 }
208 203
209 /* reset the link */ 204 /* reset the link */
210
211 if (netif_running(adapter->netdev)) { 205 if (netif_running(adapter->netdev)) {
212 igb_down(adapter); 206 igb_down(adapter);
213 igb_up(adapter); 207 igb_up(adapter);
@@ -267,8 +261,8 @@ static int igb_set_pauseparam(struct net_device *netdev,
267 } else 261 } else
268 igb_reset(adapter); 262 igb_reset(adapter);
269 } else 263 } else
270 retval = ((hw->phy.media_type == e1000_media_type_fiber) ? 264 retval = ((hw->phy.media_type == e1000_media_type_copper) ?
271 igb_setup_link(hw) : igb_force_mac_fc(hw)); 265 igb_force_mac_fc(hw) : igb_setup_link(hw));
272 266
273 clear_bit(__IGB_RESETTING, &adapter->state); 267 clear_bit(__IGB_RESETTING, &adapter->state);
274 return retval; 268 return retval;
@@ -1483,8 +1477,7 @@ static int igb_setup_loopback_test(struct igb_adapter *adapter)
1483 struct e1000_hw *hw = &adapter->hw; 1477 struct e1000_hw *hw = &adapter->hw;
1484 u32 reg; 1478 u32 reg;
1485 1479
1486 if (hw->phy.media_type == e1000_media_type_fiber || 1480 if (hw->phy.media_type == e1000_media_type_internal_serdes) {
1487 hw->phy.media_type == e1000_media_type_internal_serdes) {
1488 reg = rd32(E1000_RCTL); 1481 reg = rd32(E1000_RCTL);
1489 reg |= E1000_RCTL_LBM_TCVR; 1482 reg |= E1000_RCTL_LBM_TCVR;
1490 wr32(E1000_RCTL, reg); 1483 wr32(E1000_RCTL, reg);