diff options
| author | Takashi Iwai <tiwai@suse.de> | 2012-05-21 12:45:18 +0200 | 
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2012-05-21 12:45:18 +0200 | 
| commit | 775b2449bdba7c97dda9f274c92bf7a83dac4142 (patch) | |
| tree | b4bee45c13762ea93642b1e38c62de454e51cf5d /drivers/net/ethernet/intel/e1000e/param.c | |
| parent | 21363cf0ca5c9c62e34e37422fb1d13d70d3de3c (diff) | |
| parent | 5fb86e5d4a951ddb0474cdfd809380c8e2a8d101 (diff) | |
| download | olio-linux-3.10-775b2449bdba7c97dda9f274c92bf7a83dac4142.tar.xz olio-linux-3.10-775b2449bdba7c97dda9f274c92bf7a83dac4142.zip  | |
Merge branch 'topic/asoc' into for-linus
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/param.c')
| -rw-r--r-- | drivers/net/ethernet/intel/e1000e/param.c | 99 | 
1 files changed, 53 insertions, 46 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/param.c b/drivers/net/ethernet/intel/e1000e/param.c index ff796e42c3e..16adeb9418a 100644 --- a/drivers/net/ethernet/intel/e1000e/param.c +++ b/drivers/net/ethernet/intel/e1000e/param.c @@ -106,7 +106,7 @@ E1000_PARAM(RxAbsIntDelay, "Receive Absolute Interrupt Delay");  /*   * Interrupt Throttle Rate (interrupts/sec)   * - * Valid Range: 100-100000 (0=off, 1=dynamic, 3=dynamic conservative) + * Valid Range: 100-100000 or one of: 0=off, 1=dynamic, 3=dynamic conservative   */  E1000_PARAM(InterruptThrottleRate, "Interrupt Throttling Rate");  #define DEFAULT_ITR 3 @@ -344,53 +344,60 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter)  		if (num_InterruptThrottleRate > bd) {  			adapter->itr = InterruptThrottleRate[bd]; -			switch (adapter->itr) { -			case 0: -				e_info("%s turned off\n", opt.name); -				break; -			case 1: -				e_info("%s set to dynamic mode\n", opt.name); -				adapter->itr_setting = adapter->itr; -				adapter->itr = 20000; -				break; -			case 3: -				e_info("%s set to dynamic conservative mode\n", -					opt.name); -				adapter->itr_setting = adapter->itr; -				adapter->itr = 20000; -				break; -			case 4: -				e_info("%s set to simplified (2000-8000 ints) " -				       "mode\n", opt.name); -				adapter->itr_setting = 4; -				break; -			default: -				/* -				 * Save the setting, because the dynamic bits -				 * change itr. -				 */ -				if (e1000_validate_option(&adapter->itr, &opt, -							  adapter) && -				    (adapter->itr == 3)) { -					/* -					 * In case of invalid user value, -					 * default to conservative mode. -					 */ -					adapter->itr_setting = adapter->itr; -					adapter->itr = 20000; -				} else { -					/* -					 * Clear the lower two bits because -					 * they are used as control. -					 */ -					adapter->itr_setting = -						adapter->itr & ~3; -				} -				break; -			} + +			/* +			 * Make sure a message is printed for non-special +			 * values.  And in case of an invalid option, display +			 * warning, use default and got through itr/itr_setting +			 * adjustment logic below +			 */ +			if ((adapter->itr > 4) && +			    e1000_validate_option(&adapter->itr, &opt, adapter)) +				adapter->itr = opt.def;  		} else { -			adapter->itr_setting = opt.def; +			/* +			 * If no option specified, use default value and go +			 * through the logic below to adjust itr/itr_setting +			 */ +			adapter->itr = opt.def; + +			/* +			 * Make sure a message is printed for non-special +			 * default values +			 */ +			if (adapter->itr > 40) +				e_info("%s set to default %d\n", opt.name, +				       adapter->itr); +		} + +		adapter->itr_setting = adapter->itr; +		switch (adapter->itr) { +		case 0: +			e_info("%s turned off\n", opt.name); +			break; +		case 1: +			e_info("%s set to dynamic mode\n", opt.name); +			adapter->itr = 20000; +			break; +		case 3: +			e_info("%s set to dynamic conservative mode\n", +			       opt.name);  			adapter->itr = 20000; +			break; +		case 4: +			e_info("%s set to simplified (2000-8000 ints) mode\n", +			       opt.name); +			break; +		default: +			/* +			 * Save the setting, because the dynamic bits +			 * change itr. +			 * +			 * Clear the lower two bits because +			 * they are used as control. +			 */ +			adapter->itr_setting &= ~3; +			break;  		}  	}  	{ /* Interrupt Mode */  |