mirror of https://gitee.com/openkylin/linux.git
MIPS: SGI-IP27: Use structs for decoding error status registers
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
This commit is contained in:
parent
db96e058b4
commit
2c616e9f03
|
@ -30,29 +30,31 @@ static void dump_hub_information(unsigned long errst0, unsigned long errst1)
|
||||||
{ "WERR", "Uncached Partial Write", "PWERR", "Write Timeout",
|
{ "WERR", "Uncached Partial Write", "PWERR", "Write Timeout",
|
||||||
NULL, NULL, NULL, NULL }
|
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)) {
|
st0.pi_stat0_word = errst0;
|
||||||
printk("Hub does not contain valid error information\n");
|
st1.pi_stat1_word = errst1;
|
||||||
|
|
||||||
|
if (!st0.pi_stat0_fmt.s0_valid) {
|
||||||
|
pr_info("Hub does not contain valid error information\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pr_info("Hub has valid error information:\n");
|
||||||
printk("Hub has valid error information:\n");
|
if (st0.pi_stat0_fmt.s0_ovr_run)
|
||||||
if (errst0 & PI_ERR_ST0_OVERRUN_MASK)
|
pr_info("Overrun is set. Error stack may contain additional "
|
||||||
printk("Overrun is set. Error stack may contain additional "
|
|
||||||
"information.\n");
|
"information.\n");
|
||||||
printk("Hub error address is %08lx\n",
|
pr_info("Hub error address is %08lx\n",
|
||||||
(errst0 & PI_ERR_ST0_ADDR_MASK) >> (PI_ERR_ST0_ADDR_SHFT - 3));
|
(unsigned long)st0.pi_stat0_fmt.s0_addr);
|
||||||
printk("Incoming message command 0x%lx\n",
|
pr_info("Incoming message command 0x%lx\n",
|
||||||
(errst0 & PI_ERR_ST0_CMD_MASK) >> PI_ERR_ST0_CMD_SHFT);
|
(unsigned long)st0.pi_stat0_fmt.s0_cmd);
|
||||||
printk("Supplemental field of incoming message is 0x%lx\n",
|
pr_info("Supplemental field of incoming message is 0x%lx\n",
|
||||||
(errst0 & PI_ERR_ST0_SUPPL_MASK) >> PI_ERR_ST0_SUPPL_SHFT);
|
(unsigned long)st0.pi_stat0_fmt.s0_supl);
|
||||||
printk("T5 Rn (for RRB only) is 0x%lx\n",
|
pr_info("T5 Rn (for RRB only) is 0x%lx\n",
|
||||||
(errst0 & PI_ERR_ST0_REQNUM_MASK) >> PI_ERR_ST0_REQNUM_SHFT);
|
(unsigned long)st0.pi_stat0_fmt.s0_t5_req);
|
||||||
printk("Error type is %s\n", err_type[wrb]
|
pr_info("Error type is %s\n", err_type[st1.pi_stat1_fmt.s1_rw_rb]
|
||||||
[(errst0 & PI_ERR_ST0_TYPE_MASK) >> PI_ERR_ST0_TYPE_SHFT]
|
[st0.pi_stat0_fmt.s0_err_type] ? : "invalid");
|
||||||
? : "invalid");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ip27_be_handler(struct pt_regs *regs, int is_fixup)
|
int ip27_be_handler(struct pt_regs *regs, int is_fixup)
|
||||||
|
|
Loading…
Reference in New Issue