diff options
author | Matthew Vick <matthew.vick@intel.com> | 2012-04-14 01:20:32 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-05-17 08:04:21 -0400 |
commit | 0c02dd983f0971813fcae81672b9533c35a5b2db (patch) | |
tree | 74c7c3bf1d748f62feb2cf0a0ffcf92cf1378c86 /drivers | |
parent | a3060858c207d944194a30478d30d3e1822e23f3 (diff) |
igb: Disable the BMC-to-OS Watchdog Enable bit for DMAC.
Under certain scenarios, it's possible that bursty manageability traffic
over the BMC-to-OS path may overrun the internal manageability receive
buffer causing dropped manageability packets. Clearing this bit prevents
this situation by interrupting coalescing to allow manageability traffic
through.
Signed-off-by: Matthew Vick <matthew.vick@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')
-rw-r--r-- | drivers/net/ethernet/intel/igb/e1000_defines.h | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/igb/e1000_defines.h b/drivers/net/ethernet/intel/igb/e1000_defines.h index 6409f85632f5..ec7e4fe3e3ee 100644 --- a/drivers/net/ethernet/intel/igb/e1000_defines.h +++ b/drivers/net/ethernet/intel/igb/e1000_defines.h | |||
@@ -301,6 +301,8 @@ | |||
301 | * transactions */ | 301 | * transactions */ |
302 | #define E1000_DMACR_DMAC_LX_SHIFT 28 | 302 | #define E1000_DMACR_DMAC_LX_SHIFT 28 |
303 | #define E1000_DMACR_DMAC_EN 0x80000000 /* Enable DMA Coalescing */ | 303 | #define E1000_DMACR_DMAC_EN 0x80000000 /* Enable DMA Coalescing */ |
304 | /* DMA Coalescing BMC-to-OS Watchdog Enable */ | ||
305 | #define E1000_DMACR_DC_BMC2OSW_EN 0x00008000 | ||
304 | 306 | ||
305 | #define E1000_DMCTXTH_DMCTTHR_MASK 0x00000FFF /* DMA Coalescing Transmit | 307 | #define E1000_DMCTXTH_DMCTTHR_MASK 0x00000FFF /* DMA Coalescing Transmit |
306 | * Threshold */ | 308 | * Threshold */ |
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 9bbf1a275947..dd3bfe8cd36c 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -7147,6 +7147,9 @@ static void igb_init_dmac(struct igb_adapter *adapter, u32 pba) | |||
7147 | 7147 | ||
7148 | /* watchdog timer= +-1000 usec in 32usec intervals */ | 7148 | /* watchdog timer= +-1000 usec in 32usec intervals */ |
7149 | reg |= (1000 >> 5); | 7149 | reg |= (1000 >> 5); |
7150 | |||
7151 | /* Disable BMC-to-OS Watchdog Enable */ | ||
7152 | reg &= ~E1000_DMACR_DC_BMC2OSW_EN; | ||
7150 | wr32(E1000_DMACR, reg); | 7153 | wr32(E1000_DMACR, reg); |
7151 | 7154 | ||
7152 | /* | 7155 | /* |