Lines Matching refs:mci
150 static void x38_clear_error_info(struct mem_ctl_info *mci)
154 pdev = to_pci_dev(mci->pdev);
164 static void x38_get_and_clear_error_info(struct mem_ctl_info *mci,
168 void __iomem *window = mci->pvt_info;
170 pdev = to_pci_dev(mci->pdev);
200 x38_clear_error_info(mci);
203 static void x38_process_error_info(struct mem_ctl_info *mci,
213 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0,
222 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
228 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
237 static void x38_check(struct mem_ctl_info *mci)
241 x38_get_and_clear_error_info(mci, &info);
242 x38_process_error_info(mci, &info);
321 struct mem_ctl_info *mci = NULL;
344 mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 0);
345 if (!mci)
348 edac_dbg(3, "MC: init mci\n");
350 mci->pdev = &pdev->dev;
351 mci->mtype_cap = MEM_FLAG_DDR2;
353 mci->edac_ctl_cap = EDAC_FLAG_SECDED;
354 mci->edac_cap = EDAC_FLAG_SECDED;
356 mci->mod_name = EDAC_MOD_STR;
357 mci->ctl_name = x38_devs[dev_idx].ctl_name;
358 mci->dev_name = pci_name(pdev);
359 mci->edac_check = x38_check;
360 mci->ctl_page_to_phys = NULL;
361 mci->pvt_info = window;
371 for (i = 0; i < mci->nr_csrows; i++) {
373 struct csrow_info *csrow = mci->csrows[i];
393 x38_clear_error_info(mci);
396 if (edac_mc_add_mc(mci)) {
407 if (mci)
408 edac_mc_free(mci);
431 struct mem_ctl_info *mci;
435 mci = edac_mc_del_mc(&pdev->dev);
436 if (!mci)
439 iounmap(mci->pvt_info);
441 edac_mc_free(mci);