aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>2011-10-25 07:17:36 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-11-02 15:23:12 -0400
commit93348928f2c980718434b1bc42f9d7638d665db4 (patch)
treeecab668b838bf175e2b88347f9501e9acd62e005 /drivers/net/wireless
parent98fb2cc115b4ef1ea0a2d87a170c183bd395dd6c (diff)
ath9k_hw: Fix noise floor calibration timeout on fast channel change
During the fast channel change noise floor values are being loaded twice at init_cal and after channel_change. The commit "ath9k_hw: Improve fast channel change for AR9003 chips" overlooked it that caused failure to load nf while doing bgscan. This patch performs noise floor calibration after the fast and full reset. Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_calib.c4
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_calib.c3
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c3
3 files changed, 3 insertions, 7 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_calib.c b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
index e0ab0657cc3..88279e325dc 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_calib.c
@@ -868,10 +868,6 @@ static bool ar9002_hw_init_cal(struct ath_hw *ah, struct ath9k_channel *chan)
868 /* Do PA Calibration */ 868 /* Do PA Calibration */
869 ar9002_hw_pa_cal(ah, true); 869 ar9002_hw_pa_cal(ah, true);
870 870
871 /* Do NF Calibration after DC offset and other calibrations */
872 ath9k_hw_loadnf(ah, chan);
873 ath9k_hw_start_nfcal(ah, true);
874
875 if (ah->caldata) 871 if (ah->caldata)
876 ah->caldata->nfcal_pending = true; 872 ah->caldata->nfcal_pending = true;
877 873
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
index a4cd1617092..12a730dcb50 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
@@ -1085,9 +1085,6 @@ skip_tx_iqcal:
1085 ar9003_hw_rtt_disable(ah); 1085 ar9003_hw_rtt_disable(ah);
1086 } 1086 }
1087 1087
1088 ath9k_hw_loadnf(ah, chan);
1089 ath9k_hw_start_nfcal(ah, true);
1090
1091 /* Initialize list pointers */ 1088 /* Initialize list pointers */
1092 ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL; 1089 ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL;
1093 ah->supp_cals = IQ_MISMATCH_CAL; 1090 ah->supp_cals = IQ_MISMATCH_CAL;
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index f16d2033081..b479160dc26 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1724,6 +1724,9 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
1724 if (!ath9k_hw_init_cal(ah, chan)) 1724 if (!ath9k_hw_init_cal(ah, chan))
1725 return -EIO; 1725 return -EIO;
1726 1726
1727 ath9k_hw_loadnf(ah, chan);
1728 ath9k_hw_start_nfcal(ah, true);
1729
1727 ENABLE_REGWRITE_BUFFER(ah); 1730 ENABLE_REGWRITE_BUFFER(ah);
1728 1731
1729 ath9k_hw_restore_chainmask(ah); 1732 ath9k_hw_restore_chainmask(ah);