diff options
author | Borislav Petkov <borislav.petkov@amd.com> | 2011-01-19 12:15:10 -0500 |
---|---|---|
committer | Borislav Petkov <borislav.petkov@amd.com> | 2011-03-17 09:46:26 -0400 |
commit | df71a053241548b728d3bf45b0c11ed092a20319 (patch) | |
tree | a82963dc5b4365b456a4b3054b052268291f5c37 /drivers/edac/mce_amd.c | |
parent | a3b7db09a6d5a6b8d237766b0b320447bb609bc5 (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.c | 6 |
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 | ||
595 | void amd_decode_nb_mce(int node_id, struct mce *m, u32 nbcfg) | 595 | void 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 | ||