mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
eb6476441b
commit
dada03ca73
|
@ -250,17 +250,6 @@ struct iwl_lib_ops iwl2030_lib = {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* NIC configuration for 5000 series */
|
/* NIC configuration for 5000 series */
|
||||||
static void iwl5000_nic_config(struct iwl_priv *priv)
|
|
||||||
{
|
|
||||||
/* W/A : NIC is stuck in a reset state after Early PCIe power off
|
|
||||||
* (PCIe power is lost before PERST# is asserted),
|
|
||||||
* causing ME FW to lose ownership and not being able to obtain it back.
|
|
||||||
*/
|
|
||||||
iwl_set_bits_mask_prph(priv->trans, APMG_PS_CTRL_REG,
|
|
||||||
APMG_PS_CTRL_EARLY_PWR_OFF_RESET_DIS,
|
|
||||||
~APMG_PS_CTRL_EARLY_PWR_OFF_RESET_DIS);
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct iwl_sensitivity_ranges iwl5000_sensitivity = {
|
static const struct iwl_sensitivity_ranges iwl5000_sensitivity = {
|
||||||
.min_nrg_cck = 100,
|
.min_nrg_cck = 100,
|
||||||
.auto_corr_min_ofdm = 90,
|
.auto_corr_min_ofdm = 90,
|
||||||
|
@ -433,14 +422,12 @@ static int iwl5000_hw_channel_switch(struct iwl_priv *priv,
|
||||||
struct iwl_lib_ops iwl5000_lib = {
|
struct iwl_lib_ops iwl5000_lib = {
|
||||||
.set_hw_params = iwl5000_hw_set_hw_params,
|
.set_hw_params = iwl5000_hw_set_hw_params,
|
||||||
.set_channel_switch = iwl5000_hw_channel_switch,
|
.set_channel_switch = iwl5000_hw_channel_switch,
|
||||||
.nic_config = iwl5000_nic_config,
|
|
||||||
.temperature = iwlagn_temperature,
|
.temperature = iwlagn_temperature,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct iwl_lib_ops iwl5150_lib = {
|
struct iwl_lib_ops iwl5150_lib = {
|
||||||
.set_hw_params = iwl5150_hw_set_hw_params,
|
.set_hw_params = iwl5150_hw_set_hw_params,
|
||||||
.set_channel_switch = iwl5000_hw_channel_switch,
|
.set_channel_switch = iwl5000_hw_channel_switch,
|
||||||
.nic_config = iwl5000_nic_config,
|
|
||||||
.temperature = iwl5150_temperature,
|
.temperature = iwl5150_temperature,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -51,11 +51,13 @@
|
||||||
#include "iwl-op-mode.h"
|
#include "iwl-op-mode.h"
|
||||||
#include "iwl-drv.h"
|
#include "iwl-drv.h"
|
||||||
#include "iwl-modparams.h"
|
#include "iwl-modparams.h"
|
||||||
|
#include "iwl-prph.h"
|
||||||
|
|
||||||
#include "dev.h"
|
#include "dev.h"
|
||||||
#include "calib.h"
|
#include "calib.h"
|
||||||
#include "agn.h"
|
#include "agn.h"
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
* module boiler plate
|
* module boiler plate
|
||||||
|
@ -2076,6 +2078,15 @@ static void iwl_nic_config(struct iwl_op_mode *op_mode)
|
||||||
CSR_HW_IF_CONFIG_REG_BIT_RADIO_SI |
|
CSR_HW_IF_CONFIG_REG_BIT_RADIO_SI |
|
||||||
CSR_HW_IF_CONFIG_REG_BIT_MAC_SI);
|
CSR_HW_IF_CONFIG_REG_BIT_MAC_SI);
|
||||||
|
|
||||||
|
/* W/A : NIC is stuck in a reset state after Early PCIe power off
|
||||||
|
* (PCIe power is lost before PERST# is asserted),
|
||||||
|
* causing ME FW to lose ownership and not being able to obtain it back.
|
||||||
|
*/
|
||||||
|
iwl_set_bits_mask_prph(priv->trans, APMG_PS_CTRL_REG,
|
||||||
|
APMG_PS_CTRL_EARLY_PWR_OFF_RESET_DIS,
|
||||||
|
~APMG_PS_CTRL_EARLY_PWR_OFF_RESET_DIS);
|
||||||
|
|
||||||
|
if (priv->lib->nic_config)
|
||||||
priv->lib->nic_config(priv);
|
priv->lib->nic_config(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue