Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dada03ca authored by Emmanuel Grumbach's avatar Emmanuel Grumbach Committed by Johannes Berg
Browse files

iwlwifi: disable early power Off reset for all NICs



This feature needs to be disabled for all NICs.

Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent eb647644
Loading
Loading
Loading
Loading
+0 −13
Original line number Original line Diff line number Diff line
@@ -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,
};
};


+12 −1
Original line number Original line Diff line number Diff line
@@ -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);
}
}