edac: Rename the parent dev to pdev
As EDAC doesn't use struct device itself, it created a parent dev pointer called as "pdev". Now that we'll be converting it to use struct device, instead of struct devsys, this needs to be fixed. No functional changes. Reviewed-by: Aristeu Rozanski <arozansk@redhat.com> Acked-by: Chris Metcalf <cmetcalf@tilera.com> Cc: Doug Thompson <norsk5@yahoo.com> Cc: Borislav Petkov <borislav.petkov@amd.com> Cc: Mark Gross <mark.gross@intel.com> Cc: Jason Uhlenkott <juhlenko@akamai.com> Cc: Tim Small <tim@buttersideup.com> Cc: Ranganathan Desikan <ravi@jetztechnologies.com> Cc: "Arvind R." <arvino55@gmail.com> Cc: Olof Johansson <olof@lixom.net> Cc: Egor Martovetsky <egor@pasemi.com> Cc: Michal Marek <mmarek@suse.cz> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Joe Perches <joe@perches.com> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Hitoshi Mitake <h.mitake@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: "Niklas Söderlund" <niklas.soderlund@ericsson.com> Cc: Shaohui Xie <Shaohui.Xie@freescale.com> Cc: Josh Boyer <jwboyer@gmail.com> Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
53f2d02898
commit
fd687502dc
|
@ -2601,7 +2601,7 @@ static int amd64_init_one_instance(struct pci_dev *F2)
|
||||||
goto err_siblings;
|
goto err_siblings;
|
||||||
|
|
||||||
mci->pvt_info = pvt;
|
mci->pvt_info = pvt;
|
||||||
mci->dev = &pvt->F2->dev;
|
mci->pdev = &pvt->F2->dev;
|
||||||
|
|
||||||
setup_mci_misc_attrs(mci, fam_type);
|
setup_mci_misc_attrs(mci, fam_type);
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ static void amd76x_get_error_info(struct mem_ctl_info *mci,
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
pci_read_config_dword(pdev, AMD76X_ECC_MODE_STATUS,
|
pci_read_config_dword(pdev, AMD76X_ECC_MODE_STATUS,
|
||||||
&info->ecc_mode_status);
|
&info->ecc_mode_status);
|
||||||
|
|
||||||
|
@ -257,7 +257,7 @@ static int amd76x_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
debugf0("%s(): mci = %p\n", __func__, mci);
|
debugf0("%s(): mci = %p\n", __func__, mci);
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_RDDR;
|
mci->mtype_cap = MEM_FLAG_RDDR;
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
||||||
mci->edac_cap = ems_mode ?
|
mci->edac_cap = ems_mode ?
|
||||||
|
|
|
@ -36,7 +36,7 @@ static void cell_edac_count_ce(struct mem_ctl_info *mci, int chan, u64 ar)
|
||||||
struct csrow_info *csrow = &mci->csrows[0];
|
struct csrow_info *csrow = &mci->csrows[0];
|
||||||
unsigned long address, pfn, offset, syndrome;
|
unsigned long address, pfn, offset, syndrome;
|
||||||
|
|
||||||
dev_dbg(mci->dev, "ECC CE err on node %d, channel %d, ar = 0x%016llx\n",
|
dev_dbg(mci->pdev, "ECC CE err on node %d, channel %d, ar = 0x%016llx\n",
|
||||||
priv->node, chan, ar);
|
priv->node, chan, ar);
|
||||||
|
|
||||||
/* Address decoding is likely a bit bogus, to dbl check */
|
/* Address decoding is likely a bit bogus, to dbl check */
|
||||||
|
@ -59,7 +59,7 @@ static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar)
|
||||||
struct csrow_info *csrow = &mci->csrows[0];
|
struct csrow_info *csrow = &mci->csrows[0];
|
||||||
unsigned long address, pfn, offset;
|
unsigned long address, pfn, offset;
|
||||||
|
|
||||||
dev_dbg(mci->dev, "ECC UE err on node %d, channel %d, ar = 0x%016llx\n",
|
dev_dbg(mci->pdev, "ECC UE err on node %d, channel %d, ar = 0x%016llx\n",
|
||||||
priv->node, chan, ar);
|
priv->node, chan, ar);
|
||||||
|
|
||||||
/* Address decoding is likely a bit bogus, to dbl check */
|
/* Address decoding is likely a bit bogus, to dbl check */
|
||||||
|
@ -83,7 +83,7 @@ static void cell_edac_check(struct mem_ctl_info *mci)
|
||||||
fir = in_be64(&priv->regs->mic_fir);
|
fir = in_be64(&priv->regs->mic_fir);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (fir != priv->prev_fir) {
|
if (fir != priv->prev_fir) {
|
||||||
dev_dbg(mci->dev, "fir change : 0x%016lx\n", fir);
|
dev_dbg(mci->pdev, "fir change : 0x%016lx\n", fir);
|
||||||
priv->prev_fir = fir;
|
priv->prev_fir = fir;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -119,7 +119,7 @@ static void cell_edac_check(struct mem_ctl_info *mci)
|
||||||
mb(); /* sync up */
|
mb(); /* sync up */
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fir = in_be64(&priv->regs->mic_fir);
|
fir = in_be64(&priv->regs->mic_fir);
|
||||||
dev_dbg(mci->dev, "fir clear : 0x%016lx\n", fir);
|
dev_dbg(mci->pdev, "fir clear : 0x%016lx\n", fir);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -155,7 +155,7 @@ static void __devinit cell_edac_init_csrows(struct mem_ctl_info *mci)
|
||||||
dimm->edac_mode = EDAC_SECDED;
|
dimm->edac_mode = EDAC_SECDED;
|
||||||
dimm->nr_pages = nr_pages / csrow->nr_channels;
|
dimm->nr_pages = nr_pages / csrow->nr_channels;
|
||||||
}
|
}
|
||||||
dev_dbg(mci->dev,
|
dev_dbg(mci->pdev,
|
||||||
"Initialized on node %d, chanmask=0x%x,"
|
"Initialized on node %d, chanmask=0x%x,"
|
||||||
" first_page=0x%lx, nr_pages=0x%x\n",
|
" first_page=0x%lx, nr_pages=0x%x\n",
|
||||||
priv->node, priv->chanmask,
|
priv->node, priv->chanmask,
|
||||||
|
@ -212,7 +212,7 @@ static int __devinit cell_edac_probe(struct platform_device *pdev)
|
||||||
priv->regs = regs;
|
priv->regs = regs;
|
||||||
priv->node = pdev->id;
|
priv->node = pdev->id;
|
||||||
priv->chanmask = chanmask;
|
priv->chanmask = chanmask;
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_XDR;
|
mci->mtype_cap = MEM_FLAG_XDR;
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
||||||
mci->edac_cap = EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
mci->edac_cap = EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
||||||
|
|
|
@ -995,7 +995,7 @@ static int __devinit cpc925_probe(struct platform_device *pdev)
|
||||||
pdata->edac_idx = edac_mc_idx++;
|
pdata->edac_idx = edac_mc_idx++;
|
||||||
pdata->name = pdev->name;
|
pdata->name = pdev->name;
|
||||||
|
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, mci);
|
platform_set_drvdata(pdev, mci);
|
||||||
mci->dev_name = dev_name(&pdev->dev);
|
mci->dev_name = dev_name(&pdev->dev);
|
||||||
mci->mtype_cap = MEM_FLAG_RDDR | MEM_FLAG_DDR;
|
mci->mtype_cap = MEM_FLAG_RDDR | MEM_FLAG_DDR;
|
||||||
|
|
|
@ -1308,7 +1308,7 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
/* FIXME - what if different memory types are in different csrows? */
|
/* FIXME - what if different memory types are in different csrows? */
|
||||||
mci->mod_name = EDAC_MOD_STR;
|
mci->mod_name = EDAC_MOD_STR;
|
||||||
mci->mod_ver = E752X_REVISION;
|
mci->mod_ver = E752X_REVISION;
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
|
|
||||||
debugf3("%s(): init pvt\n", __func__);
|
debugf3("%s(): init pvt\n", __func__);
|
||||||
pvt = (struct e752x_pvt *)mci->pvt_info;
|
pvt = (struct e752x_pvt *)mci->pvt_info;
|
||||||
|
|
|
@ -458,7 +458,7 @@ static int e7xxx_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
/* FIXME - what if different memory types are in different csrows? */
|
/* FIXME - what if different memory types are in different csrows? */
|
||||||
mci->mod_name = EDAC_MOD_STR;
|
mci->mod_name = EDAC_MOD_STR;
|
||||||
mci->mod_ver = E7XXX_REVISION;
|
mci->mod_ver = E7XXX_REVISION;
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
debugf3("%s(): init pvt\n", __func__);
|
debugf3("%s(): init pvt\n", __func__);
|
||||||
pvt = (struct e7xxx_pvt *)mci->pvt_info;
|
pvt = (struct e7xxx_pvt *)mci->pvt_info;
|
||||||
pvt->dev_info = &e7xxx_devs[dev_idx];
|
pvt->dev_info = &e7xxx_devs[dev_idx];
|
||||||
|
|
|
@ -93,7 +93,7 @@ static void edac_mc_dump_mci(struct mem_ctl_info *mci)
|
||||||
mci->nr_csrows, mci->csrows);
|
mci->nr_csrows, mci->csrows);
|
||||||
debugf3("\tmci->nr_dimms = %d, dimms = %p\n",
|
debugf3("\tmci->nr_dimms = %d, dimms = %p\n",
|
||||||
mci->tot_dimms, mci->dimms);
|
mci->tot_dimms, mci->dimms);
|
||||||
debugf3("\tdev = %p\n", mci->dev);
|
debugf3("\tdev = %p\n", mci->pdev);
|
||||||
debugf3("\tmod_name:ctl_name = %s:%s\n", mci->mod_name, mci->ctl_name);
|
debugf3("\tmod_name:ctl_name = %s:%s\n", mci->mod_name, mci->ctl_name);
|
||||||
debugf3("\tpvt_info = %p\n\n", mci->pvt_info);
|
debugf3("\tpvt_info = %p\n\n", mci->pvt_info);
|
||||||
}
|
}
|
||||||
|
@ -428,7 +428,7 @@ struct mem_ctl_info *find_mci_by_dev(struct device *dev)
|
||||||
list_for_each(item, &mc_devices) {
|
list_for_each(item, &mc_devices) {
|
||||||
mci = list_entry(item, struct mem_ctl_info, link);
|
mci = list_entry(item, struct mem_ctl_info, link);
|
||||||
|
|
||||||
if (mci->dev == dev)
|
if (mci->pdev == dev)
|
||||||
return mci;
|
return mci;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -580,7 +580,7 @@ static int add_mc_to_global_list(struct mem_ctl_info *mci)
|
||||||
|
|
||||||
insert_before = &mc_devices;
|
insert_before = &mc_devices;
|
||||||
|
|
||||||
p = find_mci_by_dev(mci->dev);
|
p = find_mci_by_dev(mci->pdev);
|
||||||
if (unlikely(p != NULL))
|
if (unlikely(p != NULL))
|
||||||
goto fail0;
|
goto fail0;
|
||||||
|
|
||||||
|
@ -602,7 +602,7 @@ static int add_mc_to_global_list(struct mem_ctl_info *mci)
|
||||||
|
|
||||||
fail0:
|
fail0:
|
||||||
edac_printk(KERN_WARNING, EDAC_MC,
|
edac_printk(KERN_WARNING, EDAC_MC,
|
||||||
"%s (%s) %s %s already assigned %d\n", dev_name(p->dev),
|
"%s (%s) %s %s already assigned %d\n", dev_name(p->pdev),
|
||||||
edac_dev_name(mci), p->mod_name, p->ctl_name, p->mc_idx);
|
edac_dev_name(mci), p->mod_name, p->ctl_name, p->mc_idx);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|
|
@ -916,7 +916,7 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
|
||||||
INIT_LIST_HEAD(&mci->grp_kobj_list);
|
INIT_LIST_HEAD(&mci->grp_kobj_list);
|
||||||
|
|
||||||
/* create a symlink for the device */
|
/* create a symlink for the device */
|
||||||
err = sysfs_create_link(kobj_mci, &mci->dev->kobj,
|
err = sysfs_create_link(kobj_mci, &mci->pdev->kobj,
|
||||||
EDAC_DEVICE_SYMLINK);
|
EDAC_DEVICE_SYMLINK);
|
||||||
if (err) {
|
if (err) {
|
||||||
debugf1("%s() failure to create symlink\n", __func__);
|
debugf1("%s() failure to create symlink\n", __func__);
|
||||||
|
|
|
@ -194,7 +194,7 @@ static void i3000_get_error_info(struct mem_ctl_info *mci,
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a mess because there is no atomic way to read all the
|
* This is a mess because there is no atomic way to read all the
|
||||||
|
@ -368,7 +368,7 @@ static int i3000_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
|
|
||||||
debugf3("MC: %s(): init mci\n", __func__);
|
debugf3("MC: %s(): init mci\n", __func__);
|
||||||
|
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_DDR2;
|
mci->mtype_cap = MEM_FLAG_DDR2;
|
||||||
|
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
|
||||||
|
|
|
@ -159,7 +159,7 @@ static void i3200_clear_error_info(struct mem_ctl_info *mci)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear any error bits.
|
* Clear any error bits.
|
||||||
|
@ -176,7 +176,7 @@ static void i3200_get_and_clear_error_info(struct mem_ctl_info *mci,
|
||||||
struct i3200_priv *priv = mci->pvt_info;
|
struct i3200_priv *priv = mci->pvt_info;
|
||||||
void __iomem *window = priv->window;
|
void __iomem *window = priv->window;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a mess because there is no atomic way to read all the
|
* This is a mess because there is no atomic way to read all the
|
||||||
|
@ -354,7 +354,7 @@ static int i3200_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
|
|
||||||
debugf3("MC: %s(): init mci\n", __func__);
|
debugf3("MC: %s(): init mci\n", __func__);
|
||||||
|
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_DDR2;
|
mci->mtype_cap = MEM_FLAG_DDR2;
|
||||||
|
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
|
||||||
|
|
|
@ -1409,7 +1409,7 @@ static int i5000_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
kobject_get(&mci->edac_mci_kobj);
|
kobject_get(&mci->edac_mci_kobj);
|
||||||
debugf0("MC: %s: %s(): mci = %p\n", __FILE__, __func__, mci);
|
debugf0("MC: %s: %s(): mci = %p\n", __FILE__, __func__, mci);
|
||||||
|
|
||||||
mci->dev = &pdev->dev; /* record ptr to the generic device */
|
mci->pdev = &pdev->dev; /* record ptr to the generic device */
|
||||||
|
|
||||||
pvt = mci->pvt_info;
|
pvt = mci->pvt_info;
|
||||||
pvt->system_address = pdev; /* Record this device in our private */
|
pvt->system_address = pdev; /* Record this device in our private */
|
||||||
|
|
|
@ -943,7 +943,7 @@ static int __devinit i5100_init_one(struct pci_dev *pdev,
|
||||||
goto bail_disable_ch1;
|
goto bail_disable_ch1;
|
||||||
}
|
}
|
||||||
|
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
|
|
||||||
priv = mci->pvt_info;
|
priv = mci->pvt_info;
|
||||||
priv->ranksperchan = ranksperch;
|
priv->ranksperchan = ranksperch;
|
||||||
|
|
|
@ -1299,7 +1299,7 @@ static int i5400_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
|
|
||||||
debugf0("MC: %s: %s(): mci = %p\n", __FILE__, __func__, mci);
|
debugf0("MC: %s: %s(): mci = %p\n", __FILE__, __func__, mci);
|
||||||
|
|
||||||
mci->dev = &pdev->dev; /* record ptr to the generic device */
|
mci->pdev = &pdev->dev; /* record ptr to the generic device */
|
||||||
|
|
||||||
pvt = mci->pvt_info;
|
pvt = mci->pvt_info;
|
||||||
pvt->system_address = pdev; /* Record this device in our private */
|
pvt->system_address = pdev; /* Record this device in our private */
|
||||||
|
|
|
@ -1057,7 +1057,7 @@ static int __devinit i7300_init_one(struct pci_dev *pdev,
|
||||||
|
|
||||||
debugf0("MC: " __FILE__ ": %s(): mci = %p\n", __func__, mci);
|
debugf0("MC: " __FILE__ ": %s(): mci = %p\n", __func__, mci);
|
||||||
|
|
||||||
mci->dev = &pdev->dev; /* record ptr to the generic device */
|
mci->pdev = &pdev->dev; /* record ptr to the generic device */
|
||||||
|
|
||||||
pvt = mci->pvt_info;
|
pvt = mci->pvt_info;
|
||||||
pvt->pci_dev_16_0_fsb_ctlr = pdev; /* Record this device in our private */
|
pvt->pci_dev_16_0_fsb_ctlr = pdev; /* Record this device in our private */
|
||||||
|
|
|
@ -2122,7 +2122,7 @@ static void i7core_unregister_mci(struct i7core_dev *i7core_dev)
|
||||||
i7core_pci_ctl_release(pvt);
|
i7core_pci_ctl_release(pvt);
|
||||||
|
|
||||||
/* Remove MC sysfs nodes */
|
/* Remove MC sysfs nodes */
|
||||||
edac_mc_del_mc(mci->dev);
|
edac_mc_del_mc(mci->pdev);
|
||||||
|
|
||||||
debugf1("%s: free mci struct\n", mci->ctl_name);
|
debugf1("%s: free mci struct\n", mci->ctl_name);
|
||||||
kfree(mci->ctl_name);
|
kfree(mci->ctl_name);
|
||||||
|
@ -2188,7 +2188,7 @@ static int i7core_register_mci(struct i7core_dev *i7core_dev)
|
||||||
/* Get dimm basic config */
|
/* Get dimm basic config */
|
||||||
get_dimm_config(mci);
|
get_dimm_config(mci);
|
||||||
/* record ptr to the generic device */
|
/* record ptr to the generic device */
|
||||||
mci->dev = &i7core_dev->pdev[0]->dev;
|
mci->pdev = &i7core_dev->pdev[0]->dev;
|
||||||
/* Set the function pointer to an actual operation function */
|
/* Set the function pointer to an actual operation function */
|
||||||
mci->edac_check = i7core_check_error;
|
mci->edac_check = i7core_check_error;
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ static void i82443bxgx_edacmc_get_error_info(struct mem_ctl_info *mci,
|
||||||
*info)
|
*info)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
pci_read_config_dword(pdev, I82443BXGX_EAP, &info->eap);
|
pci_read_config_dword(pdev, I82443BXGX_EAP, &info->eap);
|
||||||
if (info->eap & I82443BXGX_EAP_OFFSET_SBE)
|
if (info->eap & I82443BXGX_EAP_OFFSET_SBE)
|
||||||
/* Clear error to allow next error to be reported [p.61] */
|
/* Clear error to allow next error to be reported [p.61] */
|
||||||
|
@ -260,7 +260,7 @@ static int i82443bxgx_edacmc_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
debugf0("MC: %s: %s(): mci = %p\n", __FILE__, __func__, mci);
|
debugf0("MC: %s: %s(): mci = %p\n", __FILE__, __func__, mci);
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_EDO | MEM_FLAG_SDR | MEM_FLAG_RDR;
|
mci->mtype_cap = MEM_FLAG_EDO | MEM_FLAG_SDR | MEM_FLAG_RDR;
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
||||||
pci_read_config_byte(pdev, I82443BXGX_DRAMC, &dramc);
|
pci_read_config_byte(pdev, I82443BXGX_DRAMC, &dramc);
|
||||||
|
|
|
@ -67,7 +67,7 @@ static void i82860_get_error_info(struct mem_ctl_info *mci,
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a mess because there is no atomic way to read all the
|
* This is a mess because there is no atomic way to read all the
|
||||||
|
@ -211,7 +211,7 @@ static int i82860_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
debugf3("%s(): init mci\n", __func__);
|
debugf3("%s(): init mci\n", __func__);
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_DDR;
|
mci->mtype_cap = MEM_FLAG_DDR;
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
|
||||||
/* I"m not sure about this but I think that all RDRAM is SECDED */
|
/* I"m not sure about this but I think that all RDRAM is SECDED */
|
||||||
|
|
|
@ -189,7 +189,7 @@ static void i82875p_get_error_info(struct mem_ctl_info *mci,
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a mess because there is no atomic way to read all the
|
* This is a mess because there is no atomic way to read all the
|
||||||
|
@ -430,7 +430,7 @@ static int i82875p_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
kobject_get(&mci->edac_mci_kobj);
|
kobject_get(&mci->edac_mci_kobj);
|
||||||
|
|
||||||
debugf3("%s(): init mci\n", __func__);
|
debugf3("%s(): init mci\n", __func__);
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_DDR;
|
mci->mtype_cap = MEM_FLAG_DDR;
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
|
||||||
mci->edac_cap = EDAC_FLAG_UNKNOWN;
|
mci->edac_cap = EDAC_FLAG_UNKNOWN;
|
||||||
|
|
|
@ -241,7 +241,7 @@ static void i82975x_get_error_info(struct mem_ctl_info *mci,
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a mess because there is no atomic way to read all the
|
* This is a mess because there is no atomic way to read all the
|
||||||
|
@ -559,7 +559,7 @@ static int i82975x_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
debugf3("%s(): init mci\n", __func__);
|
debugf3("%s(): init mci\n", __func__);
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_DDR2;
|
mci->mtype_cap = MEM_FLAG_DDR2;
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
|
||||||
mci->edac_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
|
mci->edac_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
|
||||||
|
|
|
@ -989,9 +989,9 @@ static int __devinit mpc85xx_mc_err_probe(struct platform_device *op)
|
||||||
pdata = mci->pvt_info;
|
pdata = mci->pvt_info;
|
||||||
pdata->name = "mpc85xx_mc_err";
|
pdata->name = "mpc85xx_mc_err";
|
||||||
pdata->irq = NO_IRQ;
|
pdata->irq = NO_IRQ;
|
||||||
mci->dev = &op->dev;
|
mci->pdev = &op->dev;
|
||||||
pdata->edac_idx = edac_mc_idx++;
|
pdata->edac_idx = edac_mc_idx++;
|
||||||
dev_set_drvdata(mci->dev, mci);
|
dev_set_drvdata(mci->pdev, mci);
|
||||||
mci->ctl_name = pdata->name;
|
mci->ctl_name = pdata->name;
|
||||||
mci->dev_name = pdata->name;
|
mci->dev_name = pdata->name;
|
||||||
|
|
||||||
|
|
|
@ -724,7 +724,7 @@ static int __devinit mv64x60_mc_err_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
|
|
||||||
pdata = mci->pvt_info;
|
pdata = mci->pvt_info;
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
platform_set_drvdata(pdev, mci);
|
platform_set_drvdata(pdev, mci);
|
||||||
pdata->name = "mv64x60_mc_err";
|
pdata->name = "mv64x60_mc_err";
|
||||||
pdata->irq = NO_IRQ;
|
pdata->irq = NO_IRQ;
|
||||||
|
|
|
@ -74,7 +74,7 @@ static int system_mmc_id;
|
||||||
|
|
||||||
static u32 pasemi_edac_get_error_info(struct mem_ctl_info *mci)
|
static u32 pasemi_edac_get_error_info(struct mem_ctl_info *mci)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev = to_pci_dev(mci->dev);
|
struct pci_dev *pdev = to_pci_dev(mci->pdev);
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
pci_read_config_dword(pdev, MCDEBUG_ERRSTA,
|
pci_read_config_dword(pdev, MCDEBUG_ERRSTA,
|
||||||
|
@ -95,7 +95,7 @@ static u32 pasemi_edac_get_error_info(struct mem_ctl_info *mci)
|
||||||
|
|
||||||
static void pasemi_edac_process_error_info(struct mem_ctl_info *mci, u32 errsta)
|
static void pasemi_edac_process_error_info(struct mem_ctl_info *mci, u32 errsta)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev = to_pci_dev(mci->dev);
|
struct pci_dev *pdev = to_pci_dev(mci->pdev);
|
||||||
u32 errlog1a;
|
u32 errlog1a;
|
||||||
u32 cs;
|
u32 cs;
|
||||||
|
|
||||||
|
@ -225,7 +225,7 @@ static int __devinit pasemi_edac_probe(struct pci_dev *pdev,
|
||||||
MCCFG_ERRCOR_ECC_GEN_EN |
|
MCCFG_ERRCOR_ECC_GEN_EN |
|
||||||
MCCFG_ERRCOR_ECC_CRR_EN;
|
MCCFG_ERRCOR_ECC_CRR_EN;
|
||||||
|
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_DDR | MEM_FLAG_RDDR;
|
mci->mtype_cap = MEM_FLAG_DDR | MEM_FLAG_RDDR;
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
||||||
mci->edac_cap = (errcor & MCCFG_ERRCOR_ECC_GEN_EN) ?
|
mci->edac_cap = (errcor & MCCFG_ERRCOR_ECC_GEN_EN) ?
|
||||||
|
|
|
@ -1027,9 +1027,9 @@ ppc4xx_edac_mc_init(struct mem_ctl_info *mci,
|
||||||
|
|
||||||
/* Initial driver pointers and private data */
|
/* Initial driver pointers and private data */
|
||||||
|
|
||||||
mci->dev = &op->dev;
|
mci->pdev = &op->dev;
|
||||||
|
|
||||||
dev_set_drvdata(mci->dev, mci);
|
dev_set_drvdata(mci->pdev, mci);
|
||||||
|
|
||||||
pdata = mci->pvt_info;
|
pdata = mci->pvt_info;
|
||||||
|
|
||||||
|
@ -1334,7 +1334,7 @@ static int __devinit ppc4xx_edac_probe(struct platform_device *op)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail1:
|
fail1:
|
||||||
edac_mc_del_mc(mci->dev);
|
edac_mc_del_mc(mci->pdev);
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
edac_mc_free(mci);
|
edac_mc_free(mci);
|
||||||
|
@ -1368,7 +1368,7 @@ ppc4xx_edac_remove(struct platform_device *op)
|
||||||
|
|
||||||
dcr_unmap(pdata->dcr_host, SDRAM_DCR_RESOURCE_LEN);
|
dcr_unmap(pdata->dcr_host, SDRAM_DCR_RESOURCE_LEN);
|
||||||
|
|
||||||
edac_mc_del_mc(mci->dev);
|
edac_mc_del_mc(mci->pdev);
|
||||||
edac_mc_free(mci);
|
edac_mc_free(mci);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -140,7 +140,7 @@ static void r82600_get_error_info(struct mem_ctl_info *mci,
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
pci_read_config_dword(pdev, R82600_EAP, &info->eapr);
|
pci_read_config_dword(pdev, R82600_EAP, &info->eapr);
|
||||||
|
|
||||||
if (info->eapr & BIT(0))
|
if (info->eapr & BIT(0))
|
||||||
|
@ -296,7 +296,7 @@ static int r82600_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
debugf0("%s(): mci = %p\n", __func__, mci);
|
debugf0("%s(): mci = %p\n", __func__, mci);
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_RDDR | MEM_FLAG_DDR;
|
mci->mtype_cap = MEM_FLAG_RDDR | MEM_FLAG_DDR;
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
|
||||||
/* FIXME try to work out if the chip leads have been used for COM2
|
/* FIXME try to work out if the chip leads have been used for COM2
|
||||||
|
|
|
@ -1607,7 +1607,7 @@ static void sbridge_unregister_mci(struct sbridge_dev *sbridge_dev)
|
||||||
mce_unregister_decode_chain(&sbridge_mce_dec);
|
mce_unregister_decode_chain(&sbridge_mce_dec);
|
||||||
|
|
||||||
/* Remove MC sysfs nodes */
|
/* Remove MC sysfs nodes */
|
||||||
edac_mc_del_mc(mci->dev);
|
edac_mc_del_mc(mci->pdev);
|
||||||
|
|
||||||
debugf1("%s: free mci struct\n", mci->ctl_name);
|
debugf1("%s: free mci struct\n", mci->ctl_name);
|
||||||
kfree(mci->ctl_name);
|
kfree(mci->ctl_name);
|
||||||
|
@ -1672,7 +1672,7 @@ static int sbridge_register_mci(struct sbridge_dev *sbridge_dev)
|
||||||
get_memory_layout(mci);
|
get_memory_layout(mci);
|
||||||
|
|
||||||
/* record ptr to the generic device */
|
/* record ptr to the generic device */
|
||||||
mci->dev = &sbridge_dev->pdev[0]->dev;
|
mci->pdev = &sbridge_dev->pdev[0]->dev;
|
||||||
|
|
||||||
/* add this new MC control structure to EDAC's list of MCs */
|
/* add this new MC control structure to EDAC's list of MCs */
|
||||||
if (unlikely(edac_mc_add_mc(mci))) {
|
if (unlikely(edac_mc_add_mc(mci))) {
|
||||||
|
|
|
@ -69,7 +69,7 @@ static void tile_edac_check(struct mem_ctl_info *mci)
|
||||||
|
|
||||||
/* Check if the current error count is different from the saved one. */
|
/* Check if the current error count is different from the saved one. */
|
||||||
if (mem_error.sbe_count != priv->ce_count) {
|
if (mem_error.sbe_count != priv->ce_count) {
|
||||||
dev_dbg(mci->dev, "ECC CE err on node %d\n", priv->node);
|
dev_dbg(mci->pdev, "ECC CE err on node %d\n", priv->node);
|
||||||
priv->ce_count = mem_error.sbe_count;
|
priv->ce_count = mem_error.sbe_count;
|
||||||
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
|
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
|
@ -149,7 +149,7 @@ static int __devinit tile_edac_mc_probe(struct platform_device *pdev)
|
||||||
priv->node = pdev->id;
|
priv->node = pdev->id;
|
||||||
priv->hv_devhdl = hv_devhdl;
|
priv->hv_devhdl = hv_devhdl;
|
||||||
|
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_DDR2;
|
mci->mtype_cap = MEM_FLAG_DDR2;
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
|
||||||
|
|
||||||
|
|
|
@ -151,7 +151,7 @@ static void x38_clear_error_info(struct mem_ctl_info *mci)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clear any error bits.
|
* Clear any error bits.
|
||||||
|
@ -172,7 +172,7 @@ static void x38_get_and_clear_error_info(struct mem_ctl_info *mci,
|
||||||
struct pci_dev *pdev;
|
struct pci_dev *pdev;
|
||||||
void __iomem *window = mci->pvt_info;
|
void __iomem *window = mci->pvt_info;
|
||||||
|
|
||||||
pdev = to_pci_dev(mci->dev);
|
pdev = to_pci_dev(mci->pdev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a mess because there is no atomic way to read all the
|
* This is a mess because there is no atomic way to read all the
|
||||||
|
@ -354,7 +354,7 @@ static int x38_probe1(struct pci_dev *pdev, int dev_idx)
|
||||||
|
|
||||||
debugf3("MC: %s(): init mci\n", __func__);
|
debugf3("MC: %s(): init mci\n", __func__);
|
||||||
|
|
||||||
mci->dev = &pdev->dev;
|
mci->pdev = &pdev->dev;
|
||||||
mci->mtype_cap = MEM_FLAG_DDR2;
|
mci->mtype_cap = MEM_FLAG_DDR2;
|
||||||
|
|
||||||
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
|
mci->edac_ctl_cap = EDAC_FLAG_SECDED;
|
||||||
|
|
|
@ -567,7 +567,7 @@ struct mem_ctl_info {
|
||||||
* unique. dev pointer should be sufficiently unique, but
|
* unique. dev pointer should be sufficiently unique, but
|
||||||
* BUS:SLOT.FUNC numbers may not be unique.
|
* BUS:SLOT.FUNC numbers may not be unique.
|
||||||
*/
|
*/
|
||||||
struct device *dev;
|
struct device *pdev;
|
||||||
const char *mod_name;
|
const char *mod_name;
|
||||||
const char *mod_ver;
|
const char *mod_ver;
|
||||||
const char *ctl_name;
|
const char *ctl_name;
|
||||||
|
|
Loading…
Reference in New Issue