diff options
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-eeprom.c | 20 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-eeprom.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-mac80211.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-shared.h | 2 |
7 files changed, 19 insertions, 24 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c index 2470ca767589..79ac7cb1701b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c | |||
@@ -235,7 +235,7 @@ int iwlagn_txfifo_flush(struct iwl_priv *priv, u16 flush_control) | |||
235 | IWL_PAN_SCD_BK_MSK | IWL_PAN_SCD_MGMT_MSK | | 235 | IWL_PAN_SCD_BK_MSK | IWL_PAN_SCD_MGMT_MSK | |
236 | IWL_PAN_SCD_MULTICAST_MSK; | 236 | IWL_PAN_SCD_MULTICAST_MSK; |
237 | 237 | ||
238 | if (cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE) | 238 | if (hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE) |
239 | flush_cmd.fifo_control |= IWL_AGG_TX_QUEUE_MSK; | 239 | flush_cmd.fifo_control |= IWL_AGG_TX_QUEUE_MSK; |
240 | 240 | ||
241 | IWL_DEBUG_INFO(priv, "fifo queue control: 0X%x\n", | 241 | IWL_DEBUG_INFO(priv, "fifo queue control: 0X%x\n", |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index c14eda048948..e1bf12578f87 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -1124,13 +1124,12 @@ static void iwl_set_hw_params(struct iwl_priv *priv) | |||
1124 | get_order(IWL_RX_BUF_SIZE_4K); | 1124 | get_order(IWL_RX_BUF_SIZE_4K); |
1125 | 1125 | ||
1126 | if (iwlagn_mod_params.disable_11n & IWL_DISABLE_HT_ALL) | 1126 | if (iwlagn_mod_params.disable_11n & IWL_DISABLE_HT_ALL) |
1127 | cfg(priv)->sku &= ~EEPROM_SKU_CAP_11N_ENABLE; | 1127 | hw_params(priv).sku &= ~EEPROM_SKU_CAP_11N_ENABLE; |
1128 | 1128 | ||
1129 | hw_params(priv).num_ampdu_queues = | 1129 | hw_params(priv).num_ampdu_queues = |
1130 | cfg(priv)->base_params->num_of_ampdu_queues; | 1130 | cfg(priv)->base_params->num_of_ampdu_queues; |
1131 | hw_params(priv).shadow_reg_enable = | 1131 | hw_params(priv).shadow_reg_enable = |
1132 | cfg(priv)->base_params->shadow_reg_enable; | 1132 | cfg(priv)->base_params->shadow_reg_enable; |
1133 | hw_params(priv).sku = cfg(priv)->sku; | ||
1134 | hw_params(priv).wd_timeout = cfg(priv)->base_params->wd_timeout; | 1133 | hw_params(priv).wd_timeout = cfg(priv)->base_params->wd_timeout; |
1135 | 1134 | ||
1136 | /* Device-specific setup */ | 1135 | /* Device-specific setup */ |
@@ -1257,7 +1256,7 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans) | |||
1257 | if (err) | 1256 | if (err) |
1258 | goto out_free_eeprom; | 1257 | goto out_free_eeprom; |
1259 | 1258 | ||
1260 | err = iwl_eeprom_check_sku(priv); | 1259 | err = iwl_eeprom_init_hw_params(priv); |
1261 | if (err) | 1260 | if (err) |
1262 | goto out_free_eeprom; | 1261 | goto out_free_eeprom; |
1263 | 1262 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index 8d25fd6be645..c5df3e3d975b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -137,7 +137,7 @@ int iwl_init_geos(struct iwl_priv *priv) | |||
137 | sband->bitrates = &rates[IWL_FIRST_OFDM_RATE]; | 137 | sband->bitrates = &rates[IWL_FIRST_OFDM_RATE]; |
138 | sband->n_bitrates = IWL_RATE_COUNT_LEGACY - IWL_FIRST_OFDM_RATE; | 138 | sband->n_bitrates = IWL_RATE_COUNT_LEGACY - IWL_FIRST_OFDM_RATE; |
139 | 139 | ||
140 | if (cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE) | 140 | if (hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE) |
141 | iwl_init_ht_hw_capab(priv, &sband->ht_cap, | 141 | iwl_init_ht_hw_capab(priv, &sband->ht_cap, |
142 | IEEE80211_BAND_5GHZ); | 142 | IEEE80211_BAND_5GHZ); |
143 | 143 | ||
@@ -147,7 +147,7 @@ int iwl_init_geos(struct iwl_priv *priv) | |||
147 | sband->bitrates = rates; | 147 | sband->bitrates = rates; |
148 | sband->n_bitrates = IWL_RATE_COUNT_LEGACY; | 148 | sband->n_bitrates = IWL_RATE_COUNT_LEGACY; |
149 | 149 | ||
150 | if (cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE) | 150 | if (hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE) |
151 | iwl_init_ht_hw_capab(priv, &sband->ht_cap, | 151 | iwl_init_ht_hw_capab(priv, &sband->ht_cap, |
152 | IEEE80211_BAND_2GHZ); | 152 | IEEE80211_BAND_2GHZ); |
153 | 153 | ||
@@ -202,11 +202,11 @@ int iwl_init_geos(struct iwl_priv *priv) | |||
202 | priv->tx_power_next = max_tx_power; | 202 | priv->tx_power_next = max_tx_power; |
203 | 203 | ||
204 | if ((priv->bands[IEEE80211_BAND_5GHZ].n_channels == 0) && | 204 | if ((priv->bands[IEEE80211_BAND_5GHZ].n_channels == 0) && |
205 | cfg(priv)->sku & EEPROM_SKU_CAP_BAND_52GHZ) { | 205 | hw_params(priv).sku & EEPROM_SKU_CAP_BAND_52GHZ) { |
206 | IWL_INFO(priv, "Incorrectly detected BG card as ABG. " | 206 | IWL_INFO(priv, "Incorrectly detected BG card as ABG. " |
207 | "Please send your %s to maintainer.\n", | 207 | "Please send your %s to maintainer.\n", |
208 | trans(priv)->hw_id_str); | 208 | trans(priv)->hw_id_str); |
209 | cfg(priv)->sku &= ~EEPROM_SKU_CAP_BAND_52GHZ; | 209 | hw_params(priv).sku &= ~EEPROM_SKU_CAP_BAND_52GHZ; |
210 | } | 210 | } |
211 | 211 | ||
212 | IWL_INFO(priv, "Tunable channels: %d 802.11bg, %d 802.11a channels\n", | 212 | IWL_INFO(priv, "Tunable channels: %d 802.11bg, %d 802.11a channels\n", |
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.c b/drivers/net/wireless/iwlwifi/iwl-eeprom.c index 07e93787bce8..d8668bccc083 100644 --- a/drivers/net/wireless/iwlwifi/iwl-eeprom.c +++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.c | |||
@@ -252,26 +252,24 @@ err: | |||
252 | 252 | ||
253 | } | 253 | } |
254 | 254 | ||
255 | int iwl_eeprom_check_sku(struct iwl_priv *priv) | 255 | int iwl_eeprom_init_hw_params(struct iwl_priv *priv) |
256 | { | 256 | { |
257 | struct iwl_shared *shrd = priv->shrd; | 257 | struct iwl_shared *shrd = priv->shrd; |
258 | u16 radio_cfg; | 258 | u16 radio_cfg; |
259 | 259 | ||
260 | if (!cfg(priv)->sku) { | 260 | hw_params(priv).sku = iwl_eeprom_query16(shrd, EEPROM_SKU_CAP); |
261 | /* not using sku overwrite */ | 261 | if (hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE && |
262 | cfg(priv)->sku = iwl_eeprom_query16(shrd, EEPROM_SKU_CAP); | 262 | !cfg(priv)->ht_params) { |
263 | if (cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE && | 263 | IWL_ERR(priv, "Invalid 11n configuration\n"); |
264 | !cfg(priv)->ht_params) { | 264 | return -EINVAL; |
265 | IWL_ERR(priv, "Invalid 11n configuration\n"); | ||
266 | return -EINVAL; | ||
267 | } | ||
268 | } | 265 | } |
269 | if (!cfg(priv)->sku) { | 266 | |
267 | if (!hw_params(priv).sku) { | ||
270 | IWL_ERR(priv, "Invalid device sku\n"); | 268 | IWL_ERR(priv, "Invalid device sku\n"); |
271 | return -EINVAL; | 269 | return -EINVAL; |
272 | } | 270 | } |
273 | 271 | ||
274 | IWL_INFO(priv, "Device SKU: 0x%X\n", cfg(priv)->sku); | 272 | IWL_INFO(priv, "Device SKU: 0x%X\n", hw_params(priv).sku); |
275 | 273 | ||
276 | if (!cfg(priv)->valid_tx_ant && !cfg(priv)->valid_rx_ant) { | 274 | if (!cfg(priv)->valid_tx_ant && !cfg(priv)->valid_rx_ant) { |
277 | /* not using .cfg overwrite */ | 275 | /* not using .cfg overwrite */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h index cbb86116917b..3b17056d5675 100644 --- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h +++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h | |||
@@ -309,7 +309,7 @@ struct iwl_eeprom_ops { | |||
309 | int iwl_eeprom_init(struct iwl_trans *trans, u32 hw_rev); | 309 | int iwl_eeprom_init(struct iwl_trans *trans, u32 hw_rev); |
310 | void iwl_eeprom_free(struct iwl_shared *shrd); | 310 | void iwl_eeprom_free(struct iwl_shared *shrd); |
311 | int iwl_eeprom_check_version(struct iwl_priv *priv); | 311 | int iwl_eeprom_check_version(struct iwl_priv *priv); |
312 | int iwl_eeprom_check_sku(struct iwl_priv *priv); | 312 | int iwl_eeprom_init_hw_params(struct iwl_priv *priv); |
313 | const u8 *iwl_eeprom_query_addr(const struct iwl_shared *shrd, size_t offset); | 313 | const u8 *iwl_eeprom_query_addr(const struct iwl_shared *shrd, size_t offset); |
314 | u16 iwl_eeprom_query16(const struct iwl_shared *shrd, size_t offset); | 314 | u16 iwl_eeprom_query16(const struct iwl_shared *shrd, size_t offset); |
315 | int iwl_init_channel_map(struct iwl_priv *priv); | 315 | int iwl_init_channel_map(struct iwl_priv *priv); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-mac80211.c b/drivers/net/wireless/iwlwifi/iwl-mac80211.c index 005763fa38ab..8b26f3217823 100644 --- a/drivers/net/wireless/iwlwifi/iwl-mac80211.c +++ b/drivers/net/wireless/iwlwifi/iwl-mac80211.c | |||
@@ -161,7 +161,7 @@ int iwlagn_mac_setup_register(struct iwl_priv *priv, | |||
161 | hw->flags |= IEEE80211_HW_SUPPORTS_PS | | 161 | hw->flags |= IEEE80211_HW_SUPPORTS_PS | |
162 | IEEE80211_HW_SUPPORTS_DYNAMIC_PS; | 162 | IEEE80211_HW_SUPPORTS_DYNAMIC_PS; |
163 | 163 | ||
164 | if (cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE) | 164 | if (hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE) |
165 | hw->flags |= IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS | | 165 | hw->flags |= IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS | |
166 | IEEE80211_HW_SUPPORTS_STATIC_SMPS; | 166 | IEEE80211_HW_SUPPORTS_STATIC_SMPS; |
167 | 167 | ||
@@ -633,7 +633,7 @@ static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw, | |||
633 | IWL_DEBUG_HT(priv, "A-MPDU action on addr %pM tid %d\n", | 633 | IWL_DEBUG_HT(priv, "A-MPDU action on addr %pM tid %d\n", |
634 | sta->addr, tid); | 634 | sta->addr, tid); |
635 | 635 | ||
636 | if (!(cfg(priv)->sku & EEPROM_SKU_CAP_11N_ENABLE)) | 636 | if (!(hw_params(priv).sku & EEPROM_SKU_CAP_11N_ENABLE)) |
637 | return -EACCES; | 637 | return -EACCES; |
638 | 638 | ||
639 | IWL_DEBUG_MAC80211(priv, "enter\n"); | 639 | IWL_DEBUG_MAC80211(priv, "enter\n"); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-shared.h b/drivers/net/wireless/iwlwifi/iwl-shared.h index 239dfbc57bee..11184f1c4365 100644 --- a/drivers/net/wireless/iwlwifi/iwl-shared.h +++ b/drivers/net/wireless/iwlwifi/iwl-shared.h | |||
@@ -282,7 +282,6 @@ enum iwl_led_mode { | |||
282 | * @max_data_size: The maximal length of the fw data section | 282 | * @max_data_size: The maximal length of the fw data section |
283 | * @valid_tx_ant: valid transmit antenna | 283 | * @valid_tx_ant: valid transmit antenna |
284 | * @valid_rx_ant: valid receive antenna | 284 | * @valid_rx_ant: valid receive antenna |
285 | * @sku: sku information from EEPROM | ||
286 | * @eeprom_ver: EEPROM version | 285 | * @eeprom_ver: EEPROM version |
287 | * @eeprom_calib_ver: EEPROM calibration version | 286 | * @eeprom_calib_ver: EEPROM calibration version |
288 | * @lib: pointer to the lib ops | 287 | * @lib: pointer to the lib ops |
@@ -321,7 +320,6 @@ struct iwl_cfg { | |||
321 | const u32 max_inst_size; | 320 | const u32 max_inst_size; |
322 | u8 valid_tx_ant; | 321 | u8 valid_tx_ant; |
323 | u8 valid_rx_ant; | 322 | u8 valid_rx_ant; |
324 | u16 sku; | ||
325 | u16 eeprom_ver; | 323 | u16 eeprom_ver; |
326 | u16 eeprom_calib_ver; | 324 | u16 eeprom_calib_ver; |
327 | const struct iwl_lib_ops *lib; | 325 | const struct iwl_lib_ops *lib; |