diff options
author | Arik Nemtsov <arik@wizery.com> | 2011-06-24 12:03:37 +0200 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-07-05 20:33:44 +0200 |
commit | 708bb3cf58a9bc90f3171ba64f30601f690e5aaa (patch) | |
tree | bb64ac4a73af18a37e0290bf9a8642e0ed5d43fd /drivers/net/wireless/wl12xx/tx.h | |
parent | wl12xx: Increase low & high TX watermarks (diff) | |
download | linux-708bb3cf58a9bc90f3171ba64f30601f690e5aaa.tar.xz linux-708bb3cf58a9bc90f3171ba64f30601f690e5aaa.zip |
wl12xx: implement Tx watermarks per AC
Each AC is stopped when its queue is filled up to the high watermark,
and restarted when its queue it lower than the low watermark. This
ensures congested ACs are not able to starve other ACs.
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/tx.h')
-rw-r--r-- | drivers/net/wireless/wl12xx/tx.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/tx.h b/drivers/net/wireless/wl12xx/tx.h index 7ed3c01f3651..6b7bf3150ec4 100644 --- a/drivers/net/wireless/wl12xx/tx.h +++ b/drivers/net/wireless/wl12xx/tx.h @@ -182,6 +182,22 @@ static inline int wl1271_tx_get_queue(int queue) } } +static inline int wl1271_tx_get_mac80211_queue(int queue) +{ + switch (queue) { + case CONF_TX_AC_VO: + return 0; + case CONF_TX_AC_VI: + return 1; + case CONF_TX_AC_BE: + return 2; + case CONF_TX_AC_BK: + return 3; + default: + return 2; + } +} + void wl1271_tx_work(struct work_struct *work); void wl1271_tx_work_locked(struct wl1271 *wl); void wl1271_tx_complete(struct wl1271 *wl); |