Browse Source

iwlwifi: fix 11n_disable EEPROM refactoring regression

My commit 26a7ca9a71a ("iwlwifi: refactor EEPROM reading/parsing")
broke the 11n_disable module parameter's BIT(0) to disable all HT
operation (using the other bits to disable aggregation only was
unaffected). Restore this by overriding the SKU when parsing the
EEPROM if the module parameter is set.

Reported-by: Matthijs Kooijman <matthijs@stdin.nl>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Johannes Berg 13 years ago
parent
commit
63d76dc0b9
1 changed files with 3 additions and 0 deletions
  1. 3 0
      drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c

+ 3 - 0
drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c

@@ -853,6 +853,9 @@ iwl_parse_eeprom_data(struct device *dev, const struct iwl_cfg *cfg,
 					     EEPROM_RADIO_CONFIG);
 	data->sku = iwl_eeprom_query16(eeprom, eeprom_size,
 				       EEPROM_SKU_CAP);
+	if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_ALL)
+		data->sku &= ~EEPROM_SKU_CAP_11N_ENABLE;
+
 	data->eeprom_version = iwl_eeprom_query16(eeprom, eeprom_size,
 						  EEPROM_VERSION);