ath9k_hw: set cwmin and cwmax to 0 for for AR9003 upon txq reset
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Thu, 15 Apr 2010 21:39:32 +0000 (17:39 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 16 Apr 2010 19:43:47 +0000 (15:43 -0400)
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/mac.c

index 44ea43a..c003baf 100644 (file)
@@ -533,6 +533,12 @@ bool ath9k_hw_resettxqueue(struct ath_hw *ah, u32 q)
                             AR_D_MISC_ARB_LOCKOUT_CNTRL_S)
                          | AR_D_MISC_BEACON_USE
                          | AR_D_MISC_POST_FR_BKOFF_DIS);
+               /* cwmin and cwmax should be 0 for beacon queue */
+               if (AR_SREV_9300_20_OR_LATER(ah)) {
+                       REG_WRITE(ah, AR_DLCL_IFS(q), SM(0, AR_D_LCL_IFS_CWMIN)
+                                 | SM(0, AR_D_LCL_IFS_CWMAX)
+                                 | SM(qi->tqi_aifs, AR_D_LCL_IFS_AIFS));
+               }
                break;
        case ATH9K_TX_QUEUE_CAB:
                REG_WRITE(ah, AR_QMISC(q), REG_READ(ah, AR_QMISC(q))