aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-1000.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c16
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.h7
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 */
77static void iwl1000_nic_config(struct iwl_priv *priv) 77static 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 */
202void iwl5000_nic_config(struct iwl_priv *priv) 202void 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 */
72static void iwl6000_nic_config(struct iwl_priv *priv) 72static 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.