aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/e1000e/82571.c
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2012-01-31 01:37:48 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2012-02-07 07:12:14 -0500
commit66092f59252cb53e5a997e1222ad203b78c8aa97 (patch)
treebb533fb405ba9813c770da91c41f51ba9c0d4e72 /drivers/net/ethernet/intel/e1000e/82571.c
parente68782ed789a8e52af410368a185b3768fa64614 (diff)
e1000e: cleanup e1000_init_mac_params_82571()
Combine two switch statements into one, convert a nebulous pointer to one that is a bit more in keeping with the rest of the driver code and cleanup some coding style. No change in functionality, just cosmetic changes. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/82571.c')
-rw-r--r--drivers/net/ethernet/intel/e1000e/82571.c72
1 files changed, 30 insertions, 42 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
index 844907da8aaf..4cadcc76ad58 100644
--- a/drivers/net/ethernet/intel/e1000e/82571.c
+++ b/drivers/net/ethernet/intel/e1000e/82571.c
@@ -239,26 +239,39 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter)
239{ 239{
240 struct e1000_hw *hw = &adapter->hw; 240 struct e1000_hw *hw = &adapter->hw;
241 struct e1000_mac_info *mac = &hw->mac; 241 struct e1000_mac_info *mac = &hw->mac;
242 struct e1000_mac_operations *func = &mac->ops;
243 u32 swsm = 0; 242 u32 swsm = 0;
244 u32 swsm2 = 0; 243 u32 swsm2 = 0;
245 bool force_clear_smbi = false; 244 bool force_clear_smbi = false;
246 245
247 /* Set media type */ 246 /* Set media type and media-dependent function pointers */
248 switch (adapter->pdev->device) { 247 switch (adapter->pdev->device) {
249 case E1000_DEV_ID_82571EB_FIBER: 248 case E1000_DEV_ID_82571EB_FIBER:
250 case E1000_DEV_ID_82572EI_FIBER: 249 case E1000_DEV_ID_82572EI_FIBER:
251 case E1000_DEV_ID_82571EB_QUAD_FIBER: 250 case E1000_DEV_ID_82571EB_QUAD_FIBER:
252 hw->phy.media_type = e1000_media_type_fiber; 251 hw->phy.media_type = e1000_media_type_fiber;
252 mac->ops.setup_physical_interface =
253 e1000_setup_fiber_serdes_link_82571;
254 mac->ops.check_for_link = e1000e_check_for_fiber_link;
255 mac->ops.get_link_up_info =
256 e1000e_get_speed_and_duplex_fiber_serdes;
253 break; 257 break;
254 case E1000_DEV_ID_82571EB_SERDES: 258 case E1000_DEV_ID_82571EB_SERDES:
255 case E1000_DEV_ID_82572EI_SERDES:
256 case E1000_DEV_ID_82571EB_SERDES_DUAL: 259 case E1000_DEV_ID_82571EB_SERDES_DUAL:
257 case E1000_DEV_ID_82571EB_SERDES_QUAD: 260 case E1000_DEV_ID_82571EB_SERDES_QUAD:
261 case E1000_DEV_ID_82572EI_SERDES:
258 hw->phy.media_type = e1000_media_type_internal_serdes; 262 hw->phy.media_type = e1000_media_type_internal_serdes;
263 mac->ops.setup_physical_interface =
264 e1000_setup_fiber_serdes_link_82571;
265 mac->ops.check_for_link = e1000_check_for_serdes_link_82571;
266 mac->ops.get_link_up_info =
267 e1000e_get_speed_and_duplex_fiber_serdes;
259 break; 268 break;
260 default: 269 default:
261 hw->phy.media_type = e1000_media_type_copper; 270 hw->phy.media_type = e1000_media_type_copper;
271 mac->ops.setup_physical_interface =
272 e1000_setup_copper_link_82571;
273 mac->ops.check_for_link = e1000e_check_for_copper_link;
274 mac->ops.get_link_up_info = e1000e_get_speed_and_duplex_copper;
262 break; 275 break;
263 } 276 }
264 277
@@ -269,38 +282,13 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter)
269 /* Adaptive IFS supported */ 282 /* Adaptive IFS supported */
270 mac->adaptive_ifs = true; 283 mac->adaptive_ifs = true;
271 284
272 /* check for link */ 285 /* MAC-specific function pointers */
273 switch (hw->phy.media_type) {
274 case e1000_media_type_copper:
275 func->setup_physical_interface = e1000_setup_copper_link_82571;
276 func->check_for_link = e1000e_check_for_copper_link;
277 func->get_link_up_info = e1000e_get_speed_and_duplex_copper;
278 break;
279 case e1000_media_type_fiber:
280 func->setup_physical_interface =
281 e1000_setup_fiber_serdes_link_82571;
282 func->check_for_link = e1000e_check_for_fiber_link;
283 func->get_link_up_info =
284 e1000e_get_speed_and_duplex_fiber_serdes;
285 break;
286 case e1000_media_type_internal_serdes:
287 func->setup_physical_interface =
288 e1000_setup_fiber_serdes_link_82571;
289 func->check_for_link = e1000_check_for_serdes_link_82571;
290 func->get_link_up_info =
291 e1000e_get_speed_and_duplex_fiber_serdes;
292 break;
293 default:
294 return -E1000_ERR_CONFIG;
295 break;
296 }
297
298 switch (hw->mac.type) { 286 switch (hw->mac.type) {
299 case e1000_82573: 287 case e1000_82573:
300 func->set_lan_id = e1000_set_lan_id_single_port; 288 mac->ops.set_lan_id = e1000_set_lan_id_single_port;
301 func->check_mng_mode = e1000e_check_mng_mode_generic; 289 mac->ops.check_mng_mode = e1000e_check_mng_mode_generic;
302 func->led_on = e1000e_led_on_generic; 290 mac->ops.led_on = e1000e_led_on_generic;
303 func->blink_led = e1000e_blink_led_generic; 291 mac->ops.blink_led = e1000e_blink_led_generic;
304 292
305 /* FWSM register */ 293 /* FWSM register */
306 mac->has_fwsm = true; 294 mac->has_fwsm = true;
@@ -314,14 +302,14 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter)
314 break; 302 break;
315 case e1000_82574: 303 case e1000_82574:
316 case e1000_82583: 304 case e1000_82583:
317 func->set_lan_id = e1000_set_lan_id_single_port; 305 mac->ops.set_lan_id = e1000_set_lan_id_single_port;
318 func->check_mng_mode = e1000_check_mng_mode_82574; 306 mac->ops.check_mng_mode = e1000_check_mng_mode_82574;
319 func->led_on = e1000_led_on_82574; 307 mac->ops.led_on = e1000_led_on_82574;
320 break; 308 break;
321 default: 309 default:
322 func->check_mng_mode = e1000e_check_mng_mode_generic; 310 mac->ops.check_mng_mode = e1000e_check_mng_mode_generic;
323 func->led_on = e1000e_led_on_generic; 311 mac->ops.led_on = e1000e_led_on_generic;
324 func->blink_led = e1000e_blink_led_generic; 312 mac->ops.blink_led = e1000e_blink_led_generic;
325 313
326 /* FWSM register */ 314 /* FWSM register */
327 mac->has_fwsm = true; 315 mac->has_fwsm = true;
@@ -342,11 +330,11 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter)
342 330
343 if (!(swsm2 & E1000_SWSM2_LOCK)) { 331 if (!(swsm2 & E1000_SWSM2_LOCK)) {
344 /* Only do this for the first interface on this card */ 332 /* Only do this for the first interface on this card */
345 ew32(SWSM2, 333 ew32(SWSM2, swsm2 | E1000_SWSM2_LOCK);
346 swsm2 | E1000_SWSM2_LOCK);
347 force_clear_smbi = true; 334 force_clear_smbi = true;
348 } else 335 } else {
349 force_clear_smbi = false; 336 force_clear_smbi = false;
337 }
350 break; 338 break;
351 default: 339 default:
352 force_clear_smbi = true; 340 force_clear_smbi = true;