[<prev] [next>] [day] [month] [year] [list]
Message-ID: <48652daf.fShaj4RN6jgP6Beq%dougthompson@xmission.com>
Date: Fri, 27 Jun 2008 12:13:03 -0600
From: dougthompson@...ssion.com
To: bluesmoke-devel@...ts.sourceforge.net,
linux-kernel@...r.kernel.org, akpm@...ux-foundation.org
Subject: [PATCH 3/13] EDAC i5100 fix enable ecc hardware
From: Arthur Jones <ajones@...erbed.com>
Applied to linux-2.6.26-rc5-mm3
Patch file for the i5100_edac module
It is possible that the BIOS did not enable
ECC at boot time. We check for that case and
fail to load if it is true.
Signed-off-by: Arthur Jones <ajones@...erbed.com>
Signed-off-by: Arthur Jones <ajones@...erbed.com>
---
drivers/edac/i5100_edac.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
Index: linux-2.6.26-rc5/drivers/edac/i5100_edac.c
===================================================================
--- linux-2.6.26-rc5.orig/drivers/edac/i5100_edac.c
+++ linux-2.6.26-rc5/drivers/edac/i5100_edac.c
@@ -24,6 +24,8 @@
/* register addresses and bit field accessors... */
/* device 16, func 1 */
+#define I5100_MC 0x40 /* Memory Control Register */
+#define I5100_MC_ERRDETEN(a) ((a) >> 5 & 1)
#define I5100_MS 0x44 /* Memory Status Register */
#define I5100_SPDDATA 0x48 /* Serial Presence Detect Status Reg */
#define I5100_SPDDATA_RDO(a) ((a) >> 15 & 1)
@@ -688,6 +690,14 @@ static int __devinit i5100_init_one(stru
goto bail;
}
+ /* ECC enabled? */
+ pci_read_config_dword(pdev, I5100_MC, &dw);
+ if (!I5100_MC_ERRDETEN(dw)) {
+ printk(KERN_INFO "i5100_edac: ECC not enabled.\n");
+ ret = -ENODEV;
+ goto bail;
+ }
+
/* figure out how many ranks, from strapped state of 48GB_Mode input */
pci_read_config_dword(pdev, I5100_MS, &dw);
ranksperch = !!(dw & (1 << 8)) * 2 + 4;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists