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 c87a05cbec1251f3b38372999e62eccd90a941e9..f10170fe879922b6f56a8d2a6b287d11af92421e 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);