@@ -3768,6 +3768,7 @@ static struct low_ops umc_ops = {
.ecc_enabled = umc_ecc_enabled,
.determine_edac_cap = umc_determine_edac_cap,
.determine_edac_ctl_cap = umc_determine_edac_ctl_cap,
+ .setup_mci_misc_attrs = setup_mci_misc_attrs,
};
/* Use Family 16h versions for defaults and adjust as needed below. */
@@ -3783,6 +3784,7 @@ static struct low_ops dct_ops = {
.ecc_enabled = dct_ecc_enabled,
.determine_edac_cap = dct_determine_edac_cap,
.determine_edac_ctl_cap = dct_determine_edac_ctl_cap,
+ .setup_mci_misc_attrs = setup_mci_misc_attrs,
};
static int per_family_init(struct amd64_pvt *pvt)
@@ -4001,7 +4003,7 @@ static int init_one_instance(struct amd64_pvt *pvt)
mci->pvt_info = pvt;
mci->pdev = &pvt->F3->dev;
- setup_mci_misc_attrs(mci);
+ pvt->ops->setup_mci_misc_attrs(mci);
if (init_csrows(mci))
mci->edac_cap = EDAC_FLAG_NONE;
@@ -476,6 +476,7 @@ struct low_ops {
bool (*ecc_enabled)(struct amd64_pvt *pvt);
unsigned long (*determine_edac_cap)(struct amd64_pvt *pvt);
void (*determine_edac_ctl_cap)(struct mem_ctl_info *mci, struct amd64_pvt *pvt);
+ void (*setup_mci_misc_attrs)(struct mem_ctl_info *mci);
};
int __amd64_read_pci_cfg_dword(struct pci_dev *pdev, int offset,