OpenCloudOS-Kernel/drivers/net/ethernet/intel/e1000e
Bruce Allan e08f626b33 e1000e: workaround DMA unit hang on I218
At 1000Mbps link speed, one of the MAC's internal clocks can be stopped for
up to 4us when entering K1 (a power mode of the MAC-PHY interconnect).  If
the MAC is waiting for completion indications for 2 DMA write requests into
Host memory (e.g. descriptor writeback or Rx packet writing) and the
indications occur while the clock is stopped, both indications will be
missed by the MAC causing the MAC to wait for the completion indications
and be unable to generate further DMA write requests.  This results in an
apparent hardware hang.

Work-around the issue by disabling the de-assertion of the clock request
when 1000Mbps link is acquired (K1 must be disabled while doing this).

Signed-off-by: Bruce 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>
2013-03-05 01:01:43 -08:00
..
80003es2lan.c e1000e: cosmetic move of #defines to the new 80003es2lan.h 2013-02-04 23:32:20 -08:00
80003es2lan.h e1000e: cosmetic move of #defines to the new 80003es2lan.h 2013-02-04 23:32:20 -08:00
82571.c e1000e: cleanup checkpatch braces checks 2013-02-05 00:37:47 -08:00
82571.h e1000e: cosmetic move of #defines and prototypes to the new 82571.h 2013-02-04 23:24:41 -08:00
Makefile e1000e: update copyright date 2013-01-27 01:22:53 -08:00
defines.h e1000e: cosmetic move of #defines and prototypes to the new ich8lan.h 2013-02-04 23:45:47 -08:00
e1000.h e1000e: cosmetic move of #defines and prototypes to the new manage.h 2013-02-05 00:12:27 -08:00
ethtool.c e1000e: cleanup checkpatch braces checks 2013-02-05 00:37:47 -08:00
hw.h e1000e: convert enums of register offsets and move #defines to regs.h 2013-02-05 00:30:59 -08:00
ich8lan.c e1000e: workaround DMA unit hang on I218 2013-03-05 01:01:43 -08:00
ich8lan.h e1000e: workaround DMA unit hang on I218 2013-03-05 01:01:43 -08:00
mac.c e1000e: use generic IEEE MII definitions 2013-01-31 22:34:59 -08:00
mac.h e1000e: cosmetic move of function prototypes to the new mac.h 2013-02-04 23:52:44 -08:00
manage.c e1000e: cosmetic move of #defines and prototypes to the new manage.h 2013-02-05 00:12:27 -08:00
manage.h e1000e: cosmetic move of #defines and prototypes to the new manage.h 2013-02-05 00:12:27 -08:00
netdev.c e1000e: display a warning message when SmartSpeed works 2013-02-15 21:46:46 -08:00
nvm.c e1000e: update copyright date 2013-01-27 01:22:53 -08:00
nvm.h e1000e: cosmetic move of #defines and function prototypes to the new nvm.h 2013-02-05 00:05:41 -08:00
param.c e1000e: cleanup some whitespace and indentation issues 2013-01-31 22:16:11 -08:00
phy.c e1000e: cleanup checkpatch braces checks 2013-02-05 00:37:47 -08:00
phy.h e1000e: cosmetic move of #defines and function prototypes to the new phy.h 2013-02-04 23:59:16 -08:00
ptp.c e1000e: resolve -Wunused-parameter compile warnings 2013-01-31 22:28:39 -08:00
regs.h e1000e: workaround DMA unit hang on I218 2013-03-05 01:01:43 -08:00