mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 19:41:00 +07:00
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:
parent
d89197c7f3
commit
841051602e
@ -1063,15 +1063,19 @@ static void ath9k_hw_set_def_power_per_rate_table(struct ath_hw *ah,
|
|||||||
case 1:
|
case 1:
|
||||||
break;
|
break;
|
||||||
case 2:
|
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;
|
break;
|
||||||
case 3:
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
scaledPower = max((u16)0, scaledPower);
|
|
||||||
|
|
||||||
if (IS_CHAN_2GHZ(chan)) {
|
if (IS_CHAN_2GHZ(chan)) {
|
||||||
numCtlModes = ARRAY_SIZE(ctlModesFor11g) -
|
numCtlModes = ARRAY_SIZE(ctlModesFor11g) -
|
||||||
SUB_NUM_CTL_MODES_AT_2G_40;
|
SUB_NUM_CTL_MODES_AT_2G_40;
|
||||||
|
Loading…
Reference in New Issue
Block a user