summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ti/wlcore/wlcore.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.h
parent9a1009684df5295883ba2eb85066a23ed3c3f6a6 (diff)
downloadlinux-1c33db782d1d0d9be83feacbb065cd4956f485e7.tar.bz2
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.h')
-rw-r--r--drivers/net/wireless/ti/wlcore/wlcore.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/ti/wlcore/wlcore.h b/drivers/net/wireless/ti/wlcore/wlcore.h
index 22347e864f51..6c2fd0398e9d 100644
--- a/drivers/net/wireless/ti/wlcore/wlcore.h
+++ b/drivers/net/wireless/ti/wlcore/wlcore.h
@@ -255,7 +255,8 @@ struct wl1271 {
/* Frames scheduled for transmission, not handled yet */
int tx_queue_count[NUM_TX_QUEUES];
- unsigned long queue_stop_reasons[NUM_TX_QUEUES];
+ unsigned long queue_stop_reasons[
+ NUM_TX_QUEUES * WLCORE_NUM_MAC_ADDRESSES];
/* Frames received, not handled yet by mac80211 */
struct sk_buff_head deferred_rx_queue;