aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/11n.c
diff options
context:
space:
mode:
authorBing Zhao <bzhao@marvell.com>2013-01-30 22:56:01 -0500
committerJohn W. Linville <linville@tuxdriver.com>2013-02-01 14:27:23 -0500
commit62749238d1af581d01169f59ebbde4811c3c3143 (patch)
treeb323478fca1f608c6e215696e91cdea99b8874d0 /drivers/net/wireless/mwifiex/11n.c
parent21fbbca3376f66edd010f5c76ea94e3353bf9a9e (diff)
mwifiex: do not reconfigure tx buffer size in firmware while associating
It's observed that reconfiguration of tx buffer size before association can cause data path failure in firmware after associated. Although this is only found with PCIe cards, but potentially it could happen with any other interfaces as well. The tx buffer reconfiguration is not really useful in firmware. Let's remove it for all interfaces. Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/11n.c')
-rw-r--r--drivers/net/wireless/mwifiex/11n.c39
1 files changed, 0 insertions, 39 deletions
diff --git a/drivers/net/wireless/mwifiex/11n.c b/drivers/net/wireless/mwifiex/11n.c
index 9cd6216c61e6..48cc46bc152f 100644
--- a/drivers/net/wireless/mwifiex/11n.c
+++ b/drivers/net/wireless/mwifiex/11n.c
@@ -400,45 +400,6 @@ mwifiex_cmd_append_11n_tlv(struct mwifiex_private *priv,
400} 400}
401 401
402/* 402/*
403 * This function reconfigures the Tx buffer size in firmware.
404 *
405 * This function prepares a firmware command and issues it, if
406 * the current Tx buffer size is different from the one requested.
407 * Maximum configurable Tx buffer size is limited by the HT capability
408 * field value.
409 */
410void
411mwifiex_cfg_tx_buf(struct mwifiex_private *priv,
412 struct mwifiex_bssdescriptor *bss_desc)
413{
414 u16 max_amsdu = MWIFIEX_TX_DATA_BUF_SIZE_2K;
415 u16 tx_buf, curr_tx_buf_size = 0;
416
417 if (bss_desc->bcn_ht_cap) {
418 if (le16_to_cpu(bss_desc->bcn_ht_cap->cap_info) &
419 IEEE80211_HT_CAP_MAX_AMSDU)
420 max_amsdu = MWIFIEX_TX_DATA_BUF_SIZE_8K;
421 else
422 max_amsdu = MWIFIEX_TX_DATA_BUF_SIZE_4K;
423 }
424
425 tx_buf = min(priv->adapter->max_tx_buf_size, max_amsdu);
426
427 dev_dbg(priv->adapter->dev, "info: max_amsdu=%d, max_tx_buf=%d\n",
428 max_amsdu, priv->adapter->max_tx_buf_size);
429
430 if (priv->adapter->curr_tx_buf_size <= MWIFIEX_TX_DATA_BUF_SIZE_2K)
431 curr_tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K;
432 else if (priv->adapter->curr_tx_buf_size <= MWIFIEX_TX_DATA_BUF_SIZE_4K)
433 curr_tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_4K;
434 else if (priv->adapter->curr_tx_buf_size <= MWIFIEX_TX_DATA_BUF_SIZE_8K)
435 curr_tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_8K;
436 if (curr_tx_buf_size != tx_buf)
437 mwifiex_send_cmd_async(priv, HostCmd_CMD_RECONFIGURE_TX_BUFF,
438 HostCmd_ACT_GEN_SET, 0, &tx_buf);
439}
440
441/*
442 * This function checks if the given pointer is valid entry of 403 * This function checks if the given pointer is valid entry of
443 * Tx BA Stream table. 404 * Tx BA Stream table.
444 */ 405 */