MIPS: SGI-IP27: Use structs for decoding error status registers
authorThomas Bogendoerfer <tbogendoerfer@suse.de>
Thu, 9 Jan 2020 12:33:46 +0000 (13:33 +0100)
committerPaul Burton <paulburton@kernel.org>
Thu, 9 Jan 2020 23:29:59 +0000 (15:29 -0800)
Convert printing of error status registers to use structs, which
are defines for IP27 and IP35.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Signed-off-by: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
arch/mips/sgi-ip27/ip27-berr.c

index 65635f7..5a38ae6 100644 (file)
@@ -30,29 +30,31 @@ static void dump_hub_information(unsigned long errst0, unsigned long errst1)
                { "WERR", "Uncached Partial Write", "PWERR", "Write Timeout",
                  NULL, NULL, NULL, NULL }
        };
-       int wrb = errst1 & PI_ERR_ST1_WRBRRB_MASK;
+       union pi_err_stat0 st0;
+       union pi_err_stat1 st1;
 
-       if (!(errst0 & PI_ERR_ST0_VALID_MASK)) {
-               printk("Hub does not contain valid error information\n");
+       st0.pi_stat0_word = errst0;
+       st1.pi_stat1_word = errst1;
+
+       if (!st0.pi_stat0_fmt.s0_valid) {
+               pr_info("Hub does not contain valid error information\n");
                return;
        }
 
-
-       printk("Hub has valid error information:\n");
-       if (errst0 & PI_ERR_ST0_OVERRUN_MASK)
-               printk("Overrun is set.  Error stack may contain additional "
+       pr_info("Hub has valid error information:\n");
+       if (st0.pi_stat0_fmt.s0_ovr_run)
+               pr_info("Overrun is set. Error stack may contain additional "
                       "information.\n");
-       printk("Hub error address is %08lx\n",
-              (errst0 & PI_ERR_ST0_ADDR_MASK) >> (PI_ERR_ST0_ADDR_SHFT - 3));
-       printk("Incoming message command 0x%lx\n",
-              (errst0 & PI_ERR_ST0_CMD_MASK) >> PI_ERR_ST0_CMD_SHFT);
-       printk("Supplemental field of incoming message is 0x%lx\n",
-              (errst0 & PI_ERR_ST0_SUPPL_MASK) >> PI_ERR_ST0_SUPPL_SHFT);
-       printk("T5 Rn (for RRB only) is 0x%lx\n",
-              (errst0 & PI_ERR_ST0_REQNUM_MASK) >> PI_ERR_ST0_REQNUM_SHFT);
-       printk("Error type is %s\n", err_type[wrb]
-              [(errst0 & PI_ERR_ST0_TYPE_MASK) >> PI_ERR_ST0_TYPE_SHFT]
-               ? : "invalid");
+       pr_info("Hub error address is %08lx\n",
+               (unsigned long)st0.pi_stat0_fmt.s0_addr);
+       pr_info("Incoming message command 0x%lx\n",
+               (unsigned long)st0.pi_stat0_fmt.s0_cmd);
+       pr_info("Supplemental field of incoming message is 0x%lx\n",
+               (unsigned long)st0.pi_stat0_fmt.s0_supl);
+       pr_info("T5 Rn (for RRB only) is 0x%lx\n",
+               (unsigned long)st0.pi_stat0_fmt.s0_t5_req);
+       pr_info("Error type is %s\n", err_type[st1.pi_stat1_fmt.s1_rw_rb]
+              [st0.pi_stat0_fmt.s0_err_type] ? : "invalid");
 }
 
 int ip27_be_handler(struct pt_regs *regs, int is_fixup)