aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/mce_amd.c
diff options
context:
space:
mode:
authorBorislav Petkov <borislav.petkov@amd.com>2011-01-19 12:15:10 -0500
committerBorislav Petkov <borislav.petkov@amd.com>2011-03-17 09:46:26 -0400
commitdf71a053241548b728d3bf45b0c11ed092a20319 (patch)
treea82963dc5b4365b456a4b3054b052268291f5c37 /drivers/edac/mce_amd.c
parenta3b7db09a6d5a6b8d237766b0b320447bb609bc5 (diff)
amd64_edac: Enable driver on F15h
Add the PCI device ids required for driver registration. Remove pvt->ctl_name and use the family descriptor directly, instead. Then, bump driver version and fixup its format. Finally, enable DRAM ECC decoding on F15h. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'drivers/edac/mce_amd.c')
-rw-r--r--drivers/edac/mce_amd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
index 1afca60345d7..795cfbc0bf50 100644
--- a/drivers/edac/mce_amd.c
+++ b/drivers/edac/mce_amd.c
@@ -594,6 +594,7 @@ static bool nb_noop_mce(u16 ec, u8 xec)
594 594
595void amd_decode_nb_mce(int node_id, struct mce *m, u32 nbcfg) 595void amd_decode_nb_mce(int node_id, struct mce *m, u32 nbcfg)
596{ 596{
597 struct cpuinfo_x86 *c = &boot_cpu_data;
597 u16 ec = EC(m->status); 598 u16 ec = EC(m->status);
598 u8 xec = XEC(m->status, 0x1f); 599 u8 xec = XEC(m->status, 0x1f);
599 u32 nbsh = (u32)(m->status >> 32); 600 u32 nbsh = (u32)(m->status >> 32);
@@ -602,8 +603,7 @@ void amd_decode_nb_mce(int node_id, struct mce *m, u32 nbcfg)
602 pr_emerg(HW_ERR "Northbridge Error (node %d", node_id); 603 pr_emerg(HW_ERR "Northbridge Error (node %d", node_id);
603 604
604 /* F10h, revD can disable ErrCpu[3:0] through ErrCpuVal */ 605 /* F10h, revD can disable ErrCpu[3:0] through ErrCpuVal */
605 if ((boot_cpu_data.x86 == 0x10) && 606 if (c->x86 == 0x10 && c->x86_model > 7) {
606 (boot_cpu_data.x86_model > 7)) {
607 if (nbsh & NBSH_ERR_CPU_VAL) 607 if (nbsh & NBSH_ERR_CPU_VAL)
608 core = nbsh & nb_err_cpumask; 608 core = nbsh & nb_err_cpumask;
609 } else { 609 } else {
@@ -646,7 +646,7 @@ void amd_decode_nb_mce(int node_id, struct mce *m, u32 nbcfg)
646 if (!fam_ops->nb_mce(ec, xec)) 646 if (!fam_ops->nb_mce(ec, xec))
647 goto wrong_nb_mce; 647 goto wrong_nb_mce;
648 648
649 if (boot_cpu_data.x86 == 0xf || boot_cpu_data.x86 == 0x10) 649 if (c->x86 == 0xf || c->x86 == 0x10 || c->x86 == 0x15)
650 if ((xec == 0x8 || xec == 0x0) && nb_bus_decoder) 650 if ((xec == 0x8 || xec == 0x0) && nb_bus_decoder)
651 nb_bus_decoder(node_id, m, nbcfg); 651 nb_bus_decoder(node_id, m, nbcfg);
652 652