ath9k: fix bug in tx power
The ath9k driver subtracts 3 dBm to the txpower as with two radios the signal power is doubled. The resulting value is assigned in an u16 which overflows and makes the card work at full power. Cc: stable@kernel.org Signed-off-by: Matteo Croce <matteo@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
d89197c7f3
Коммит
841051602e
|
@ -1063,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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче