diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-08-27 17:00:05 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-09-05 14:53:31 -0400 |
commit | 381c726c09bb43aea8088ede5ce24eaa158289dc (patch) | |
tree | 93b35366411dfaf459670acb9b1ad310a4482648 /drivers/net/wireless/ath/ath9k/link.c | |
parent | 26228959938b25bd41311a3f133a695b9da60e72 (diff) | |
download | op-kernel-dev-381c726c09bb43aea8088ede5ce24eaa158289dc.zip op-kernel-dev-381c726c09bb43aea8088ede5ce24eaa158289dc.tar.gz |
ath9k_hw: calibrate PA input for PA predistortion
Re-train if the calibrated PA linearization curve is out of bounds
(affects AR933x and AR9485).
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/link.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/link.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/link.c b/drivers/net/wireless/ath/ath9k/link.c index d4549e9..1c24192 100644 --- a/drivers/net/wireless/ath/ath9k/link.c +++ b/drivers/net/wireless/ath/ath9k/link.c @@ -254,6 +254,7 @@ void ath_paprd_calibrate(struct work_struct *work) int chain_ok = 0; int chain; int len = 1800; + int ret; if (!caldata) return; @@ -302,7 +303,13 @@ void ath_paprd_calibrate(struct work_struct *work) break; } - if (ar9003_paprd_create_curve(ah, caldata, chain)) { + ret = ar9003_paprd_create_curve(ah, caldata, chain); + if (ret == -EINPROGRESS) { + ath_dbg(common, CALIBRATE, + "PAPRD curve on chain %d needs to be re-trained\n", + chain); + break; + } else if (ret) { ath_dbg(common, CALIBRATE, "PAPRD create curve failed on chain %d\n", chain); |