ath6kl: prioritize Tx bundling based on AC priorities
authorChilam Ng <chilamng@qca.qualcomm.com>
Tue, 7 Feb 2012 09:33:00 +0000 (01:33 -0800)
committerKalle Valo <kvalo@qca.qualcomm.com>
Wed, 8 Feb 2012 09:33:49 +0000 (11:33 +0200)
commitb29072cc7b0e08ace48ab709c40cf6246fb2e8b0
treea360185622713df0934983e90d7a9277eaeb661a
parent1b2df4073447234034e2329f0df584c6346a8ec3
ath6kl: prioritize Tx bundling based on AC priorities

Tx bundling is the more efficient use of SDIO bus and allows more packet
transfers with fewer bus transactions, and is a way to improve overall
throughput. However, Tx bundling has only 4 scatter request resources available.
When there are multiple traffic streams of different priorities, it's possible
that lower priority traffic may hog all the scatter requests and lock out the
higher prioirty traffic from bundling.
Tx bundling is now enabled per AC. When an AC do a scatter request and
the remaining scatter request resources is lower than a configurable
threshold, it will disable Tx bundling for all AC's of lower priorities.
When an AC has Tx bundling disabled and has no Tx bundles sent in a
consecutive and configurable number of packets, Tx bundling will be re-enabled
for that AC.

Signed-off-by: Chilam Ng <chilamng@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/hif.h
drivers/net/wireless/ath/ath6kl/htc.c
drivers/net/wireless/ath/ath6kl/htc.h
drivers/net/wireless/ath/ath6kl/sdio.c