Commit 070f6ffb authored by Jeff Kirsher's avatar Jeff Kirsher Committed by Jeff Garzik
Browse files

e1000: fix VR powerdown code



On ich systems during PHY power down to D3, the voltage regulators
were left on.

Signed-off-by: default avatarAuke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 2ce9047f
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -3942,14 +3942,15 @@ e1000_phy_powerdown_workaround(struct e1000_hw *hw)
        E1000_WRITE_REG(hw, PHY_CTRL, reg | E1000_PHY_CTRL_GBE_DISABLE |
                        E1000_PHY_CTRL_NOND0A_GBE_DISABLE);

        /* Write VR power-down enable */
        /* Write VR power-down enable - bits 9:8 should be 10b */
        e1000_read_phy_reg(hw, IGP3_VR_CTRL, &phy_data);
        e1000_write_phy_reg(hw, IGP3_VR_CTRL, phy_data |
                            IGP3_VR_CTRL_MODE_SHUT);
        phy_data |= (1 << 9);
        phy_data &= ~(1 << 8);
        e1000_write_phy_reg(hw, IGP3_VR_CTRL, phy_data);

        /* Read it back and test */
        e1000_read_phy_reg(hw, IGP3_VR_CTRL, &phy_data);
        if ((phy_data & IGP3_VR_CTRL_MODE_SHUT) || retry)
        if (((phy_data & IGP3_VR_CTRL_MODE_MASK) == IGP3_VR_CTRL_MODE_SHUT) || retry)
            break;

        /* Issue PHY reset and repeat at most one more time */
+1 −0
Original line number Diff line number Diff line
@@ -3173,6 +3173,7 @@ struct e1000_host_command_info {
#define IGP3_VR_CTRL \
        PHY_REG(776, 18) /* Voltage regulator control register */
#define IGP3_VR_CTRL_MODE_SHUT       0x0200 /* Enter powerdown, shutdown VRs */
#define IGP3_VR_CTRL_MODE_MASK       0x0300 /* Shutdown VR Mask */

#define IGP3_CAPABILITY \
        PHY_REG(776, 19) /* IGP3 Capability Register */