From 8d6748ca73a0caffed4304a47a9cb4cd0aba361e Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Thu, 9 Dec 2010 09:30:14 -0800 Subject: iwlagn: implement layout-agnostic EEPROM reading The current EEPROM reading code has some layout assumptions that now turned out to be false with some newer versions of the EEPROM. Luckily, we can avoid all such assumptions by using data in the EEPROM itself, so implement using that. However, for risk mitigation purposes, keep the old reading code for current hardware for now. Signed-off-by: Johannes Berg Signed-off-by: Wey-Yi Guy --- drivers/net/wireless/iwlwifi/iwl-6000.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'drivers/net/wireless/iwlwifi/iwl-6000.c') diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index 8a789241704f..db70a6bfaa55 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c @@ -568,6 +568,7 @@ struct iwl_cfg iwl6005_2agn_cfg = { .need_dc_calib = true, .need_temp_offset_calib = true, .led_mode = IWL_LED_RF_STATE, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl6005_2abg_cfg = { @@ -583,6 +584,7 @@ struct iwl_cfg iwl6005_2abg_cfg = { .need_dc_calib = true, .need_temp_offset_calib = true, .led_mode = IWL_LED_RF_STATE, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl6005_2bg_cfg = { @@ -598,6 +600,7 @@ struct iwl_cfg iwl6005_2bg_cfg = { .need_dc_calib = true, .need_temp_offset_calib = true, .led_mode = IWL_LED_RF_STATE, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl6030_2agn_cfg = { @@ -618,6 +621,7 @@ struct iwl_cfg iwl6030_2agn_cfg = { .adv_pm = true, /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl6030_2abg_cfg = { @@ -637,6 +641,7 @@ struct iwl_cfg iwl6030_2abg_cfg = { .adv_pm = true, /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl6030_2bgn_cfg = { @@ -657,6 +662,7 @@ struct iwl_cfg iwl6030_2bgn_cfg = { .adv_pm = true, /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl6030_2bg_cfg = { @@ -676,6 +682,7 @@ struct iwl_cfg iwl6030_2bg_cfg = { .adv_pm = true, /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl1030_bgn_cfg = { @@ -696,6 +703,7 @@ struct iwl_cfg iwl1030_bgn_cfg = { .adv_pm = true, /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl1030_bg_cfg = { @@ -715,6 +723,7 @@ struct iwl_cfg iwl1030_bg_cfg = { .adv_pm = true, /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, + .use_new_eeprom_reading = true, }; /* @@ -797,6 +806,7 @@ struct iwl_cfg iwl6150_bgn_cfg = { .ht_params = &iwl6000_ht_params, .need_dc_calib = true, .led_mode = IWL_LED_RF_STATE, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl6050_2abg_cfg = { @@ -846,6 +856,7 @@ struct iwl_cfg iwl130_bgn_cfg = { /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, .rx_with_siso_diversity = true, + .use_new_eeprom_reading = true, }; struct iwl_cfg iwl130_bg_cfg = { @@ -865,6 +876,7 @@ struct iwl_cfg iwl130_bg_cfg = { /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, .rx_with_siso_diversity = true, + .use_new_eeprom_reading = true, }; MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); -- cgit v1.2.1