diff options
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-1000.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 16 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-eeprom.h | 7 |
4 files changed, 27 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c index 2716b91ba9fa..89f360befc30 100644 --- a/drivers/net/wireless/iwlwifi/iwl-1000.c +++ b/drivers/net/wireless/iwlwifi/iwl-1000.c | |||
@@ -76,7 +76,10 @@ static void iwl1000_set_ct_threshold(struct iwl_priv *priv) | |||
76 | /* NIC configuration for 1000 series */ | 76 | /* NIC configuration for 1000 series */ |
77 | static void iwl1000_nic_config(struct iwl_priv *priv) | 77 | static void iwl1000_nic_config(struct iwl_priv *priv) |
78 | { | 78 | { |
79 | iwl5000_nic_config(priv); | 79 | /* set CSR_HW_CONFIG_REG for uCode use */ |
80 | iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG, | ||
81 | CSR_HW_IF_CONFIG_REG_BIT_RADIO_SI | | ||
82 | CSR_HW_IF_CONFIG_REG_BIT_MAC_SI); | ||
80 | 83 | ||
81 | /* Setting digital SVR for 1000 card to 1.32V */ | 84 | /* Setting digital SVR for 1000 card to 1.32V */ |
82 | /* locking is acquired in iwl_set_bits_mask_prph() function */ | 85 | /* locking is acquired in iwl_set_bits_mask_prph() function */ |
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) | |
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index c295b8ee9228..37b3e2086633 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -71,7 +71,21 @@ static void iwl6000_set_ct_threshold(struct iwl_priv *priv) | |||
71 | /* NIC configuration for 6000 series */ | 71 | /* NIC configuration for 6000 series */ |
72 | static void iwl6000_nic_config(struct iwl_priv *priv) | 72 | static void iwl6000_nic_config(struct iwl_priv *priv) |
73 | { | 73 | { |
74 | iwl5000_nic_config(priv); | 74 | u16 radio_cfg; |
75 | |||
76 | radio_cfg = iwl_eeprom_query16(priv, EEPROM_RADIO_CONFIG); | ||
77 | |||
78 | /* write radio config values to register */ | ||
79 | if (EEPROM_RF_CFG_TYPE_MSK(radio_cfg) <= EEPROM_RF_CONFIG_TYPE_MAX) | ||
80 | iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG, | ||
81 | EEPROM_RF_CFG_TYPE_MSK(radio_cfg) | | ||
82 | EEPROM_RF_CFG_STEP_MSK(radio_cfg) | | ||
83 | EEPROM_RF_CFG_DASH_MSK(radio_cfg)); | ||
84 | |||
85 | /* set CSR_HW_CONFIG_REG for uCode use */ | ||
86 | iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG, | ||
87 | CSR_HW_IF_CONFIG_REG_BIT_RADIO_SI | | ||
88 | CSR_HW_IF_CONFIG_REG_BIT_MAC_SI); | ||
75 | 89 | ||
76 | /* no locking required for register write */ | 90 | /* no locking required for register write */ |
77 | if (priv->cfg->pa_type == IWL_PA_HYBRID) { | 91 | if (priv->cfg->pa_type == IWL_PA_HYBRID) { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h index 90e2b4ea2606..61794eb3d689 100644 --- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h +++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h | |||
@@ -385,7 +385,12 @@ struct iwl_eeprom_calib_info { | |||
385 | 385 | ||
386 | #define EEPROM_3945_RF_CFG_TYPE_MAX 0x0 | 386 | #define EEPROM_3945_RF_CFG_TYPE_MAX 0x0 |
387 | #define EEPROM_4965_RF_CFG_TYPE_MAX 0x1 | 387 | #define EEPROM_4965_RF_CFG_TYPE_MAX 0x1 |
388 | #define EEPROM_5000_RF_CFG_TYPE_MAX 0x3 | 388 | |
389 | /* Radio Config for 5000 and up */ | ||
390 | #define EEPROM_RF_CONFIG_TYPE_R3x3 0x0 | ||
391 | #define EEPROM_RF_CONFIG_TYPE_R2x2 0x1 | ||
392 | #define EEPROM_RF_CONFIG_TYPE_R1x2 0x2 | ||
393 | #define EEPROM_RF_CONFIG_TYPE_MAX 0x3 | ||
389 | 394 | ||
390 | /* | 395 | /* |
391 | * Per-channel regulatory data. | 396 | * Per-channel regulatory data. |