diff options
author | Toke Høiland-Jørgensen <toke@toke.dk> | 2016-12-19 13:59:15 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2016-12-19 13:59:32 +0100 |
commit | 47bc081e76f6b04c0e9db687c8abb78eb437021f (patch) | |
tree | f101308dbad4b2b01f6047c7a10168a7654c98be /package/kernel/mac80211/patches/345-ath9k-Turn-ath_txq_lock-unlock-into-static-inlines.patch | |
parent | b3a871dd3dc1bb78225d60db2d5bcc808b79181f (diff) | |
download | mtk-20170518-47bc081e76f6b04c0e9db687c8abb78eb437021f.zip mtk-20170518-47bc081e76f6b04c0e9db687c8abb78eb437021f.tar.gz mtk-20170518-47bc081e76f6b04c0e9db687c8abb78eb437021f.tar.bz2 |
ath9k: Add airtime fairness scheduler
This adds a patch that introduces airtime fairness scheduling to ath9k,
which can significantly improve network efficiency in mixed-rate
environments.
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/kernel/mac80211/patches/345-ath9k-Turn-ath_txq_lock-unlock-into-static-inlines.patch')
-rw-r--r-- | package/kernel/mac80211/patches/345-ath9k-Turn-ath_txq_lock-unlock-into-static-inlines.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/345-ath9k-Turn-ath_txq_lock-unlock-into-static-inlines.patch b/package/kernel/mac80211/patches/345-ath9k-Turn-ath_txq_lock-unlock-into-static-inlines.patch new file mode 100644 index 0000000..7fe2c78 --- /dev/null +++ b/package/kernel/mac80211/patches/345-ath9k-Turn-ath_txq_lock-unlock-into-static-inlines.patch @@ -0,0 +1,62 @@ +From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= <toke@toke.dk> +Date: Mon, 5 Dec 2016 13:27:38 +0200 +Subject: [PATCH] ath9k: Turn ath_txq_lock/unlock() into static inlines. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +These are one-line functions that just call spin_lock/unlock_bh(); turn +them into static inlines to avoid the function call overhead. + +Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> +Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> +--- + +--- a/drivers/net/wireless/ath/ath9k/ath9k.h ++++ b/drivers/net/wireless/ath/ath9k/ath9k.h +@@ -558,6 +558,15 @@ static inline void ath_chanctx_check_act + + #endif /* CPTCFG_ATH9K_CHANNEL_CONTEXT */ + ++static inline void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq) ++{ ++ spin_lock_bh(&txq->axq_lock); ++} ++static inline void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq) ++{ ++ spin_unlock_bh(&txq->axq_lock); ++} ++ + void ath_startrecv(struct ath_softc *sc); + bool ath_stoprecv(struct ath_softc *sc); + u32 ath_calcrxfilter(struct ath_softc *sc); +@@ -565,8 +574,6 @@ int ath_rx_init(struct ath_softc *sc, in + void ath_rx_cleanup(struct ath_softc *sc); + int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp); + struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype); +-void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq); +-void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq); + void ath_txq_unlock_complete(struct ath_softc *sc, struct ath_txq *txq); + void ath_tx_cleanupq(struct ath_softc *sc, struct ath_txq *txq); + bool ath_drain_all_txq(struct ath_softc *sc); +--- a/drivers/net/wireless/ath/ath9k/xmit.c ++++ b/drivers/net/wireless/ath/ath9k/xmit.c +@@ -98,18 +98,6 @@ static void ath_tx_status(struct ieee802 + dev_kfree_skb(skb); + } + +-void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq) +- __acquires(&txq->axq_lock) +-{ +- spin_lock_bh(&txq->axq_lock); +-} +- +-void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq) +- __releases(&txq->axq_lock) +-{ +- spin_unlock_bh(&txq->axq_lock); +-} +- + void ath_txq_unlock_complete(struct ath_softc *sc, struct ath_txq *txq) + __releases(&txq->axq_lock) + { |