e1000e: use hardware writeback batching
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Wed, 29 Sep 2010 21:38:49 +0000 (21:38 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 Oct 2010 00:59:31 +0000 (17:59 -0700)
commit3a3b75860527a11ba5035c6aa576079245d09e2a
tree0dbd487fe8910a02c39ab4f84da6d16ebe6d29e3
parent6af3b9ebfea38d0a057fbd7bdcecc61ac5662f02
e1000e: use hardware writeback batching

Most e1000e parts support batching writebacks.  The problem with this is
that when some of the TADV or TIDV timers are not set, Tx can sit forever.

This is solved in this patch with write flushes using the Flush Partial
Descriptors (FPD) bit in TIDV and RDTR.

This improves bus utilization and removes partial writes on e1000e,
particularly from 82571 parts in S5500 chipset based machines.

Only ES2LAN and 82571/2 parts are included in this optimization, to reduce
testing load.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Emil Tantilov <emil.s.tantilov@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/e1000e/82571.c
drivers/net/e1000e/defines.h
drivers/net/e1000e/e1000.h
drivers/net/e1000e/es2lan.c
drivers/net/e1000e/netdev.c
drivers/net/e1000e/param.c