diff options
author | Rajkumar Manoharan <rmanohar@qca.qualcomm.com> | 2011-09-14 04:50:30 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-09-16 16:45:34 -0400 |
commit | 7db062ac4bafac040afb28faf355fc2acb426413 (patch) | |
tree | 4ef63b8d821a16d70c3ef8ba2d354ea54f3a11a7 /drivers | |
parent | b54af8af49cd93c1ac33e3a8f0bb2f5acc8c7d0e (diff) |
ath9k_hw: Do full chip reset on 11A channels for AR9003
AR9003 seems to have issues sometimes with fast channel change
in 5GHz and this case is handled specifically for AR9280 by doing
a full reset. Let's do a full reset for 5GHz channles of AR9380
& for all channels of AR9280 pci chips.
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/hw.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c index 4ace66c9d59d..f2de7ee047ce 100644 --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c | |||
@@ -1499,14 +1499,16 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan, | |||
1499 | } | 1499 | } |
1500 | ah->noise = ath9k_hw_getchan_noise(ah, chan); | 1500 | ah->noise = ath9k_hw_getchan_noise(ah, chan); |
1501 | 1501 | ||
1502 | if ((AR_SREV_9280(ah) && common->bus_ops->ath_bus_type == ATH_PCI) || | ||
1503 | (AR_SREV_9300_20_OR_LATER(ah) && IS_CHAN_5GHZ(chan))) | ||
1504 | bChannelChange = false; | ||
1505 | |||
1502 | if (bChannelChange && | 1506 | if (bChannelChange && |
1503 | (ah->chip_fullsleep != true) && | 1507 | (ah->chip_fullsleep != true) && |
1504 | (ah->curchan != NULL) && | 1508 | (ah->curchan != NULL) && |
1505 | (chan->channel != ah->curchan->channel) && | 1509 | (chan->channel != ah->curchan->channel) && |
1506 | ((chan->channelFlags & CHANNEL_ALL) == | 1510 | ((chan->channelFlags & CHANNEL_ALL) == |
1507 | (ah->curchan->channelFlags & CHANNEL_ALL)) && | 1511 | (ah->curchan->channelFlags & CHANNEL_ALL))) { |
1508 | (!AR_SREV_9280(ah) || AR_DEVID_7010(ah))) { | ||
1509 | |||
1510 | if (ath9k_hw_channel_change(ah, chan)) { | 1512 | if (ath9k_hw_channel_change(ah, chan)) { |
1511 | ath9k_hw_loadnf(ah, ah->curchan); | 1513 | ath9k_hw_loadnf(ah, ah->curchan); |
1512 | ath9k_hw_start_nfcal(ah, true); | 1514 | ath9k_hw_start_nfcal(ah, true); |