mirror of https://gitee.com/openkylin/linux.git
edac: add memory types strings for debugging
Instead of using deeply-nested conditionals for dumping the DIMM type in debug mode, add a strings array of the supported DIMM types. This is useful in cases where an edac driver supports multiple DRAM types and is only defined in debug builds. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
This commit is contained in:
parent
cec7924f56
commit
239642fe19
|
@ -1024,10 +1024,7 @@ static enum mem_type amd64_determine_memory_type(struct amd64_pvt *pvt)
|
||||||
type = (pvt->dclr0 & BIT(18)) ? MEM_DDR : MEM_RDDR;
|
type = (pvt->dclr0 & BIT(18)) ? MEM_DDR : MEM_RDDR;
|
||||||
}
|
}
|
||||||
|
|
||||||
debugf1(" Memory type is: %s\n",
|
debugf1(" Memory type is: %s\n", edac_mem_types[type]);
|
||||||
(type == MEM_DDR2) ? "MEM_DDR2" :
|
|
||||||
(type == MEM_RDDR2) ? "MEM_RDDR2" :
|
|
||||||
(type == MEM_DDR) ? "MEM_DDR" : "MEM_RDDR");
|
|
||||||
|
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,6 +74,7 @@
|
||||||
|
|
||||||
#ifdef CONFIG_EDAC_DEBUG
|
#ifdef CONFIG_EDAC_DEBUG
|
||||||
extern int edac_debug_level;
|
extern int edac_debug_level;
|
||||||
|
extern const char *edac_mem_types[];
|
||||||
|
|
||||||
#ifndef CONFIG_EDAC_DEBUG_VERBOSE
|
#ifndef CONFIG_EDAC_DEBUG_VERBOSE
|
||||||
#define edac_debug_printk(level, fmt, arg...) \
|
#define edac_debug_printk(level, fmt, arg...) \
|
||||||
|
|
|
@ -76,6 +76,30 @@ static void edac_mc_dump_mci(struct mem_ctl_info *mci)
|
||||||
debugf3("\tpvt_info = %p\n\n", mci->pvt_info);
|
debugf3("\tpvt_info = %p\n\n", mci->pvt_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* keep those in sync with the enum mem_type
|
||||||
|
*/
|
||||||
|
const char *edac_mem_types[] = {
|
||||||
|
"Empty csrow",
|
||||||
|
"Reserved csrow type",
|
||||||
|
"Unknown csrow type",
|
||||||
|
"Fast page mode RAM",
|
||||||
|
"Extended data out RAM",
|
||||||
|
"Burst Extended data out RAM",
|
||||||
|
"Single data rate SDRAM",
|
||||||
|
"Registered single data rate SDRAM",
|
||||||
|
"Double data rate SDRAM",
|
||||||
|
"Registered Double data rate SDRAM",
|
||||||
|
"Rambus DRAM",
|
||||||
|
"Unbuffered DDR2 RAM",
|
||||||
|
"Fully buffered DDR2",
|
||||||
|
"Registered DDR2 RAM",
|
||||||
|
"Rambus XDR",
|
||||||
|
"Unbuffered DDR3 RAM",
|
||||||
|
"Registered DDR3 RAM",
|
||||||
|
};
|
||||||
|
EXPORT_SYMBOL_GPL(edac_mem_types);
|
||||||
|
|
||||||
#endif /* CONFIG_EDAC_DEBUG */
|
#endif /* CONFIG_EDAC_DEBUG */
|
||||||
|
|
||||||
/* 'ptr' points to a possibly unaligned item X such that sizeof(X) is 'size'.
|
/* 'ptr' points to a possibly unaligned item X such that sizeof(X) is 'size'.
|
||||||
|
|
Loading…
Reference in New Issue