Commit 3277baa9 authored by Johannes Berg's avatar Johannes Berg
Browse files

wifi: iwlwifi: mvm: fix SB CFG check



We shouldn't check the 0x10 bit here, since the register
holds different values (not just bit masks.). Check for
the exact value where this is needed only.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarGregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20231004123422.ab21c7d5e219.I4f9906ebc7ecf38fd276510a276280a9261c8f7f@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent e9dd2555
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -382,7 +382,7 @@ enum {
#define PREG_PRPH_WPROT_22000		0xA04D00

#define SB_MODIFY_CFG_FLAG		0xA03088
#define SB_CFG_RESIDES_IN_OTP_MASK	0x10
#define SB_CFG_RESIDES_IN_ROM		0x80
#define SB_CPU_1_STATUS			0xA01E30
#define SB_CPU_2_STATUS			0xA01E34
#define UMAG_SB_CPU_1_STATUS		0xA038C0
+1 −1
Original line number Diff line number Diff line
@@ -596,7 +596,7 @@ static int iwl_run_unified_mvm_ucode(struct iwl_mvm *mvm)
	if (mvm->trans->trans_cfg->device_family == IWL_DEVICE_FAMILY_AX210) {
		sb_cfg = iwl_read_umac_prph(mvm->trans, SB_MODIFY_CFG_FLAG);
		/* if needed, we'll reset this on our way out later */
		mvm->pldr_sync = !(sb_cfg & SB_CFG_RESIDES_IN_OTP_MASK);
		mvm->pldr_sync = sb_cfg == SB_CFG_RESIDES_IN_ROM;
		if (mvm->pldr_sync && iwl_mei_pldr_req())
			return -EBUSY;
	}