Lines Matching defs:mci
150 static void x38_clear_error_info(struct mem_ctl_info *mci)
154 pdev = to_pci_dev(mci->dev);
169 static void x38_get_and_clear_error_info(struct mem_ctl_info *mci,
173 void __iomem *window = mci->pvt_info;
175 pdev = to_pci_dev(mci->dev);
205 x38_clear_error_info(mci);
208 static void x38_process_error_info(struct mem_ctl_info *mci,
218 edac_mc_handle_ce_no_info(mci, "UE overwrote CE");
225 edac_mc_handle_ue(mci, 0, 0,
228 edac_mc_handle_ce(mci, 0, 0,
235 static void x38_check(struct mem_ctl_info *mci)
239 debugf1("MC%d: %s()\n", mci->mc_idx, __func__);
240 x38_get_and_clear_error_info(mci, &info);
241 x38_process_error_info(mci, &info);
321 struct mem_ctl_info *mci = NULL;
337 mci = edac_mc_alloc(0, X38_RANKS, x38_channel_num, 0);
338 if (!mci)
341 debugf3("MC: %s(): init mci\n", __func__);
343 mci->dev = &pdev->dev;
344 mci->mtype_cap = MEM_FLAG_DDR2;
346 mci->edac_ctl_cap = EDAC_FLAG_SECDED;
347 mci->edac_cap = EDAC_FLAG_SECDED;
349 mci->mod_name = EDAC_MOD_STR;
350 mci->mod_ver = X38_REVISION;
351 mci->ctl_name = x38_devs[dev_idx].ctl_name;
352 mci->dev_name = pci_name(pdev);
353 mci->edac_check = x38_check;
354 mci->ctl_page_to_phys = NULL;
355 mci->pvt_info = window;
366 for (i = 0; i < mci->nr_csrows; i++) {
368 struct csrow_info *csrow = &mci->csrows[i];
390 x38_clear_error_info(mci);
393 if (edac_mc_add_mc(mci)) {
404 if (mci)
405 edac_mc_free(mci);
429 struct mem_ctl_info *mci;
433 mci = edac_mc_del_mc(&pdev->dev);
434 if (!mci)
437 iounmap(mci->pvt_info);
439 edac_mc_free(mci);