Lines Matching defs:mci
192 static void i3000_get_error_info(struct mem_ctl_info *mci,
197 pdev = to_pci_dev(mci->dev);
232 static int i3000_process_error_info(struct mem_ctl_info *mci,
239 multi_chan = mci->csrows[0].nr_channels - 1;
248 edac_mc_handle_ce_no_info(mci, "UE overwrote CE");
256 row = edac_mc_find_csrow_by_page(mci, pfn);
259 edac_mc_handle_ue(mci, pfn, offset, row, "i3000 UE");
261 edac_mc_handle_ce(mci, pfn, offset, info->derrsyn, row,
267 static void i3000_check(struct mem_ctl_info *mci)
271 debugf1("MC%d: %s()\n", mci->mc_idx, __func__);
272 i3000_get_error_info(mci, &info);
273 i3000_process_error_info(mci, &info, 1);
308 struct mem_ctl_info *mci = NULL;
350 mci = edac_mc_alloc(0, I3000_RANKS / nr_channels, nr_channels, 0);
351 if (!mci)
354 debugf3("MC: %s(): init mci\n", __func__);
356 mci->dev = &pdev->dev;
357 mci->mtype_cap = MEM_FLAG_DDR2;
359 mci->edac_ctl_cap = EDAC_FLAG_SECDED;
360 mci->edac_cap = EDAC_FLAG_SECDED;
362 mci->mod_name = EDAC_MOD_STR;
363 mci->mod_ver = I3000_REVISION;
364 mci->ctl_name = i3000_devs[dev_idx].ctl_name;
365 mci->dev_name = pci_name(pdev);
366 mci->edac_check = i3000_check;
367 mci->ctl_page_to_phys = NULL;
378 for (last_cumul_size = i = 0; i < mci->nr_csrows; i++) {
381 struct csrow_info *csrow = &mci->csrows[i];
412 if (edac_mc_add_mc(mci)) {
433 if (mci)
434 edac_mc_free(mci);
459 struct mem_ctl_info *mci;
466 mci = edac_mc_del_mc(&pdev->dev);
467 if (!mci)
470 edac_mc_free(mci);