Skip to content

Commit b877ca4

Browse files
committed
Merge tag 'edac_urgent_for_v5.18_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras
Pull EDAC fix from Borislav Petkov: - Read the reported error count from the proper register on synopsys_edac * tag 'edac_urgent_for_v5.18_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras: EDAC/synopsys: Read the error count from the correct register
2 parents 9becb68 + e2932d1 commit b877ca4

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

drivers/edac/synopsys_edac.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@
164164
#define ECC_STAT_CECNT_SHIFT 8
165165
#define ECC_STAT_BITNUM_MASK 0x7F
166166

167+
/* ECC error count register definitions */
168+
#define ECC_ERRCNT_UECNT_MASK 0xFFFF0000
169+
#define ECC_ERRCNT_UECNT_SHIFT 16
170+
#define ECC_ERRCNT_CECNT_MASK 0xFFFF
171+
167172
/* DDR QOS Interrupt register definitions */
168173
#define DDR_QOS_IRQ_STAT_OFST 0x20200
169174
#define DDR_QOSUE_MASK 0x4
@@ -423,15 +428,16 @@ static int zynqmp_get_error_info(struct synps_edac_priv *priv)
423428
base = priv->baseaddr;
424429
p = &priv->stat;
425430

431+
regval = readl(base + ECC_ERRCNT_OFST);
432+
p->ce_cnt = regval & ECC_ERRCNT_CECNT_MASK;
433+
p->ue_cnt = (regval & ECC_ERRCNT_UECNT_MASK) >> ECC_ERRCNT_UECNT_SHIFT;
434+
if (!p->ce_cnt)
435+
goto ue_err;
436+
426437
regval = readl(base + ECC_STAT_OFST);
427438
if (!regval)
428439
return 1;
429440

430-
p->ce_cnt = (regval & ECC_STAT_CECNT_MASK) >> ECC_STAT_CECNT_SHIFT;
431-
p->ue_cnt = (regval & ECC_STAT_UECNT_MASK) >> ECC_STAT_UECNT_SHIFT;
432-
if (!p->ce_cnt)
433-
goto ue_err;
434-
435441
p->ceinfo.bitpos = (regval & ECC_STAT_BITNUM_MASK);
436442

437443
regval = readl(base + ECC_CEADDR0_OFST);

0 commit comments

Comments
 (0)