diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2016-04-07 09:44:42 -0400 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2016-07-01 09:51:22 -0400 |
commit | 4bdd4dfe7a893594a75ca324057f7010b1762bd2 (patch) | |
tree | f6406d257235bac887dbfcde16c88c5c5a2b752f /drivers/net/wireless/intel/iwlwifi/mvm/ops.c | |
parent | af5e964f3045b66f1cd720b9c5abd37e47e613e2 (diff) |
iwlwifi: advertise maximal MPDU length when Rx MQ is supported
The new hardware that supports multiple queue also
de-aggregates A-MSDUs. This means that we can advertise
the maximal size of A-MSDUs regardless of the receive
buffer's size.
In order to be able to forcefully use a lower A-MSDU size,
add a default value for the module parameter. Pre-9000
will have a default of 4K, and 9000 will have 12K.
Setting the amsdu_size module parameter to 4K will limit
the A-MSDU on 9000 as well.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/ops.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c index a68054f127fa..64d2b4f04ac2 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c | |||
@@ -603,6 +603,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
603 | trans_cfg.no_reclaim_cmds = no_reclaim_cmds; | 603 | trans_cfg.no_reclaim_cmds = no_reclaim_cmds; |
604 | trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds); | 604 | trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds); |
605 | switch (iwlwifi_mod_params.amsdu_size) { | 605 | switch (iwlwifi_mod_params.amsdu_size) { |
606 | case IWL_AMSDU_DEF: | ||
606 | case IWL_AMSDU_4K: | 607 | case IWL_AMSDU_4K: |
607 | trans_cfg.rx_buf_size = IWL_AMSDU_4K; | 608 | trans_cfg.rx_buf_size = IWL_AMSDU_4K; |
608 | break; | 609 | break; |
@@ -617,6 +618,10 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
617 | iwlwifi_mod_params.amsdu_size); | 618 | iwlwifi_mod_params.amsdu_size); |
618 | trans_cfg.rx_buf_size = IWL_AMSDU_4K; | 619 | trans_cfg.rx_buf_size = IWL_AMSDU_4K; |
619 | } | 620 | } |
621 | |||
622 | /* the hardware splits the A-MSDU */ | ||
623 | if (mvm->cfg->mq_rx_supported) | ||
624 | trans_cfg.rx_buf_size = IWL_AMSDU_4K; | ||
620 | trans_cfg.wide_cmd_header = fw_has_api(&mvm->fw->ucode_capa, | 625 | trans_cfg.wide_cmd_header = fw_has_api(&mvm->fw->ucode_capa, |
621 | IWL_UCODE_TLV_API_WIDE_CMD_HDR); | 626 | IWL_UCODE_TLV_API_WIDE_CMD_HDR); |
622 | 627 | ||