diff options
author | Auke Kok <auke-jan.h.kok@intel.com> | 2008-06-27 14:00:18 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-07-04 08:46:59 -0400 |
commit | 652fff321490fc3fcc8e8d302826a9c2379f03d2 (patch) | |
tree | 00e9675980cbee174305533dd3d0274715afa5e6 /drivers/net/igb/e1000_82575.c | |
parent | d67ce5338c7c71313f01e508d893bb8104ce459a (diff) |
igb: eliminate hw from the hw_dbg macro arguments
Various cosmetic cleanups. Comment fixes. Eliminate the hw part out
of the hw_dbg macro since it's always used.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/igb/e1000_82575.c')
-rw-r--r-- | drivers/net/igb/e1000_82575.c | 115 |
1 files changed, 50 insertions, 65 deletions
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/igb/e1000_82575.c index e6dd387fdb0..84ef695ccac 100644 --- a/drivers/net/igb/e1000_82575.c +++ b/drivers/net/igb/e1000_82575.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel(R) Gigabit Ethernet Linux driver | 3 | Intel(R) Gigabit Ethernet Linux driver |
4 | Copyright(c) 2007 Intel Corporation. | 4 | Copyright(c) 2007 - 2008 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
@@ -272,7 +272,7 @@ static s32 igb_read_phy_reg_sgmii_82575(struct e1000_hw *hw, u32 offset, | |||
272 | u32 i, i2ccmd = 0; | 272 | u32 i, i2ccmd = 0; |
273 | 273 | ||
274 | if (offset > E1000_MAX_SGMII_PHY_REG_ADDR) { | 274 | if (offset > E1000_MAX_SGMII_PHY_REG_ADDR) { |
275 | hw_dbg(hw, "PHY Address %u is out of range\n", offset); | 275 | hw_dbg("PHY Address %u is out of range\n", offset); |
276 | return -E1000_ERR_PARAM; | 276 | return -E1000_ERR_PARAM; |
277 | } | 277 | } |
278 | 278 | ||
@@ -295,11 +295,11 @@ static s32 igb_read_phy_reg_sgmii_82575(struct e1000_hw *hw, u32 offset, | |||
295 | break; | 295 | break; |
296 | } | 296 | } |
297 | if (!(i2ccmd & E1000_I2CCMD_READY)) { | 297 | if (!(i2ccmd & E1000_I2CCMD_READY)) { |
298 | hw_dbg(hw, "I2CCMD Read did not complete\n"); | 298 | hw_dbg("I2CCMD Read did not complete\n"); |
299 | return -E1000_ERR_PHY; | 299 | return -E1000_ERR_PHY; |
300 | } | 300 | } |
301 | if (i2ccmd & E1000_I2CCMD_ERROR) { | 301 | if (i2ccmd & E1000_I2CCMD_ERROR) { |
302 | hw_dbg(hw, "I2CCMD Error bit set\n"); | 302 | hw_dbg("I2CCMD Error bit set\n"); |
303 | return -E1000_ERR_PHY; | 303 | return -E1000_ERR_PHY; |
304 | } | 304 | } |
305 | 305 | ||
@@ -326,7 +326,7 @@ static s32 igb_write_phy_reg_sgmii_82575(struct e1000_hw *hw, u32 offset, | |||
326 | u16 phy_data_swapped; | 326 | u16 phy_data_swapped; |
327 | 327 | ||
328 | if (offset > E1000_MAX_SGMII_PHY_REG_ADDR) { | 328 | if (offset > E1000_MAX_SGMII_PHY_REG_ADDR) { |
329 | hw_dbg(hw, "PHY Address %d is out of range\n", offset); | 329 | hw_dbg("PHY Address %d is out of range\n", offset); |
330 | return -E1000_ERR_PARAM; | 330 | return -E1000_ERR_PARAM; |
331 | } | 331 | } |
332 | 332 | ||
@@ -353,11 +353,11 @@ static s32 igb_write_phy_reg_sgmii_82575(struct e1000_hw *hw, u32 offset, | |||
353 | break; | 353 | break; |
354 | } | 354 | } |
355 | if (!(i2ccmd & E1000_I2CCMD_READY)) { | 355 | if (!(i2ccmd & E1000_I2CCMD_READY)) { |
356 | hw_dbg(hw, "I2CCMD Write did not complete\n"); | 356 | hw_dbg("I2CCMD Write did not complete\n"); |
357 | return -E1000_ERR_PHY; | 357 | return -E1000_ERR_PHY; |
358 | } | 358 | } |
359 | if (i2ccmd & E1000_I2CCMD_ERROR) { | 359 | if (i2ccmd & E1000_I2CCMD_ERROR) { |
360 | hw_dbg(hw, "I2CCMD Error bit set\n"); | 360 | hw_dbg("I2CCMD Error bit set\n"); |
361 | return -E1000_ERR_PHY; | 361 | return -E1000_ERR_PHY; |
362 | } | 362 | } |
363 | 363 | ||
@@ -368,7 +368,7 @@ static s32 igb_write_phy_reg_sgmii_82575(struct e1000_hw *hw, u32 offset, | |||
368 | * igb_get_phy_id_82575 - Retrieve PHY addr and id | 368 | * igb_get_phy_id_82575 - Retrieve PHY addr and id |
369 | * @hw: pointer to the HW structure | 369 | * @hw: pointer to the HW structure |
370 | * | 370 | * |
371 | * Retreives the PHY address and ID for both PHY's which do and do not use | 371 | * Retrieves the PHY address and ID for both PHY's which do and do not use |
372 | * sgmi interface. | 372 | * sgmi interface. |
373 | **/ | 373 | **/ |
374 | static s32 igb_get_phy_id_82575(struct e1000_hw *hw) | 374 | static s32 igb_get_phy_id_82575(struct e1000_hw *hw) |
@@ -397,9 +397,8 @@ static s32 igb_get_phy_id_82575(struct e1000_hw *hw) | |||
397 | for (phy->addr = 1; phy->addr < 8; phy->addr++) { | 397 | for (phy->addr = 1; phy->addr < 8; phy->addr++) { |
398 | ret_val = igb_read_phy_reg_sgmii_82575(hw, PHY_ID1, &phy_id); | 398 | ret_val = igb_read_phy_reg_sgmii_82575(hw, PHY_ID1, &phy_id); |
399 | if (ret_val == 0) { | 399 | if (ret_val == 0) { |
400 | hw_dbg(hw, "Vendor ID 0x%08X read at address %u\n", | 400 | hw_dbg("Vendor ID 0x%08X read at address %u\n", |
401 | phy_id, | 401 | phy_id, phy->addr); |
402 | phy->addr); | ||
403 | /* | 402 | /* |
404 | * At the time of this writing, The M88 part is | 403 | * At the time of this writing, The M88 part is |
405 | * the only supported SGMII PHY product. | 404 | * the only supported SGMII PHY product. |
@@ -407,8 +406,7 @@ static s32 igb_get_phy_id_82575(struct e1000_hw *hw) | |||
407 | if (phy_id == M88_VENDOR) | 406 | if (phy_id == M88_VENDOR) |
408 | break; | 407 | break; |
409 | } else { | 408 | } else { |
410 | hw_dbg(hw, "PHY address %u was unreadable\n", | 409 | hw_dbg("PHY address %u was unreadable\n", phy->addr); |
411 | phy->addr); | ||
412 | } | 410 | } |
413 | } | 411 | } |
414 | 412 | ||
@@ -440,7 +438,7 @@ static s32 igb_phy_hw_reset_sgmii_82575(struct e1000_hw *hw) | |||
440 | * available to us at this time. | 438 | * available to us at this time. |
441 | */ | 439 | */ |
442 | 440 | ||
443 | hw_dbg(hw, "Soft resetting SGMII attached PHY...\n"); | 441 | hw_dbg("Soft resetting SGMII attached PHY...\n"); |
444 | 442 | ||
445 | /* | 443 | /* |
446 | * SFP documentation requires the following to configure the SPF module | 444 | * SFP documentation requires the following to configure the SPF module |
@@ -475,34 +473,29 @@ static s32 igb_set_d0_lplu_state_82575(struct e1000_hw *hw, bool active) | |||
475 | s32 ret_val; | 473 | s32 ret_val; |
476 | u16 data; | 474 | u16 data; |
477 | 475 | ||
478 | ret_val = hw->phy.ops.read_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, | 476 | ret_val = phy->ops.read_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, &data); |
479 | &data); | ||
480 | if (ret_val) | 477 | if (ret_val) |
481 | goto out; | 478 | goto out; |
482 | 479 | ||
483 | if (active) { | 480 | if (active) { |
484 | data |= IGP02E1000_PM_D0_LPLU; | 481 | data |= IGP02E1000_PM_D0_LPLU; |
485 | ret_val = hw->phy.ops.write_phy_reg(hw, | 482 | ret_val = phy->ops.write_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, |
486 | IGP02E1000_PHY_POWER_MGMT, | 483 | data); |
487 | data); | ||
488 | if (ret_val) | 484 | if (ret_val) |
489 | goto out; | 485 | goto out; |
490 | 486 | ||
491 | /* When LPLU is enabled, we should disable SmartSpeed */ | 487 | /* When LPLU is enabled, we should disable SmartSpeed */ |
492 | ret_val = hw->phy.ops.read_phy_reg(hw, | 488 | ret_val = phy->ops.read_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG, |
493 | IGP01E1000_PHY_PORT_CONFIG, | 489 | &data); |
494 | &data); | ||
495 | data &= ~IGP01E1000_PSCFR_SMART_SPEED; | 490 | data &= ~IGP01E1000_PSCFR_SMART_SPEED; |
496 | ret_val = hw->phy.ops.write_phy_reg(hw, | 491 | ret_val = phy->ops.write_phy_reg(hw, IGP01E1000_PHY_PORT_CONFIG, |
497 | IGP01E1000_PHY_PORT_CONFIG, | 492 | data); |
498 | data); | ||
499 | if (ret_val) | 493 | if (ret_val) |
500 | goto out; | 494 | goto out; |
501 | } else { | 495 | } else { |
502 | data &= ~IGP02E1000_PM_D0_LPLU; | 496 | data &= ~IGP02E1000_PM_D0_LPLU; |
503 | ret_val = hw->phy.ops.write_phy_reg(hw, | 497 | ret_val = phy->ops.write_phy_reg(hw, IGP02E1000_PHY_POWER_MGMT, |
504 | IGP02E1000_PHY_POWER_MGMT, | 498 | data); |
505 | data); | ||
506 | /* | 499 | /* |
507 | * LPLU and SmartSpeed are mutually exclusive. LPLU is used | 500 | * LPLU and SmartSpeed are mutually exclusive. LPLU is used |
508 | * during Dx states where the power conservation is most | 501 | * during Dx states where the power conservation is most |
@@ -510,29 +503,25 @@ static s32 igb_set_d0_lplu_state_82575(struct e1000_hw *hw, bool active) | |||
510 | * SmartSpeed, so performance is maintained. | 503 | * SmartSpeed, so performance is maintained. |
511 | */ | 504 | */ |
512 | if (phy->smart_speed == e1000_smart_speed_on) { | 505 | if (phy->smart_speed == e1000_smart_speed_on) { |
513 | ret_val = hw->phy.ops.read_phy_reg(hw, | 506 | ret_val = phy->ops.read_phy_reg(hw, |
514 | IGP01E1000_PHY_PORT_CONFIG, | 507 | IGP01E1000_PHY_PORT_CONFIG, &data); |
515 | &data); | ||
516 | if (ret_val) | 508 | if (ret_val) |
517 | goto out; | 509 | goto out; |
518 | 510 | ||
519 | data |= IGP01E1000_PSCFR_SMART_SPEED; | 511 | data |= IGP01E1000_PSCFR_SMART_SPEED; |
520 | ret_val = hw->phy.ops.write_phy_reg(hw, | 512 | ret_val = phy->ops.write_phy_reg(hw, |
521 | IGP01E1000_PHY_PORT_CONFIG, | 513 | IGP01E1000_PHY_PORT_CONFIG, data); |
522 | data); | ||
523 | if (ret_val) | 514 | if (ret_val) |
524 | goto out; | 515 | goto out; |
525 | } else if (phy->smart_speed == e1000_smart_speed_off) { | 516 | } else if (phy->smart_speed == e1000_smart_speed_off) { |
526 | ret_val = hw->phy.ops.read_phy_reg(hw, | 517 | ret_val = phy->ops.read_phy_reg(hw, |
527 | IGP01E1000_PHY_PORT_CONFIG, | 518 | IGP01E1000_PHY_PORT_CONFIG, &data); |
528 | &data); | ||
529 | if (ret_val) | 519 | if (ret_val) |
530 | goto out; | 520 | goto out; |
531 | 521 | ||
532 | data &= ~IGP01E1000_PSCFR_SMART_SPEED; | 522 | data &= ~IGP01E1000_PSCFR_SMART_SPEED; |
533 | ret_val = hw->phy.ops.write_phy_reg(hw, | 523 | ret_val = phy->ops.write_phy_reg(hw, |
534 | IGP01E1000_PHY_PORT_CONFIG, | 524 | IGP01E1000_PHY_PORT_CONFIG, data); |
535 | data); | ||
536 | if (ret_val) | 525 | if (ret_val) |
537 | goto out; | 526 | goto out; |
538 | } | 527 | } |
@@ -546,7 +535,7 @@ out: | |||
546 | * igb_acquire_nvm_82575 - Request for access to EEPROM | 535 | * igb_acquire_nvm_82575 - Request for access to EEPROM |
547 | * @hw: pointer to the HW structure | 536 | * @hw: pointer to the HW structure |
548 | * | 537 | * |
549 | * Acquire the necessary semaphores for exclussive access to the EEPROM. | 538 | * Acquire the necessary semaphores for exclusive access to the EEPROM. |
550 | * Set the EEPROM access request bit and wait for EEPROM access grant bit. | 539 | * Set the EEPROM access request bit and wait for EEPROM access grant bit. |
551 | * Return successful if access grant bit set, else clear the request for | 540 | * Return successful if access grant bit set, else clear the request for |
552 | * EEPROM access and return -E1000_ERR_NVM (-1). | 541 | * EEPROM access and return -E1000_ERR_NVM (-1). |
@@ -617,7 +606,7 @@ static s32 igb_acquire_swfw_sync_82575(struct e1000_hw *hw, u16 mask) | |||
617 | } | 606 | } |
618 | 607 | ||
619 | if (i == timeout) { | 608 | if (i == timeout) { |
620 | hw_dbg(hw, "Can't access resource, SW_FW_SYNC timeout.\n"); | 609 | hw_dbg("Driver can't access resource, SW_FW_SYNC timeout.\n"); |
621 | ret_val = -E1000_ERR_SWFW_SYNC; | 610 | ret_val = -E1000_ERR_SWFW_SYNC; |
622 | goto out; | 611 | goto out; |
623 | } | 612 | } |
@@ -679,7 +668,7 @@ static s32 igb_get_cfg_done_82575(struct e1000_hw *hw) | |||
679 | timeout--; | 668 | timeout--; |
680 | } | 669 | } |
681 | if (!timeout) | 670 | if (!timeout) |
682 | hw_dbg(hw, "MNG configuration cycle has not completed.\n"); | 671 | hw_dbg("MNG configuration cycle has not completed.\n"); |
683 | 672 | ||
684 | /* If EEPROM is not marked present, init the PHY manually */ | 673 | /* If EEPROM is not marked present, init the PHY manually */ |
685 | if (((rd32(E1000_EECD) & E1000_EECD_PRES) == 0) && | 674 | if (((rd32(E1000_EECD) & E1000_EECD_PRES) == 0) && |
@@ -718,7 +707,7 @@ static s32 igb_check_for_link_82575(struct e1000_hw *hw) | |||
718 | * @speed: stores the current speed | 707 | * @speed: stores the current speed |
719 | * @duplex: stores the current duplex | 708 | * @duplex: stores the current duplex |
720 | * | 709 | * |
721 | * Using the physical coding sub-layer (PCS), retreive the current speed and | 710 | * Using the physical coding sub-layer (PCS), retrieve the current speed and |
722 | * duplex, then store the values in the pointers provided. | 711 | * duplex, then store the values in the pointers provided. |
723 | **/ | 712 | **/ |
724 | static s32 igb_get_pcs_speed_and_duplex_82575(struct e1000_hw *hw, u16 *speed, | 713 | static s32 igb_get_pcs_speed_and_duplex_82575(struct e1000_hw *hw, u16 *speed, |
@@ -802,9 +791,9 @@ static s32 igb_reset_hw_82575(struct e1000_hw *hw) | |||
802 | */ | 791 | */ |
803 | ret_val = igb_disable_pcie_master(hw); | 792 | ret_val = igb_disable_pcie_master(hw); |
804 | if (ret_val) | 793 | if (ret_val) |
805 | hw_dbg(hw, "PCI-E Master disable polling has failed.\n"); | 794 | hw_dbg("PCI-E Master disable polling has failed.\n"); |
806 | 795 | ||
807 | hw_dbg(hw, "Masking off all interrupts\n"); | 796 | hw_dbg("Masking off all interrupts\n"); |
808 | wr32(E1000_IMC, 0xffffffff); | 797 | wr32(E1000_IMC, 0xffffffff); |
809 | 798 | ||
810 | wr32(E1000_RCTL, 0); | 799 | wr32(E1000_RCTL, 0); |
@@ -815,7 +804,7 @@ static s32 igb_reset_hw_82575(struct e1000_hw *hw) | |||
815 | 804 | ||
816 | ctrl = rd32(E1000_CTRL); | 805 | ctrl = rd32(E1000_CTRL); |
817 | 806 | ||
818 | hw_dbg(hw, "Issuing a global reset to MAC\n"); | 807 | hw_dbg("Issuing a global reset to MAC\n"); |
819 | wr32(E1000_CTRL, ctrl | E1000_CTRL_RST); | 808 | wr32(E1000_CTRL, ctrl | E1000_CTRL_RST); |
820 | 809 | ||
821 | ret_val = igb_get_auto_rd_done(hw); | 810 | ret_val = igb_get_auto_rd_done(hw); |
@@ -825,7 +814,7 @@ static s32 igb_reset_hw_82575(struct e1000_hw *hw) | |||
825 | * return with an error. This can happen in situations | 814 | * return with an error. This can happen in situations |
826 | * where there is no eeprom and prevents getting link. | 815 | * where there is no eeprom and prevents getting link. |
827 | */ | 816 | */ |
828 | hw_dbg(hw, "Auto Read Done did not complete\n"); | 817 | hw_dbg("Auto Read Done did not complete\n"); |
829 | } | 818 | } |
830 | 819 | ||
831 | /* If EEPROM is not present, run manual init scripts */ | 820 | /* If EEPROM is not present, run manual init scripts */ |
@@ -856,18 +845,18 @@ static s32 igb_init_hw_82575(struct e1000_hw *hw) | |||
856 | /* Initialize identification LED */ | 845 | /* Initialize identification LED */ |
857 | ret_val = igb_id_led_init(hw); | 846 | ret_val = igb_id_led_init(hw); |
858 | if (ret_val) { | 847 | if (ret_val) { |
859 | hw_dbg(hw, "Error initializing identification LED\n"); | 848 | hw_dbg("Error initializing identification LED\n"); |
860 | /* This is not fatal and we should not stop init due to this */ | 849 | /* This is not fatal and we should not stop init due to this */ |
861 | } | 850 | } |
862 | 851 | ||
863 | /* Disabling VLAN filtering */ | 852 | /* Disabling VLAN filtering */ |
864 | hw_dbg(hw, "Initializing the IEEE VLAN\n"); | 853 | hw_dbg("Initializing the IEEE VLAN\n"); |
865 | igb_clear_vfta(hw); | 854 | igb_clear_vfta(hw); |
866 | 855 | ||
867 | /* Setup the receive address */ | 856 | /* Setup the receive address */ |
868 | igb_init_rx_addrs(hw, rar_count); | 857 | igb_init_rx_addrs(hw, rar_count); |
869 | /* Zero out the Multicast HASH table */ | 858 | /* Zero out the Multicast HASH table */ |
870 | hw_dbg(hw, "Zeroing the MTA\n"); | 859 | hw_dbg("Zeroing the MTA\n"); |
871 | for (i = 0; i < mac->mta_reg_count; i++) | 860 | for (i = 0; i < mac->mta_reg_count; i++) |
872 | array_wr32(E1000_MTA, i, 0); | 861 | array_wr32(E1000_MTA, i, 0); |
873 | 862 | ||
@@ -937,10 +926,10 @@ static s32 igb_setup_copper_link_82575(struct e1000_hw *hw) | |||
937 | * PHY will be set to 10H, 10F, 100H or 100F | 926 | * PHY will be set to 10H, 10F, 100H or 100F |
938 | * depending on user settings. | 927 | * depending on user settings. |
939 | */ | 928 | */ |
940 | hw_dbg(hw, "Forcing Speed and Duplex\n"); | 929 | hw_dbg("Forcing Speed and Duplex\n"); |
941 | ret_val = igb_phy_force_speed_duplex(hw); | 930 | ret_val = igb_phy_force_speed_duplex(hw); |
942 | if (ret_val) { | 931 | if (ret_val) { |
943 | hw_dbg(hw, "Error Forcing Speed and Duplex\n"); | 932 | hw_dbg("Error Forcing Speed and Duplex\n"); |
944 | goto out; | 933 | goto out; |
945 | } | 934 | } |
946 | } | 935 | } |
@@ -953,20 +942,17 @@ static s32 igb_setup_copper_link_82575(struct e1000_hw *hw) | |||
953 | * Check link status. Wait up to 100 microseconds for link to become | 942 | * Check link status. Wait up to 100 microseconds for link to become |
954 | * valid. | 943 | * valid. |
955 | */ | 944 | */ |
956 | ret_val = igb_phy_has_link(hw, | 945 | ret_val = igb_phy_has_link(hw, COPPER_LINK_UP_LIMIT, 10, &link); |
957 | COPPER_LINK_UP_LIMIT, | ||
958 | 10, | ||
959 | &link); | ||
960 | if (ret_val) | 946 | if (ret_val) |
961 | goto out; | 947 | goto out; |
962 | 948 | ||
963 | if (link) { | 949 | if (link) { |
964 | hw_dbg(hw, "Valid link established!!!\n"); | 950 | hw_dbg("Valid link established!!!\n"); |
965 | /* Config the MAC and PHY after link is up */ | 951 | /* Config the MAC and PHY after link is up */ |
966 | igb_config_collision_dist(hw); | 952 | igb_config_collision_dist(hw); |
967 | ret_val = igb_config_fc_after_link_up(hw); | 953 | ret_val = igb_config_fc_after_link_up(hw); |
968 | } else { | 954 | } else { |
969 | hw_dbg(hw, "Unable to establish link!!!\n"); | 955 | hw_dbg("Unable to establish link!!!\n"); |
970 | } | 956 | } |
971 | 957 | ||
972 | out: | 958 | out: |
@@ -1022,7 +1008,7 @@ static s32 igb_setup_fiber_serdes_link_82575(struct e1000_hw *hw) | |||
1022 | E1000_PCS_LCTL_FDV_FULL | /* SerDes Full duplex */ | 1008 | E1000_PCS_LCTL_FDV_FULL | /* SerDes Full duplex */ |
1023 | E1000_PCS_LCTL_AN_ENABLE | /* Enable Autoneg */ | 1009 | E1000_PCS_LCTL_AN_ENABLE | /* Enable Autoneg */ |
1024 | E1000_PCS_LCTL_AN_RESTART; /* Restart autoneg */ | 1010 | E1000_PCS_LCTL_AN_RESTART; /* Restart autoneg */ |
1025 | hw_dbg(hw, "Configuring Autoneg; PCS_LCTL = 0x%08X\n", reg); | 1011 | hw_dbg("Configuring Autoneg; PCS_LCTL = 0x%08X\n", reg); |
1026 | } else { | 1012 | } else { |
1027 | /* Set PCS register for forced speed */ | 1013 | /* Set PCS register for forced speed */ |
1028 | reg |= E1000_PCS_LCTL_FLV_LINK_UP | /* Force link up */ | 1014 | reg |= E1000_PCS_LCTL_FLV_LINK_UP | /* Force link up */ |
@@ -1030,7 +1016,7 @@ static s32 igb_setup_fiber_serdes_link_82575(struct e1000_hw *hw) | |||
1030 | E1000_PCS_LCTL_FDV_FULL | /* SerDes Full duplex */ | 1016 | E1000_PCS_LCTL_FDV_FULL | /* SerDes Full duplex */ |
1031 | E1000_PCS_LCTL_FSD | /* Force Speed */ | 1017 | E1000_PCS_LCTL_FSD | /* Force Speed */ |
1032 | E1000_PCS_LCTL_FORCE_LINK; /* Force Link */ | 1018 | E1000_PCS_LCTL_FORCE_LINK; /* Force Link */ |
1033 | hw_dbg(hw, "Configuring Forced Link; PCS_LCTL = 0x%08X\n", reg); | 1019 | hw_dbg("Configuring Forced Link; PCS_LCTL = 0x%08X\n", reg); |
1034 | } | 1020 | } |
1035 | wr32(E1000_PCS_LCTL, reg); | 1021 | wr32(E1000_PCS_LCTL, reg); |
1036 | 1022 | ||
@@ -1071,7 +1057,7 @@ static s32 igb_configure_pcs_link_82575(struct e1000_hw *hw) | |||
1071 | */ | 1057 | */ |
1072 | reg |= E1000_PCS_LCTL_AN_RESTART | E1000_PCS_LCTL_AN_ENABLE; | 1058 | reg |= E1000_PCS_LCTL_AN_RESTART | E1000_PCS_LCTL_AN_ENABLE; |
1073 | } else { | 1059 | } else { |
1074 | /* Set PCS regiseter for forced speed */ | 1060 | /* Set PCS register for forced speed */ |
1075 | 1061 | ||
1076 | /* Turn off bits for full duplex, speed, and autoneg */ | 1062 | /* Turn off bits for full duplex, speed, and autoneg */ |
1077 | reg &= ~(E1000_PCS_LCTL_FSV_1000 | | 1063 | reg &= ~(E1000_PCS_LCTL_FSV_1000 | |
@@ -1092,8 +1078,7 @@ static s32 igb_configure_pcs_link_82575(struct e1000_hw *hw) | |||
1092 | E1000_PCS_LCTL_FORCE_LINK | | 1078 | E1000_PCS_LCTL_FORCE_LINK | |
1093 | E1000_PCS_LCTL_FLV_LINK_UP; | 1079 | E1000_PCS_LCTL_FLV_LINK_UP; |
1094 | 1080 | ||
1095 | hw_dbg(hw, | 1081 | hw_dbg("Wrote 0x%08X to PCS_LCTL to configure forced link\n", |
1096 | "Wrote 0x%08X to PCS_LCTL to configure forced link\n", | ||
1097 | reg); | 1082 | reg); |
1098 | } | 1083 | } |
1099 | wr32(E1000_PCS_LCTL, reg); | 1084 | wr32(E1000_PCS_LCTL, reg); |
@@ -1138,7 +1123,7 @@ out: | |||
1138 | static s32 igb_reset_init_script_82575(struct e1000_hw *hw) | 1123 | static s32 igb_reset_init_script_82575(struct e1000_hw *hw) |
1139 | { | 1124 | { |
1140 | if (hw->mac.type == e1000_82575) { | 1125 | if (hw->mac.type == e1000_82575) { |
1141 | hw_dbg(hw, "Running reset init script for 82575\n"); | 1126 | hw_dbg("Running reset init script for 82575\n"); |
1142 | /* SerDes configuration via SERDESCTRL */ | 1127 | /* SerDes configuration via SERDESCTRL */ |
1143 | igb_write_8bit_ctrl_reg(hw, E1000_SCTL, 0x00, 0x0C); | 1128 | igb_write_8bit_ctrl_reg(hw, E1000_SCTL, 0x00, 0x0C); |
1144 | igb_write_8bit_ctrl_reg(hw, E1000_SCTL, 0x01, 0x78); | 1129 | igb_write_8bit_ctrl_reg(hw, E1000_SCTL, 0x01, 0x78); |