diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2012-10-05 07:44:10 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-10-19 15:53:09 -0400 |
commit | 19f3fa248174b2611d47229db847427092c1849f (patch) | |
tree | 8bb218be9f48274f6d36ec0fcbf8f8480ed68e65 /drivers/net/wireless/rt2x00 | |
parent | cee2c7315f60beeff6137ee59e99acc77d636eeb (diff) |
rt2800: limit TX_PWR_CFG_ values to 0xc
Based on AsicAdjustTxPower function from vendor driver
(2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO)
limit per rate TX power values we program into TX_PWR_CFG_ registers.
Note that on some configurations (devices/rates) is allowed to use
bigger values than 0xc, but we use safe maximum value for now. Further
work need to be done to allow use bigger values than 0xc.
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800lib.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c index 934dd9d9d4dc..6bbd60243dc4 100644 --- a/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c | |||
@@ -2563,7 +2563,8 @@ static u8 rt2800_compensate_txpower(struct rt2x00_dev *rt2x00dev, int is_rate_b, | |||
2563 | } else | 2563 | } else |
2564 | reg_limit = 0; | 2564 | reg_limit = 0; |
2565 | 2565 | ||
2566 | return txpower + delta - reg_limit; | 2566 | txpower = max(0, txpower + delta - reg_limit); |
2567 | return min_t(u8, txpower, 0xc); | ||
2567 | } | 2568 | } |
2568 | 2569 | ||
2569 | static void rt2800_config_txpower(struct rt2x00_dev *rt2x00dev, | 2570 | static void rt2800_config_txpower(struct rt2x00_dev *rt2x00dev, |