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

Commit 565291c6 authored by Johannes Berg's avatar Johannes Berg Committed by Luca Coelho
Browse files

iwlwifi: pcie: only apply retention workaround on 9000-series A-step



Due to a hardware issue, certain power saving had to be
disabled. However, this issue was fixed in B-step, so the
workaround only needs to apply to A-step.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 779e0513
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -761,6 +761,15 @@ static void iwl_pcie_rx_hw_init(struct iwl_trans *trans, struct iwl_rxq *rxq)

void iwl_pcie_enable_rx_wake(struct iwl_trans *trans, bool enable)
{
	if (trans->cfg->device_family != IWL_DEVICE_FAMILY_9000)
		return;

	if (CSR_HW_REV_STEP(trans->hw_rev) != SILICON_A_STEP)
		return;

	if (!trans->cfg->integrated)
		return;

	/*
	 * Turn on the chicken-bits that cause MAC wakeup for RX-related
	 * values.
@@ -768,13 +777,11 @@ void iwl_pcie_enable_rx_wake(struct iwl_trans *trans, bool enable)
	 * bug where shadow registers are not in the retention list and their
	 * value is lost when NIC powers down
	 */
	if (trans->cfg->integrated) {
	iwl_set_bit(trans, CSR_MAC_SHADOW_REG_CTRL,
		    CSR_MAC_SHADOW_REG_CTRL_RX_WAKE);
	iwl_set_bit(trans, CSR_MAC_SHADOW_REG_CTL2,
		    CSR_MAC_SHADOW_REG_CTL2_RX_WAKE);
}
}

static void iwl_pcie_rx_mq_hw_init(struct iwl_trans *trans)
{