Sven Eckelmann <sven@xxxxxxxxxxxxx> wrote: > The ath9k driver uses as maximum allowed txpower the constant > MAX_RATE_POWER. It is used to set a maximum txpower limit for the PHY > (which is combined txpower) and also the maximum txpower for per chain > rates. Its value 63 is derived from the maximum number the registers can > store for the per chain txpower. > > The max txpower a user can set because of this is 31 dBm (floor(63 / 2)). > This also means that a device with multiple tx chains is even limited > further: > > * 1 chain: 31 dBm per chain > * 2 chains: 28 dBm per chain > * 3 chains: 26 dBm per chain > > This combined txpower limit of 31 dBm becomes even more problematic when > some extra antenna gain is set in the EEPROM. A high power device is then > no longer able to reach its potential limits. > > Instead the code dealing with the combined txpower must use a higher limit > than 63 and only the code dealing with the per chain txpower have to use > the limit of 63. Since the antenna gain can be quite large and 8 bit > variables are often used in ath9k for txpower, a large, divisible by two > number like 254 is a good choice for this new limit. > > Signed-off-by: Sven Eckelmann <sven@xxxxxxxxxxxxx> > Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx> Patch applied to ath-next branch of ath.git, thanks. b037b107565f ath9k: Differentiate between max combined and per chain power -- https://patchwork.kernel.org/patch/10861389/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches