From: Toshi Kani <toshi.kani@hpe.com>
Date: Wed, 9 May 2018 16:20:30 -0600
Subject: EDAC, ghes: Add DDR4 and NVDIMM memory types
Patch-mainline: v4.18-rc1
Git-commit: ad0d73b324dbc9e5b987fbda08ceb523fbeb0a9f
References: bsc#1099125
The ghes_edac driver obtains memory type from SMBIOS type 17, but it
does not recognize DDR4 and NVDIMM types.
Add support of DDR4 and NVDIMM types. NVDIMM type is denoted by memory
type DDR3/4 and non-volatile.
Reported-by: Robert Elliott <elliott@hpe.com>
Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/20180509222030.9299-1-toshi.kani@hpe.com
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
---
drivers/edac/ghes_edac.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
--- a/drivers/edac/ghes_edac.c
+++ b/drivers/edac/ghes_edac.c
@@ -125,11 +125,21 @@ static void ghes_edac_dmidecode(const st
dimm->mtype = MEM_FB_DDR2;
break;
case 0x18:
- if (entry->type_detail & 1 << 13)
+ if (entry->type_detail & 1 << 12)
+ dimm->mtype = MEM_NVDIMM;
+ else if (entry->type_detail & 1 << 13)
dimm->mtype = MEM_RDDR3;
else
dimm->mtype = MEM_DDR3;
break;
+ case 0x1a:
+ if (entry->type_detail & 1 << 12)
+ dimm->mtype = MEM_NVDIMM;
+ else if (entry->type_detail & 1 << 13)
+ dimm->mtype = MEM_RDDR4;
+ else
+ dimm->mtype = MEM_DDR4;
+ break;
default:
if (entry->type_detail & 1 << 6)
dimm->mtype = MEM_RMBS;