aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-04-19 15:18:27 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-04-23 15:35:31 -0400
commite5d821a4ff5bdaba2281b213582e3da7edfb1d3f (patch)
tree92442702676ae27b166796a853a62eae2db8aa6b
parent7c5adc8d83c344dbad251091879baf1244007564 (diff)
ath9k_hw: disable Tx IQ calibration on half/quarter channels
It does not work properly and reduces throughput. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_calib.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_calib.c b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
index 63089cc1fafd..a0387a027db0 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
@@ -1000,10 +1000,12 @@ static bool ar9003_hw_init_cal(struct ath_hw *ah,
1000 if (mci && IS_CHAN_2GHZ(chan) && run_agc_cal) 1000 if (mci && IS_CHAN_2GHZ(chan) && run_agc_cal)
1001 ar9003_mci_init_cal_req(ah, &is_reusable); 1001 ar9003_mci_init_cal_req(ah, &is_reusable);
1002 1002
1003 txiqcal_done = ar9003_hw_tx_iq_cal_run(ah); 1003 if (!(IS_CHAN_HALF_RATE(chan) || IS_CHAN_QUARTER_RATE(chan))) {
1004 REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS); 1004 txiqcal_done = ar9003_hw_tx_iq_cal_run(ah);
1005 udelay(5); 1005 REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS);
1006 REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN); 1006 udelay(5);
1007 REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
1008 }
1007 1009
1008skip_tx_iqcal: 1010skip_tx_iqcal:
1009 if (run_agc_cal || !(ah->ah_flags & AH_FASTCC)) { 1011 if (run_agc_cal || !(ah->ah_flags & AH_FASTCC)) {