aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2010-04-15 17:39:24 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-04-16 15:43:44 -0400
commit6c94fdc97a27bd681afeaf05d9101b3f9a06f986 (patch)
tree70d3911410b33c7de95ac0d14c4e9a79719c53b3 /drivers
parent78ec26778803abd4ebb105bb19c729100c829837 (diff)
ath9k_hw: skip WEP aggregation enable code for AR9003
The AR9002 hardware code enables aggregation for WEP but mac80211 doesn't enable aggregation with WEP, and the AR9003 code family does not need this so skip it for now for AR9003 but leave the code and annotate we should eventually consider how to remove this in consideration for the HAL unification goals. Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_hw.c12
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c7
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.h1
3 files changed, 15 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_hw.c b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
index cf36f6467914..17b98a3f33bc 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_hw.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
@@ -555,6 +555,18 @@ void ar9002_hw_enable_async_fifo(struct ath_hw *ah)
555 } 555 }
556} 556}
557 557
558/*
559 * We don't enable WEP aggregation on mac80211 but we keep this
560 * around for HAL unification purposes.
561 */
562void ar9002_hw_enable_wep_aggregation(struct ath_hw *ah)
563{
564 if (AR_SREV_9287_12_OR_LATER(ah)) {
565 REG_SET_BIT(ah, AR_PCU_MISC_MODE2,
566 AR_PCU_MISC_MODE2_ENABLE_AGGWEP);
567 }
568}
569
558/* Sets up the AR5008/AR9001/AR9002 hardware familiy callbacks */ 570/* Sets up the AR5008/AR9001/AR9002 hardware familiy callbacks */
559void ar9002_hw_attach_ops(struct ath_hw *ah) 571void ar9002_hw_attach_ops(struct ath_hw *ah)
560{ 572{
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 1dc1b485c3c3..a6f8032e54d6 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1265,12 +1265,9 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
1265 1265
1266 ath9k_hw_init_global_settings(ah); 1266 ath9k_hw_init_global_settings(ah);
1267 1267
1268 if (!AR_SREV_9300_20_OR_LATER(ah)) 1268 if (!AR_SREV_9300_20_OR_LATER(ah)) {
1269 ar9002_hw_enable_async_fifo(ah); 1269 ar9002_hw_enable_async_fifo(ah);
1270 1270 ar9002_hw_enable_wep_aggregation(ah);
1271 if (AR_SREV_9287_12_OR_LATER(ah)) {
1272 REG_SET_BIT(ah, AR_PCU_MISC_MODE2,
1273 AR_PCU_MISC_MODE2_ENABLE_AGGWEP);
1274 } 1271 }
1275 1272
1276 REG_WRITE(ah, AR_STA_ID1, 1273 REG_WRITE(ah, AR_STA_ID1,
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index e4eacdd4c810..affb848a2b98 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -851,6 +851,7 @@ void ath9k_hw_get_delta_slope_vals(struct ath_hw *ah, u32 coef_scaled,
851void ar9002_hw_cck_chan14_spread(struct ath_hw *ah); 851void ar9002_hw_cck_chan14_spread(struct ath_hw *ah);
852int ar9002_hw_rf_claim(struct ath_hw *ah); 852int ar9002_hw_rf_claim(struct ath_hw *ah);
853void ar9002_hw_enable_async_fifo(struct ath_hw *ah); 853void ar9002_hw_enable_async_fifo(struct ath_hw *ah);
854void ar9002_hw_enable_wep_aggregation(struct ath_hw *ah);
854 855
855/* 856/*
856 * Code specifric to AR9003, we stuff these here to avoid callbacks 857 * Code specifric to AR9003, we stuff these here to avoid callbacks