diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2012-12-07 19:35:35 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2013-01-27 03:26:54 -0500 |
commit | 347b5201cb2e8b9e4a20d81582563f51336eb215 (patch) | |
tree | 76a1cae21bbbf49965b8ca2f003377c80e6c46f0 | |
parent | a8fc18910b7f35a59345b5f5cd140c7f64d57d86 (diff) |
e1000e: fix flow-control thresholds for jumbo frames on 82579/I217/I218
The previous static flow-control thresholds were causing unnecessary pause
packets to be transmitted when jumbo frames are configured reducing the
throughput.
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>
-rw-r--r-- | drivers/net/ethernet/intel/e1000e/netdev.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index c15b7e438a44..8bb5d28eca14 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c | |||
@@ -3724,14 +3724,17 @@ void e1000e_reset(struct e1000_adapter *adapter) | |||
3724 | break; | 3724 | break; |
3725 | case e1000_pch2lan: | 3725 | case e1000_pch2lan: |
3726 | case e1000_pch_lpt: | 3726 | case e1000_pch_lpt: |
3727 | fc->high_water = 0x05C20; | ||
3728 | fc->low_water = 0x05048; | ||
3729 | fc->pause_time = 0x0650; | ||
3730 | fc->refresh_time = 0x0400; | 3727 | fc->refresh_time = 0x0400; |
3731 | if (adapter->netdev->mtu > ETH_DATA_LEN) { | 3728 | |
3732 | pba = 14; | 3729 | if (adapter->netdev->mtu <= ETH_DATA_LEN) { |
3733 | ew32(PBA, pba); | 3730 | fc->high_water = 0x05C20; |
3731 | fc->low_water = 0x05048; | ||
3732 | fc->pause_time = 0x0650; | ||
3733 | break; | ||
3734 | } | 3734 | } |
3735 | |||
3736 | fc->high_water = ((pba << 10) * 9 / 10) & E1000_FCRTH_RTH; | ||
3737 | fc->low_water = ((pba << 10) * 8 / 10) & E1000_FCRTL_RTL; | ||
3735 | break; | 3738 | break; |
3736 | } | 3739 | } |
3737 | 3740 | ||