wifi: iwlwifi: mvm: fix SB CFG check
authorJohannes Berg <johannes.berg@intel.com>
Wed, 4 Oct 2023 09:36:25 +0000 (12:36 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 23 Oct 2023 10:21:47 +0000 (12:21 +0200)
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: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20231004123422.ab21c7d5e219.I4f9906ebc7ecf38fd276510a276280a9261c8f7f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-prph.h
drivers/net/wireless/intel/iwlwifi/mvm/fw.c

index 7bd4ce149e04ac7100c8bdb56faf575a6851d596..c1a94b01ce1441faafa2260080339685114cfaca 100644 (file)
@@ -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
index a5348b01531021573f3f62a881b1a01488fb81a7..073cb31890774ca7ffdf129cec624d23317b208c 100644 (file)
@@ -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;
        }