Lines Matching refs:mci

63 static u32 pasemi_edac_get_error_info(struct mem_ctl_info *mci)
65 struct pci_dev *pdev = to_pci_dev(mci->pdev);
84 static void pasemi_edac_process_error_info(struct mem_ctl_info *mci, u32 errsta)
86 struct pci_dev *pdev = to_pci_dev(mci->pdev);
101 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
102 mci->csrows[cs]->first_page, 0, 0,
103 cs, 0, -1, mci->ctl_name, "");
108 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
109 mci->csrows[cs]->first_page, 0, 0,
110 cs, 0, -1, mci->ctl_name, "");
113 static void pasemi_edac_check(struct mem_ctl_info *mci)
117 errsta = pasemi_edac_get_error_info(mci);
119 pasemi_edac_process_error_info(mci, errsta);
122 static int pasemi_edac_init_csrows(struct mem_ctl_info *mci,
131 for (index = 0; index < mci->nr_csrows; index++) {
132 csrow = mci->csrows[index];
161 edac_mc_printk(mci, KERN_ERR,
182 struct mem_ctl_info *mci = NULL;
206 mci = edac_mc_alloc(system_mmc_id++, ARRAY_SIZE(layers), layers,
208 if (mci == NULL)
216 mci->pdev = &pdev->dev;
217 mci->mtype_cap = MEM_FLAG_DDR | MEM_FLAG_RDDR;
218 mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_EC | EDAC_FLAG_SECDED;
219 mci->edac_cap = (errcor & MCCFG_ERRCOR_ECC_GEN_EN) ?
223 mci->mod_name = MODULE_NAME;
224 mci->dev_name = pci_name(pdev);
225 mci->ctl_name = "pasemi,pwrficient-mc";
226 mci->edac_check = pasemi_edac_check;
227 mci->ctl_page_to_phys = NULL;
229 mci->scrub_cap = SCRUB_FLAG_HW_PROG | SCRUB_FLAG_HW_SRC;
230 mci->scrub_mode =
234 if (pasemi_edac_init_csrows(mci, pdev,
235 (mci->edac_cap & EDAC_FLAG_SECDED) ?
237 ((mci->edac_cap & EDAC_FLAG_EC) ?
244 pasemi_edac_get_error_info(mci);
246 if (edac_mc_add_mc(mci))
253 edac_mc_free(mci);
259 struct mem_ctl_info *mci = edac_mc_del_mc(&pdev->dev);
261 if (!mci)
264 edac_mc_free(mci);