summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/link.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-08-27 17:00:05 +0200
committerJohn W. Linville <linville@tuxdriver.com>2012-09-05 14:53:31 -0400
commit381c726c09bb43aea8088ede5ce24eaa158289dc (patch)
tree93b35366411dfaf459670acb9b1ad310a4482648 /drivers/net/wireless/ath/ath9k/link.c
parent26228959938b25bd41311a3f133a695b9da60e72 (diff)
downloadlinux-381c726c09bb43aea8088ede5ce24eaa158289dc.tar.gz
linux-381c726c09bb43aea8088ede5ce24eaa158289dc.tar.xz
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.c9
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 d4549e9aac5c..1c241921f95e 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);