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: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
f34575aca9
commit
94d9337459
|
@ -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,
|
||||||
|
|
||||||
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)
|
||||||
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)
|
||||||
* 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",
|
||||||
|
|
Loading…
Reference in New Issue