diff options
author | Bing Zhao <bzhao@marvell.com> | 2013-01-30 22:56:01 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-02-01 14:27:23 -0500 |
commit | 62749238d1af581d01169f59ebbde4811c3c3143 (patch) | |
tree | b323478fca1f608c6e215696e91cdea99b8874d0 /drivers/net/wireless/mwifiex/11n.c | |
parent | 21fbbca3376f66edd010f5c76ea94e3353bf9a9e (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.c | 39 |
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 | */ | ||
410 | void | ||
411 | mwifiex_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 | */ |