diff options
author | Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> | 2011-12-28 08:39:54 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-01-04 14:31:46 -0500 |
commit | 98f0a5eb02bbfff662664bf65f469dc4abd701fd (patch) | |
tree | 6a8f8fecd18ce83036f6d4cac4b8a7aa1f4e6593 /drivers/net/wireless/ath/ath9k | |
parent | 7fbaf3efb042871fce7c9cd706cf9f90d61b5e59 (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.c | 7 |
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); |