From 977f16140059a3d395d4a09a22353c80414e1dc3 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 9 Mar 2014 10:05:41 +0000 Subject: [PATCH] ath9k: fix tx queue configuration for buffered multicast frames Signed-off-by: Felix Fietkau SVN-Revision: 39848 --- .../mac80211/patches/300-pending_work.patch | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/package/kernel/mac80211/patches/300-pending_work.patch b/package/kernel/mac80211/patches/300-pending_work.patch index e4eaecfd41..8b044d2a54 100644 --- a/package/kernel/mac80211/patches/300-pending_work.patch +++ b/package/kernel/mac80211/patches/300-pending_work.patch @@ -1,3 +1,20 @@ +commit 22e298b5a3a8a49e33805d4e351965123dede35b +Author: Felix Fietkau +Date: Sun Mar 9 10:58:47 2014 +0100 + + ath9k: fix ready time of the multicast buffer queue + + qi->tqi_readyTime is written directly to registers that expect + microseconds as unit instead of TU. + When setting the CABQ ready time, cur_conf->beacon_interval is in TU, so + convert it to microseconds before passing it to ath9k_hw. + + This should hopefully fix some Tx DMA issues with buffered multicast + frames in AP mode. + + Cc: stable@vger.kernel.org + Signed-off-by: Felix Fietkau + commit fcb064fdd5a27bec8d24099bc0172468f34c97cb Author: Felix Fietkau Date: Sun Mar 9 09:43:09 2014 +0100 @@ -3286,6 +3303,15 @@ Date: Thu Jan 23 20:06:34 2014 +0100 buffered = ath_tid_has_buffered(tid); tid->sched = false; +@@ -1696,7 +1698,7 @@ int ath_cabq_update(struct ath_softc *sc + + ath9k_hw_get_txq_props(sc->sc_ah, qnum, &qi); + +- qi.tqi_readyTime = (cur_conf->beacon_interval * ++ qi.tqi_readyTime = (TU_TO_USEC(cur_conf->beacon_interval) * + ATH_CABQ_READY_TIME) / 100; + ath_txq_update(sc, qnum, &qi); + @@ -2184,14 +2186,15 @@ int ath_tx_start(struct ieee80211_hw *hw txq->stopped = true; } -- 2.30.2