Commit 94d93374 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

ppc4xx_edac: convert driver to use the new edac ABI

The legacy edac ABI is going to be removed. Port the driver to use
and benefit from the new API functionality.

Cc: Josh Boyer <jwboyer@gmail.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Borislav Petkov <borislav.petkov@amd.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent f34575ac
...@@ -727,7 +727,10 @@ ppc4xx_edac_handle_ce(struct mem_ctl_info *mci, ...@@ -727,7 +727,10 @@ ppc4xx_edac_handle_ce(struct mem_ctl_info *mci,
for (row = 0; row < mci->nr_csrows; row++) for (row = 0; row < mci->nr_csrows; row++)
if (ppc4xx_edac_check_bank_error(status, row)) if (ppc4xx_edac_check_bank_error(status, row))
edac_mc_handle_ce_no_info(mci, message); edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
0, 0, 0,
row, 0, -1,
message, "", NULL);
} }
/** /**
...@@ -755,7 +758,10 @@ ppc4xx_edac_handle_ue(struct mem_ctl_info *mci, ...@@ -755,7 +758,10 @@ ppc4xx_edac_handle_ue(struct mem_ctl_info *mci,
for (row = 0; row < mci->nr_csrows; row++) for (row = 0; row < mci->nr_csrows; row++)
if (ppc4xx_edac_check_bank_error(status, row)) if (ppc4xx_edac_check_bank_error(status, row))
edac_mc_handle_ue(mci, page, offset, row, message); edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
page, offset, 0,
row, 0, -1,
message, "", NULL);
} }
/** /**
...@@ -1233,6 +1239,7 @@ static int __devinit ppc4xx_edac_probe(struct platform_device *op) ...@@ -1233,6 +1239,7 @@ static int __devinit ppc4xx_edac_probe(struct platform_device *op)
dcr_host_t dcr_host; dcr_host_t dcr_host;
const struct device_node *np = op->dev.of_node; const struct device_node *np = op->dev.of_node;
struct mem_ctl_info *mci = NULL; struct mem_ctl_info *mci = NULL;
struct edac_mc_layer layers[2];
static int ppc4xx_edac_instance; static int ppc4xx_edac_instance;
/* /*
...@@ -1278,12 +1285,14 @@ static int __devinit ppc4xx_edac_probe(struct platform_device *op) ...@@ -1278,12 +1285,14 @@ static int __devinit ppc4xx_edac_probe(struct platform_device *op)
* controller instance and perform the appropriate * controller instance and perform the appropriate
* initialization. * initialization.
*/ */
layers[0].type = EDAC_MC_LAYER_CHIP_SELECT;
mci = edac_mc_alloc(sizeof(struct ppc4xx_edac_pdata), layers[0].size = ppc4xx_edac_nr_csrows;
ppc4xx_edac_nr_csrows, layers[0].is_virt_csrow = true;
ppc4xx_edac_nr_chans, layers[1].type = EDAC_MC_LAYER_CHANNEL;
ppc4xx_edac_instance); layers[1].size = ppc4xx_edac_nr_chans;
layers[1].is_virt_csrow = false;
mci = new_edac_mc_alloc(ppc4xx_edac_instance, ARRAY_SIZE(layers), layers,
sizeof(struct ppc4xx_edac_pdata));
if (mci == NULL) { if (mci == NULL) {
ppc4xx_edac_printk(KERN_ERR, "%s: " ppc4xx_edac_printk(KERN_ERR, "%s: "
"Failed to allocate EDAC MC instance!\n", "Failed to allocate EDAC MC instance!\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment