diff options
| author | Lior Levy <lior.levy@intel.com> | 2011-06-04 06:05:03 +0000 | 
|---|---|---|
| committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-06-20 01:11:32 -0700 | 
| commit | f00b0da776fda1abc481578e3932a668f603d72d (patch) | |
| tree | 171d0d49eae79e4463a6c0ce257388ebfe21217b /drivers/net/ethernet/intel/igb | |
| parent | 7500673be30f9467cd1a0e065c93e75c5213b44d (diff) | |
| download | olio-linux-3.10-f00b0da776fda1abc481578e3932a668f603d72d.tar.xz olio-linux-3.10-f00b0da776fda1abc481578e3932a668f603d72d.zip  | |
igb: A fix to VF TX rate limit
There is a need to configure MMW_SIZE in register RTTBCNRM with a correct
value. For 82576 device, the value should be 0x14.
Signed-off-by: Lior Levy <lior.levy@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/igb')
| -rw-r--r-- | drivers/net/ethernet/intel/igb/e1000_regs.h | 1 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 5 | 
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/igb/e1000_regs.h b/drivers/net/ethernet/intel/igb/e1000_regs.h index 35d1e4f2c92..10efcd88dca 100644 --- a/drivers/net/ethernet/intel/igb/e1000_regs.h +++ b/drivers/net/ethernet/intel/igb/e1000_regs.h @@ -117,6 +117,7 @@  /* TX Rate Limit Registers */  #define E1000_RTTDQSEL	0x3604	/* Tx Desc Plane Queue Select - WO */ +#define E1000_RTTBCNRM	0x3690	/* Tx BCN Rate-scheduler MMW */  #define E1000_RTTBCNRC	0x36B0	/* Tx BCN Rate-Scheduler Config - WO */  /* Split and Replication RX Control - RW */ diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index dd3bfe8cd36..64090549722 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -6997,6 +6997,11 @@ static void igb_set_vf_rate_limit(struct e1000_hw *hw, int vf, int tx_rate,  	}  	wr32(E1000_RTTDQSEL, vf); /* vf X uses queue X */ +	/* +	 * Set global transmit compensation time to the MMW_SIZE in RTTBCNRM +	 * register. MMW_SIZE=0x014 if 9728-byte jumbo is supported. +	 */ +	wr32(E1000_RTTBCNRM, 0x14);  	wr32(E1000_RTTBCNRC, bcnrc_val);  }  |