]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
iwlwifi: mvm: add description to a few generic assert numbers
authorNaftali Goldstein <naftali.goldstein@intel.com>
Wed, 25 Jul 2018 12:52:20 +0000 (15:52 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Sun, 11 Nov 2018 09:06:20 +0000 (11:06 +0200)
FW asserts 0x70, 0x71, and 0x73 all just mean that the real error
happened in another MAC, and to look there for the problem. Add their
descriptions to the assert number lookup table so users get a nicer
error message in the logs.
Also, since the 4 most-significant bits of the assert number are
dynamic, and depend on which MAC the assert occurred on, ignore those
bits when looking up the assert name.

Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/utils.c

index 3fd673128d5171b1cbe7c7f3b4cc4b00b45b39c0..3761fbfff2929fe7405629271ea8642be208e928 100644 (file)
@@ -285,6 +285,7 @@ u8 iwl_mvm_next_antenna(struct iwl_mvm *mvm, u8 valid, u8 last_idx)
        return last_idx;
 }
 
+#define FW_SYSASSERT_CPU_MASK 0xf0000000
 static const struct {
        const char *name;
        u8 num;
@@ -301,6 +302,9 @@ static const struct {
        { "NMI_INTERRUPT_WDG_RXF_FULL", 0x5C },
        { "NMI_INTERRUPT_WDG_NO_RBD_RXF_FULL", 0x64 },
        { "NMI_INTERRUPT_HOST", 0x66 },
+       { "NMI_INTERRUPT_LMAC_FATAL", 0x70 },
+       { "NMI_INTERRUPT_UMAC_FATAL", 0x71 },
+       { "NMI_INTERRUPT_OTHER_LMAC_FATAL", 0x73 },
        { "NMI_INTERRUPT_ACTION_PT", 0x7C },
        { "NMI_INTERRUPT_UNKNOWN", 0x84 },
        { "NMI_INTERRUPT_INST_ACTION_PT", 0x86 },
@@ -312,7 +316,7 @@ static const char *desc_lookup(u32 num)
        int i;
 
        for (i = 0; i < ARRAY_SIZE(advanced_lookup) - 1; i++)
-               if (advanced_lookup[i].num == num)
+               if (advanced_lookup[i].num == (num & ~FW_SYSASSERT_CPU_MASK))
                        return advanced_lookup[i].name;
 
        /* No entry matches 'num', so it is the last: ADVANCED_SYSASSERT */