Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 745160ee authored by Oren Givon's avatar Oren Givon Committed by Emmanuel Grumbach
Browse files

iwlwifi: add max RX aggregation size



Allow to configure the maximal Rx AMPDU size per device.

Signed-off-by: default avatarOren Givon <oren.givon@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 5fc7d86c
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -85,6 +85,9 @@
#define NVM_HW_SECTION_NUM_FAMILY_8000		10
#define DEFAULT_NVM_FILE_FAMILY_8000		"iwl_nvm_8000.bin"

/* Max SDIO RX aggregation size of the ADDBA request/response */
#define MAX_RX_AGG_SIZE_8260_SDIO	28

static const struct iwl_base_params iwl8000_base_params = {
	.eeprom_size = OTP_LOW_IMAGE_SIZE_FAMILY_8000,
	.num_of_queues = IWLAGN_NUM_QUEUES,
@@ -129,6 +132,7 @@ const struct iwl_cfg iwl8260_2ac_sdio_cfg = {
	.nvm_ver = IWL8000_NVM_VERSION,
	.nvm_calib_ver = IWL8000_TX_POWER_VERSION,
	.default_nvm_file = DEFAULT_NVM_FILE_FAMILY_8000,
	.max_rx_agg_size = MAX_RX_AGG_SIZE_8260_SDIO,
};

MODULE_FIRMWARE(IWL8000_MODULE_FIRMWARE(IWL8000_UCODE_API_OK));
+2 −0
Original line number Diff line number Diff line
@@ -240,6 +240,7 @@ struct iwl_pwr_tx_backoff {
 * @d0i3: device uses d0i3 instead of d3
 * @nvm_hw_section_num: the ID of the HW NVM section
 * @pwr_tx_backoffs: translation table between power limits and backoffs
 * @max_rx_agg_size: max RX aggregation size of the ADDBA request/response
 *
 * We enable the driver to be backward compatible wrt. hardware features.
 * API differences in uCode shouldn't be handled here but through TLVs
@@ -276,6 +277,7 @@ struct iwl_cfg {
	const struct iwl_pwr_tx_backoff *pwr_tx_backoffs;
	bool no_power_up_nic_in_init;
	const char *default_nvm_file;
	unsigned int max_rx_agg_size;
};

/*
+3 −0
Original line number Diff line number Diff line
@@ -391,6 +391,9 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
	if (!hw)
		return NULL;

	if (cfg->max_rx_agg_size)
		hw->max_rx_aggregation_subframes = cfg->max_rx_agg_size;

	op_mode = hw->priv;
	op_mode->ops = &iwl_mvm_ops;