aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/dvm/main.c
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2012-06-17 08:42:37 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-06-18 07:47:06 -0400
commitdada03ca73b699337781ae36e1ce4c8fec2da40a (patch)
tree80874968fc76005dc9faf3cced8b178970f70c27 /drivers/net/wireless/iwlwifi/dvm/main.c
parenteb6476441bc2fecf6232a87d0313a85f8e3da7f4 (diff)
iwlwifi: disable early power Off reset for all NICs
This feature needs to be disabled for all NICs. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/dvm/main.c')
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/main.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/main.c b/drivers/net/wireless/iwlwifi/dvm/main.c
index bba3edfb348..c642c217e29 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)