diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2012-01-31 01:37:48 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-02-07 07:12:14 -0500 |
commit | 66092f59252cb53e5a997e1222ad203b78c8aa97 (patch) | |
tree | bb533fb405ba9813c770da91c41f51ba9c0d4e72 /drivers/net/ethernet/intel/e1000e/82571.c | |
parent | e68782ed789a8e52af410368a185b3768fa64614 (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.c | 72 |
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; |