• Sven Eckelmann's avatar
    ath9k: Differentiate between max combined and per chain power · b037b107
    Sven Eckelmann authored
    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: default avatarSven Eckelmann <sven@narfation.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    b037b107
hw.c 84.9 KB