aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k
diff options
context:
space:
mode:
authorMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>2011-12-28 08:39:54 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-01-04 14:31:46 -0500
commit98f0a5eb02bbfff662664bf65f469dc4abd701fd (patch)
tree6a8f8fecd18ce83036f6d4cac4b8a7aa1f4e6593 /drivers/net/wireless/ath/ath9k
parent7fbaf3efb042871fce7c9cd706cf9f90d61b5e59 (diff)
ath9k: tx queue enable is read only for EDMA chipsets
for EDMA chip AR_Q_TXE (tx enable for each queue) is read only Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k')
-rw-r--r--drivers/net/wireless/ath/ath9k/beacon.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c
index dc5fd569690f..b8967e482e6e 100644
--- a/drivers/net/wireless/ath/ath9k/beacon.c
+++ b/drivers/net/wireless/ath/ath9k/beacon.c
@@ -356,6 +356,7 @@ void ath_beacon_tasklet(unsigned long data)
356 struct ath_buf *bf = NULL; 356 struct ath_buf *bf = NULL;
357 struct ieee80211_vif *vif; 357 struct ieee80211_vif *vif;
358 struct ath_tx_status ts; 358 struct ath_tx_status ts;
359 bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA);
359 int slot; 360 int slot;
360 u32 bfaddr, bc = 0; 361 u32 bfaddr, bc = 0;
361 362
@@ -456,10 +457,12 @@ void ath_beacon_tasklet(unsigned long data)
456 if (bfaddr != 0) { 457 if (bfaddr != 0) {
457 /* NB: cabq traffic should already be queued and primed */ 458 /* NB: cabq traffic should already be queued and primed */
458 ath9k_hw_puttxbuf(ah, sc->beacon.beaconq, bfaddr); 459 ath9k_hw_puttxbuf(ah, sc->beacon.beaconq, bfaddr);
459 ath9k_hw_txstart(ah, sc->beacon.beaconq); 460
461 if (!edma)
462 ath9k_hw_txstart(ah, sc->beacon.beaconq);
460 463
461 sc->beacon.ast_be_xmit += bc; /* XXX per-vif? */ 464 sc->beacon.ast_be_xmit += bc; /* XXX per-vif? */
462 if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) { 465 if (edma) {
463 spin_lock_bh(&sc->sc_pcu_lock); 466 spin_lock_bh(&sc->sc_pcu_lock);
464 ath9k_hw_txprocdesc(ah, bf->bf_desc, (void *)&ts); 467 ath9k_hw_txprocdesc(ah, bf->bf_desc, (void *)&ts);
465 spin_unlock_bh(&sc->sc_pcu_lock); 468 spin_unlock_bh(&sc->sc_pcu_lock);