aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000e/82571.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/e1000e/82571.c')
-rw-r--r--drivers/net/e1000e/82571.c33
1 files changed, 30 insertions, 3 deletions
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c
index 02d67d047d96..d1a45143c2aa 100644
--- a/drivers/net/e1000e/82571.c
+++ b/drivers/net/e1000e/82571.c
@@ -922,9 +922,12 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw)
922 ew32(IMC, 0xffffffff); 922 ew32(IMC, 0xffffffff);
923 icr = er32(ICR); 923 icr = er32(ICR);
924 924
925 if (hw->mac.type == e1000_82571 && 925 /* Install any alternate MAC address into RAR0 */
926 hw->dev_spec.e82571.alt_mac_addr_is_present) 926 ret_val = e1000_check_alt_mac_addr_generic(hw);
927 e1000e_set_laa_state_82571(hw, true); 927 if (ret_val)
928 return ret_val;
929
930 e1000e_set_laa_state_82571(hw, true);
928 931
929 /* Reinitialize the 82571 serdes link state machine */ 932 /* Reinitialize the 82571 serdes link state machine */
930 if (hw->phy.media_type == e1000_media_type_internal_serdes) 933 if (hw->phy.media_type == e1000_media_type_internal_serdes)
@@ -1621,6 +1624,29 @@ static s32 e1000_fix_nvm_checksum_82571(struct e1000_hw *hw)
1621} 1624}
1622 1625
1623/** 1626/**
1627 * e1000_read_mac_addr_82571 - Read device MAC address
1628 * @hw: pointer to the HW structure
1629 **/
1630static s32 e1000_read_mac_addr_82571(struct e1000_hw *hw)
1631{
1632 s32 ret_val = 0;
1633
1634 /*
1635 * If there's an alternate MAC address place it in RAR0
1636 * so that it will override the Si installed default perm
1637 * address.
1638 */
1639 ret_val = e1000_check_alt_mac_addr_generic(hw);
1640 if (ret_val)
1641 goto out;
1642
1643 ret_val = e1000_read_mac_addr_generic(hw);
1644
1645out:
1646 return ret_val;
1647}
1648
1649/**
1624 * e1000_power_down_phy_copper_82571 - Remove link during PHY power down 1650 * e1000_power_down_phy_copper_82571 - Remove link during PHY power down
1625 * @hw: pointer to the HW structure 1651 * @hw: pointer to the HW structure
1626 * 1652 *
@@ -1706,6 +1732,7 @@ static struct e1000_mac_operations e82571_mac_ops = {
1706 .setup_link = e1000_setup_link_82571, 1732 .setup_link = e1000_setup_link_82571,
1707 /* .setup_physical_interface: media type dependent */ 1733 /* .setup_physical_interface: media type dependent */
1708 .setup_led = e1000e_setup_led_generic, 1734 .setup_led = e1000e_setup_led_generic,
1735 .read_mac_addr = e1000_read_mac_addr_82571,
1709}; 1736};
1710 1737
1711static struct e1000_phy_operations e82_phy_ops_igp = { 1738static struct e1000_phy_operations e82_phy_ops_igp = {