aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/devices.c13
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/main.c13
2 files changed, 12 insertions, 14 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/devices.c b/drivers/net/wireless/iwlwifi/dvm/devices.c
index 0521a6be09d2..349c205d5f62 100644
--- a/drivers/net/wireless/iwlwifi/dvm/devices.c
+++ b/drivers/net/wireless/iwlwifi/dvm/devices.c
@@ -250,17 +250,6 @@ struct iwl_lib_ops iwl2030_lib = {
250 */ 250 */
251 251
252/* NIC configuration for 5000 series */ 252/* NIC configuration for 5000 series */
253static void iwl5000_nic_config(struct iwl_priv *priv)
254{
255 /* W/A : NIC is stuck in a reset state after Early PCIe power off
256 * (PCIe power is lost before PERST# is asserted),
257 * causing ME FW to lose ownership and not being able to obtain it back.
258 */
259 iwl_set_bits_mask_prph(priv->trans, APMG_PS_CTRL_REG,
260 APMG_PS_CTRL_EARLY_PWR_OFF_RESET_DIS,
261 ~APMG_PS_CTRL_EARLY_PWR_OFF_RESET_DIS);
262}
263
264static const struct iwl_sensitivity_ranges iwl5000_sensitivity = { 253static const struct iwl_sensitivity_ranges iwl5000_sensitivity = {
265 .min_nrg_cck = 100, 254 .min_nrg_cck = 100,
266 .auto_corr_min_ofdm = 90, 255 .auto_corr_min_ofdm = 90,
@@ -433,14 +422,12 @@ static int iwl5000_hw_channel_switch(struct iwl_priv *priv,
433struct iwl_lib_ops iwl5000_lib = { 422struct iwl_lib_ops iwl5000_lib = {
434 .set_hw_params = iwl5000_hw_set_hw_params, 423 .set_hw_params = iwl5000_hw_set_hw_params,
435 .set_channel_switch = iwl5000_hw_channel_switch, 424 .set_channel_switch = iwl5000_hw_channel_switch,
436 .nic_config = iwl5000_nic_config,
437 .temperature = iwlagn_temperature, 425 .temperature = iwlagn_temperature,
438}; 426};
439 427
440struct iwl_lib_ops iwl5150_lib = { 428struct iwl_lib_ops iwl5150_lib = {
441 .set_hw_params = iwl5150_hw_set_hw_params, 429 .set_hw_params = iwl5150_hw_set_hw_params,
442 .set_channel_switch = iwl5000_hw_channel_switch, 430 .set_channel_switch = iwl5000_hw_channel_switch,
443 .nic_config = iwl5000_nic_config,
444 .temperature = iwl5150_temperature, 431 .temperature = iwl5150_temperature,
445}; 432};
446 433
diff --git a/drivers/net/wireless/iwlwifi/dvm/main.c b/drivers/net/wireless/iwlwifi/dvm/main.c
index bba3edfb3488..c642c217e29f 100644
--- a/drivers/net/wireless/iwlwifi/dvm/main.c
+++ b/drivers/net/wireless/iwlwifi/dvm/main.c
@@ -51,11 +51,13 @@
51#include "iwl-op-mode.h" 51#include "iwl-op-mode.h"
52#include "iwl-drv.h" 52#include "iwl-drv.h"
53#include "iwl-modparams.h" 53#include "iwl-modparams.h"
54#include "iwl-prph.h"
54 55
55#include "dev.h" 56#include "dev.h"
56#include "calib.h" 57#include "calib.h"
57#include "agn.h" 58#include "agn.h"
58 59
60
59/****************************************************************************** 61/******************************************************************************
60 * 62 *
61 * module boiler plate 63 * module boiler plate
@@ -2076,7 +2078,16 @@ static void iwl_nic_config(struct iwl_op_mode *op_mode)
2076 CSR_HW_IF_CONFIG_REG_BIT_RADIO_SI | 2078 CSR_HW_IF_CONFIG_REG_BIT_RADIO_SI |
2077 CSR_HW_IF_CONFIG_REG_BIT_MAC_SI); 2079 CSR_HW_IF_CONFIG_REG_BIT_MAC_SI);
2078 2080
2079 priv->lib->nic_config(priv); 2081 /* W/A : NIC is stuck in a reset state after Early PCIe power off
2082 * (PCIe power is lost before PERST# is asserted),
2083 * causing ME FW to lose ownership and not being able to obtain it back.
2084 */
2085 iwl_set_bits_mask_prph(priv->trans, APMG_PS_CTRL_REG,
2086 APMG_PS_CTRL_EARLY_PWR_OFF_RESET_DIS,
2087 ~APMG_PS_CTRL_EARLY_PWR_OFF_RESET_DIS);
2088
2089 if (priv->lib->nic_config)
2090 priv->lib->nic_config(priv);
2080} 2091}
2081 2092
2082static void iwl_wimax_active(struct iwl_op_mode *op_mode) 2093static void iwl_wimax_active(struct iwl_op_mode *op_mode)