diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-12-13 02:40:54 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-13 15:23:33 -0500 |
commit | 1bf38661822049931a0ab8d2b43153b26cc919f6 (patch) | |
tree | bea1bec029d0c8fa879dfef06a40798408c8f6dd /drivers/net/wireless/ath/ath9k/main.c | |
parent | 1782352d4908c79d195b43e0c1b6b109e0d93d05 (diff) |
ath9k_hw: fix PA predistortion training power selection
The EEPROM contains scale factors for the tx power, which define
the range of allowable difference between target power and training
power. If the difference is too big, PA predistortion cannot be used.
For 2.4 GHz there is only one scale factor, for 5 GHz there are
three, depending on the specific frequency range.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index d49dacbc96a7..c68205dea1fa 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -373,6 +373,9 @@ void ath_paprd_calibrate(struct work_struct *work) | |||
373 | if (!caldata) | 373 | if (!caldata) |
374 | return; | 374 | return; |
375 | 375 | ||
376 | if (ar9003_paprd_init_table(ah) < 0) | ||
377 | return; | ||
378 | |||
376 | skb = alloc_skb(len, GFP_KERNEL); | 379 | skb = alloc_skb(len, GFP_KERNEL); |
377 | if (!skb) | 380 | if (!skb) |
378 | return; | 381 | return; |
@@ -388,7 +391,6 @@ void ath_paprd_calibrate(struct work_struct *work) | |||
388 | memcpy(hdr->addr3, hw->wiphy->perm_addr, ETH_ALEN); | 391 | memcpy(hdr->addr3, hw->wiphy->perm_addr, ETH_ALEN); |
389 | 392 | ||
390 | ath9k_ps_wakeup(sc); | 393 | ath9k_ps_wakeup(sc); |
391 | ar9003_paprd_init_table(ah); | ||
392 | for (chain = 0; chain < AR9300_MAX_CHAINS; chain++) { | 394 | for (chain = 0; chain < AR9300_MAX_CHAINS; chain++) { |
393 | if (!(common->tx_chainmask & BIT(chain))) | 395 | if (!(common->tx_chainmask & BIT(chain))) |
394 | continue; | 396 | continue; |