aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000/e1000_hw.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/e1000/e1000_hw.c')
-rw-r--r--drivers/net/e1000/e1000_hw.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c
index 29e6f6aba9e2..0e2ccf50d4d7 100644
--- a/drivers/net/e1000/e1000_hw.c
+++ b/drivers/net/e1000/e1000_hw.c
@@ -3942,14 +3942,15 @@ e1000_phy_powerdown_workaround(struct e1000_hw *hw)
3942 E1000_WRITE_REG(hw, PHY_CTRL, reg | E1000_PHY_CTRL_GBE_DISABLE | 3942 E1000_WRITE_REG(hw, PHY_CTRL, reg | E1000_PHY_CTRL_GBE_DISABLE |
3943 E1000_PHY_CTRL_NOND0A_GBE_DISABLE); 3943 E1000_PHY_CTRL_NOND0A_GBE_DISABLE);
3944 3944
3945 /* Write VR power-down enable */ 3945 /* Write VR power-down enable - bits 9:8 should be 10b */
3946 e1000_read_phy_reg(hw, IGP3_VR_CTRL, &phy_data); 3946 e1000_read_phy_reg(hw, IGP3_VR_CTRL, &phy_data);
3947 e1000_write_phy_reg(hw, IGP3_VR_CTRL, phy_data | 3947 phy_data |= (1 << 9);
3948 IGP3_VR_CTRL_MODE_SHUT); 3948 phy_data &= ~(1 << 8);
3949 e1000_write_phy_reg(hw, IGP3_VR_CTRL, phy_data);
3949 3950
3950 /* Read it back and test */ 3951 /* Read it back and test */
3951 e1000_read_phy_reg(hw, IGP3_VR_CTRL, &phy_data); 3952 e1000_read_phy_reg(hw, IGP3_VR_CTRL, &phy_data);
3952 if ((phy_data & IGP3_VR_CTRL_MODE_SHUT) || retry) 3953 if (((phy_data & IGP3_VR_CTRL_MODE_MASK) == IGP3_VR_CTRL_MODE_SHUT) || retry)
3953 break; 3954 break;
3954 3955
3955 /* Issue PHY reset and repeat at most one more time */ 3956 /* Issue PHY reset and repeat at most one more time */