iwlwifi: fix 11n_disable EEPROM refactoring regression
authorJohannes Berg <johannes.berg@intel.com>
Tue, 19 Jun 2012 06:32:49 +0000 (08:32 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 20 Jun 2012 06:41:26 +0000 (08:41 +0200)
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>
drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c

index c87a05c..f10170f 100644 (file)
@@ -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);