summaryrefslogtreecommitdiffstats
path: root/drivers/edac
diff options
context:
space:
mode:
authorBorislav Petkov <borislav.petkov@amd.com>2009-11-12 15:37:57 +0100
committerBorislav Petkov <borislav.petkov@amd.com>2009-12-07 19:14:31 +0100
commit6b4c0bdeb00f35cad2d3e0dc0d97bb4950a8f86e (patch)
tree6df106fc0acba87e83980b524d54eefcba0afbb1 /drivers/edac
parentedac: add memory types strings for debugging (diff)
downloadlinux-6b4c0bdeb00f35cad2d3e0dc0d97bb4950a8f86e.tar.xz
linux-6b4c0bdeb00f35cad2d3e0dc0d97bb4950a8f86e.zip
amd64_edac: detect DDR3 memory type
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'drivers/edac')
-rw-r--r--drivers/edac/amd64_edac.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index 708d065efc95..d9cde7132e89 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -1017,10 +1017,11 @@ static enum mem_type amd64_determine_memory_type(struct amd64_pvt *pvt)
enum mem_type type;
if (boot_cpu_data.x86 >= 0x10 || pvt->ext_model >= K8_REV_F) {
- /* Rev F and later */
- type = (pvt->dclr0 & BIT(16)) ? MEM_DDR2 : MEM_RDDR2;
+ if (pvt->dchr0 & DDR3_MODE)
+ type = (pvt->dclr0 & BIT(16)) ? MEM_DDR3 : MEM_RDDR3;
+ else
+ type = (pvt->dclr0 & BIT(16)) ? MEM_DDR2 : MEM_RDDR2;
} else {
- /* Rev E and earlier */
type = (pvt->dclr0 & BIT(18)) ? MEM_DDR : MEM_RDDR;
}