summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ti/wlcore/wlcore_i.h
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2012-11-30 00:48:03 +0200
committerLuciano Coelho <coelho@ti.com>2012-12-11 12:37:13 +0200
commit1c33db782d1d0d9be83feacbb065cd4956f485e7 (patch)
treea3cd2e7ce3d0b422bd6451166d79f2d92abc9bfe /drivers/net/wireless/ti/wlcore/wlcore_i.h
parent9a1009684df5295883ba2eb85066a23ed3c3f6a6 (diff)
wlcore: use separate HW queue for each AC in each vif
Start using the new hw_queue mechanism in mac80211 and give each AC in each vif its own hw_queue number. This allows us to stop an AC in a vif independently from other vifs. Change the Tx watermark handling functions to count packets per AC in vif. From now on fast links should not be able to hurt the throughput of slow links on the same AC but on different vifs. Change internal queue mgmt functions to operate per vif, to support the new Tx watermark granularity. Make the global versions of the queue stop/start functions to use the global mac80211 API for queue mgmt. This helps in situations where the driver currently doesn't know all the vifs that reside in mac80211. Recovery is a good example for such a case. [Moved hw_base_queue addition into the wlcore_tx_get_mac80211_queue() function; changed WARN_ONs to WARN_ON_ONCEs; simplified for loops; fixed new checkpatch warnings. -- Luca] Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/ti/wlcore/wlcore_i.h')
-rw-r--r--drivers/net/wireless/ti/wlcore/wlcore_i.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wlcore/wlcore_i.h b/drivers/net/wireless/ti/wlcore/wlcore_i.h
index 1857b8ba87e4..ee49676de9ec 100644
--- a/drivers/net/wireless/ti/wlcore/wlcore_i.h
+++ b/drivers/net/wireless/ti/wlcore/wlcore_i.h
@@ -430,6 +430,15 @@ struct wl12xx_vif {
int inconn_count;
/*
+ * This vif's queues are mapped to mac80211 HW queues as:
+ * VO - hw_queue_base
+ * VI - hw_queue_base + 1
+ * BE - hw_queue_base + 2
+ * BK - hw_queue_base + 3
+ */
+ int hw_queue_base;
+
+ /*
* This struct must be last!
* data that has to be saved acrossed reconfigs (e.g. recovery)
* should be declared in this struct.