aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/e1000e/ich8lan.c
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2011-12-15 19:46:38 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2012-01-26 21:26:43 -0500
commitc077a9065b8d4612e4d55bd53c3563ca10d5c944 (patch)
tree15cc4bdb597ce2e7817269682250982a88bbd6d9 /drivers/net/ethernet/intel/e1000e/ich8lan.c
parent90b82984a4ce689d7b1d7132e50bc61ac6f8b74f (diff)
e1000e: ICHx/PCHx LOMs should use LPLU setting in NVM when going to Sx
When going to Sx with an ICHx/PCH device, the default Low Power Link Up (LPLU, a.k.a. reverse auto-negotiation) behavior should be whatever is set in the NVM. However, the function e1000_suspend_workarounds_ich8lan() called when going to Sx always enabled LPLU in all power states. 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/ich8lan.c')
-rw-r--r--drivers/net/ethernet/intel/e1000e/ich8lan.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 50a61fcf75cc..00b5e34fcfad 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -3698,9 +3698,10 @@ void e1000e_gig_downshift_workaround_ich8lan(struct e1000_hw *hw)
3698 * 3698 *
3699 * During S0 to Sx transition, it is possible the link remains at gig 3699 * During S0 to Sx transition, it is possible the link remains at gig
3700 * instead of negotiating to a lower speed. Before going to Sx, set 3700 * instead of negotiating to a lower speed. Before going to Sx, set
3701 * 'LPLU Enabled' and 'Gig Disable' to force link speed negotiation 3701 * 'Gig Disable' to force link speed negotiation to a lower speed based on
3702 * to a lower speed. For PCH and newer parts, the OEM bits PHY register 3702 * the LPLU setting in the NVM or custom setting. For PCH and newer parts,
3703 * (LED, GbE disable and LPLU configurations) also needs to be written. 3703 * the OEM bits PHY register (LED, GbE disable and LPLU configurations) also
3704 * needs to be written.
3704 **/ 3705 **/
3705void e1000_suspend_workarounds_ich8lan(struct e1000_hw *hw) 3706void e1000_suspend_workarounds_ich8lan(struct e1000_hw *hw)
3706{ 3707{
@@ -3708,7 +3709,7 @@ void e1000_suspend_workarounds_ich8lan(struct e1000_hw *hw)
3708 s32 ret_val; 3709 s32 ret_val;
3709 3710
3710 phy_ctrl = er32(PHY_CTRL); 3711 phy_ctrl = er32(PHY_CTRL);
3711 phy_ctrl |= E1000_PHY_CTRL_D0A_LPLU | E1000_PHY_CTRL_GBE_DISABLE; 3712 phy_ctrl |= E1000_PHY_CTRL_GBE_DISABLE;
3712 ew32(PHY_CTRL, phy_ctrl); 3713 ew32(PHY_CTRL, phy_ctrl);
3713 3714
3714 if (hw->mac.type == e1000_ich8lan) 3715 if (hw->mac.type == e1000_ich8lan)