diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/eeprom_def.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/eeprom_def.c | 23 | 
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_def.c b/drivers/net/wireless/ath/ath9k/eeprom_def.c index 76b4d65472d..a3ccb1b9638 100644 --- a/drivers/net/wireless/ath/ath9k/eeprom_def.c +++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c @@ -451,9 +451,10 @@ static void ath9k_hw_def_set_board_values(struct ath_hw *ah,  		ath9k_hw_analog_shift_rmw(ah, AR_AN_TOP2,  					  AR_AN_TOP2_LOCALBIAS,  					  AR_AN_TOP2_LOCALBIAS_S, -					  pModal->local_bias); +					  !!(pModal->lna_ctl & +					     LNA_CTL_LOCAL_BIAS));  		REG_RMW_FIELD(ah, AR_PHY_XPA_CFG, AR_PHY_FORCE_XPA_CFG, -			      pModal->force_xpaon); +			      !!(pModal->lna_ctl & LNA_CTL_FORCE_XPA));  	}  	REG_RMW_FIELD(ah, AR_PHY_SETTLING, AR_PHY_SETTLING_SWITCH, @@ -1062,15 +1063,19 @@ static void ath9k_hw_set_def_power_per_rate_table(struct ath_hw *ah,  	case 1:  		break;  	case 2: -		scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN; +		if (scaledPower > REDUCE_SCALED_POWER_BY_TWO_CHAIN) +			scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN; +		else +			scaledPower = 0;  		break;  	case 3: -		scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN; +		if (scaledPower > REDUCE_SCALED_POWER_BY_THREE_CHAIN) +			scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN; +		else +			scaledPower = 0;  		break;  	} -	scaledPower = max((u16)0, scaledPower); -  	if (IS_CHAN_2GHZ(chan)) {  		numCtlModes = ARRAY_SIZE(ctlModesFor11g) -  			SUB_NUM_CTL_MODES_AT_2G_40; @@ -1428,9 +1433,9 @@ static u8 ath9k_hw_def_get_num_ant_config(struct ath_hw *ah,  	num_ant_config = 1; -	if (pBase->version >= 0x0E0D) -		if (pModal->useAnt1) -			num_ant_config += 1; +	if (pBase->version >= 0x0E0D && +	    (pModal->lna_ctl & LNA_CTL_USE_ANT1)) +		num_ant_config += 1;  	return num_ant_config;  }  |