diff options
author | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2009-09-11 13:38:10 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-10-07 16:39:31 -0400 |
commit | 9371d4ed79c1c2efefa00226f7f6b95e0e0b8f2b (patch) | |
tree | 962fa2914b44ef5b170d3daee07529d23e199d73 /drivers/net/wireless/iwlwifi/iwl-5000.c | |
parent | 1b07a1307250e55fe00c076b33d0ab5ac088a489 (diff) |
iwlwifi: separate nic_config for different NIC
Different NIC has different requirements for configuration. Currently all
5000 series hardware and later share the same configuration function even
though they do not need the same configurations. Fix this by separating the
needed configuration actions for each hardware model.
.5000 series: L1-ASPM H/W bug work-around
configure radio
write CSR_HW_IF_CONFIG_REG for uCode use
work-around for NIC get stuck after early PCIe power off
.1000 series: write CSR_HW_IF_CONFIG_REG for uCode use
setting digital SVR for 1000 card to 1.32V
.6000 series: configure radio
write CSR_HW_IF_CONFIG_REG for uCode use
write CSR_GP_DRIVER_REG to indicate radio sku
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-5000.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index eb08f4411000..d312ef03245f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -198,7 +198,7 @@ out: | |||
198 | } | 198 | } |
199 | 199 | ||
200 | 200 | ||
201 | /* NIC configuration for 5000 series and up */ | 201 | /* NIC configuration for 5000 series */ |
202 | void iwl5000_nic_config(struct iwl_priv *priv) | 202 | void iwl5000_nic_config(struct iwl_priv *priv) |
203 | { | 203 | { |
204 | unsigned long flags; | 204 | unsigned long flags; |
@@ -221,7 +221,7 @@ void iwl5000_nic_config(struct iwl_priv *priv) | |||
221 | radio_cfg = iwl_eeprom_query16(priv, EEPROM_RADIO_CONFIG); | 221 | radio_cfg = iwl_eeprom_query16(priv, EEPROM_RADIO_CONFIG); |
222 | 222 | ||
223 | /* write radio config values to register */ | 223 | /* write radio config values to register */ |
224 | if (EEPROM_RF_CFG_TYPE_MSK(radio_cfg) < EEPROM_5000_RF_CFG_TYPE_MAX) | 224 | if (EEPROM_RF_CFG_TYPE_MSK(radio_cfg) < EEPROM_RF_CONFIG_TYPE_MAX) |
225 | iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG, | 225 | iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG, |
226 | EEPROM_RF_CFG_TYPE_MSK(radio_cfg) | | 226 | EEPROM_RF_CFG_TYPE_MSK(radio_cfg) | |
227 | EEPROM_RF_CFG_STEP_MSK(radio_cfg) | | 227 | EEPROM_RF_CFG_STEP_MSK(radio_cfg) | |