summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/11n.h
diff options
context:
space:
mode:
authorAvinash Patil2014-12-26 12:02:34 +0100
committerKalle Valo2015-01-06 20:09:30 +0100
commit4f3dfdfb4cbf1771f2e0e17d0dcb2cd1852fd392 (patch)
tree85cd9d5b666ea84f50a20de5ffcb9c5305939b2e /drivers/net/wireless/mwifiex/11n.h
parentmwifiex: make tx packet 64 byte DMA aligned (diff)
downloadkernel-qcow2-linux-4f3dfdfb4cbf1771f2e0e17d0dcb2cd1852fd392.tar.gz
kernel-qcow2-linux-4f3dfdfb4cbf1771f2e0e17d0dcb2cd1852fd392.tar.xz
kernel-qcow2-linux-4f3dfdfb4cbf1771f2e0e17d0dcb2cd1852fd392.zip
mwifiex: get supported BA stream info from FW
This patch adds support to get number of BA streams supported information from FW. Some newer chips(e.g. 8897 series) support 4 BA streams for TX; so driver should not disallow BA stream setup just after 2 streams have been established. Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/mwifiex/11n.h')
-rw-r--r--drivers/net/wireless/mwifiex/11n.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/net/wireless/mwifiex/11n.h b/drivers/net/wireless/mwifiex/11n.h
index f275675cdbd3..8e2e39422ad8 100644
--- a/drivers/net/wireless/mwifiex/11n.h
+++ b/drivers/net/wireless/mwifiex/11n.h
@@ -130,7 +130,9 @@ static inline u8 mwifiex_space_avail_for_new_ba_stream(
{
struct mwifiex_private *priv;
u8 i;
- u32 ba_stream_num = 0;
+ u32 ba_stream_num = 0, ba_stream_max;
+
+ ba_stream_max = MWIFIEX_MAX_TX_BASTREAM_SUPPORTED;
for (i = 0; i < adapter->priv_num; i++) {
priv = adapter->priv[i];
@@ -139,8 +141,14 @@ static inline u8 mwifiex_space_avail_for_new_ba_stream(
&priv->tx_ba_stream_tbl_ptr);
}
- return ((ba_stream_num <
- MWIFIEX_MAX_TX_BASTREAM_SUPPORTED) ? true : false);
+ if (adapter->fw_api_ver == MWIFIEX_FW_V15) {
+ ba_stream_max =
+ GETSUPP_TXBASTREAMS(adapter->hw_dot_11n_dev_cap);
+ if (!ba_stream_max)
+ ba_stream_max = MWIFIEX_MAX_TX_BASTREAM_SUPPORTED;
+ }
+
+ return ((ba_stream_num < ba_stream_max) ? true : false);
}
/*