ath9k: Enable HW queue control only for MCC
Enabling HW queue control for normal (non-mcc) mode causes problems with queue management, resulting in traffic stall. Since it is mainly required for fairness in MCC mode, disable it for the general case. Bug: https://dev.openwrt.org/ticket/18164 Cc: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
598a0df07f
commit
868caae3fe
@@ -169,7 +169,10 @@ static void ath_txq_skb_done(struct ath_softc *sc, struct ath_txq *txq,
|
||||
|
||||
if (txq->stopped &&
|
||||
txq->pending_frames < sc->tx.txq_max_pending[q]) {
|
||||
ieee80211_wake_queue(sc->hw, info->hw_queue);
|
||||
if (ath9k_is_chanctx_enabled())
|
||||
ieee80211_wake_queue(sc->hw, info->hw_queue);
|
||||
else
|
||||
ieee80211_wake_queue(sc->hw, q);
|
||||
txq->stopped = false;
|
||||
}
|
||||
}
|
||||
@@ -2247,7 +2250,10 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb,
|
||||
fi->txq = q;
|
||||
if (++txq->pending_frames > sc->tx.txq_max_pending[q] &&
|
||||
!txq->stopped) {
|
||||
ieee80211_stop_queue(sc->hw, info->hw_queue);
|
||||
if (ath9k_is_chanctx_enabled())
|
||||
ieee80211_stop_queue(sc->hw, info->hw_queue);
|
||||
else
|
||||
ieee80211_stop_queue(sc->hw, q);
|
||||
txq->stopped = true;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user