summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/tx.h
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2011-06-24 12:03:37 +0200
committerLuciano Coelho <coelho@ti.com>2011-07-05 20:33:44 +0200
commit708bb3cf58a9bc90f3171ba64f30601f690e5aaa (patch)
treebb64ac4a73af18a37e0290bf9a8642e0ed5d43fd /drivers/net/wireless/wl12xx/tx.h
parentwl12xx: Increase low & high TX watermarks (diff)
downloadlinux-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.h16
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);