linux-stable/drivers/net/ethernet/intel
David Ertman f7235ef669 e1000e: Resolve issues with Management Engine (ME) briefly blocking PHY resets
On a ME enabled system with the cable out, the driver init flow would
generate an erroneous message indicating that resets were being blocked
by an active ME session.  Cause was ME clearing the semaphore bit to
block further PHY resets for up to 50 msec during power-on/cycle.  After
this interval, ME would re-set the bit and allow PHY resets.

To resolve this, change the flow of e1000e_phy_hw_reset_generic() to
utilize a delay and retry method.  Poll the FWSM register to minimize
any extra time added to the flow.  If the delay times out at 100ms
(checked in 10msec increments), then return the value E1000_BLK_PHY_RESET,
as this is the accurate state of the PHY.  Attempting to alter just the
call to e1000e_phy_hw_reset_generic() in e1000_init_phy_workarounds_pchlan()
just caused the problem to move further down the flow.

Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Acked-by: Bruce W. Allan <bruce.w.allan@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2014-03-07 21:24:55 -08:00
..
e1000 drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
e1000e e1000e: Resolve issues with Management Engine (ME) briefly blocking PHY resets 2014-03-07 21:24:55 -08:00
i40e i40e/i40evf: Bump pf&vf build versions 2014-03-06 18:42:08 -08:00
i40evf i40e/i40evf: Bump pf&vf build versions 2014-03-06 18:42:08 -08:00
igb igb: Update license text to remove FSF address and update copyright. 2014-02-26 15:54:52 -05:00
igbvf igbvf: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-02-18 15:33:31 -05:00
ixgb drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
ixgbe ixgbe: implement SIOCGHWTSTAMP ioctl 2014-03-02 19:06:44 -05:00
ixgbevf ixgbevf: add check for CHECKSUM_PARTIAL when doing TSO 2014-02-28 12:40:57 -05:00
e100.c e100: Fix "disabling already-disabled device" warning 2014-01-30 16:46:14 -08:00
Kconfig i40e: add DCB option to Kconfig 2014-01-17 19:13:04 -08:00
Makefile i40evf: add driver to kernel build system 2013-12-31 16:27:49 -08:00