Lines Matching refs:mci
41 #define e7xxx_mc_printk(mci, level, fmt, arg...) \ argument
42 edac_mc_chipset_printk(mci, level, "e7xxx", fmt, ##arg)
183 static unsigned long ctl_page_to_phys(struct mem_ctl_info *mci, in ctl_page_to_phys() argument
187 struct e7xxx_pvt *pvt = (struct e7xxx_pvt *)mci->pvt_info; in ctl_page_to_phys()
204 static void process_ce(struct mem_ctl_info *mci, struct e7xxx_error_info *info) in process_ce() argument
219 row = edac_mc_find_csrow_by_page(mci, page); in process_ce()
222 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, page, 0, syndrome, in process_ce()
226 static void process_ce_no_info(struct mem_ctl_info *mci) in process_ce_no_info() argument
229 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0, -1, -1, -1, in process_ce_no_info()
233 static void process_ue(struct mem_ctl_info *mci, struct e7xxx_error_info *info) in process_ue() argument
243 row = edac_mc_find_csrow_by_page(mci, block_page); in process_ue()
245 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, block_page, 0, 0, in process_ue()
249 static void process_ue_no_info(struct mem_ctl_info *mci) in process_ue_no_info() argument
253 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0, -1, -1, -1, in process_ue_no_info()
257 static void e7xxx_get_error_info(struct mem_ctl_info *mci, in e7xxx_get_error_info() argument
262 pvt = (struct e7xxx_pvt *)mci->pvt_info; in e7xxx_get_error_info()
285 static int e7xxx_process_error_info(struct mem_ctl_info *mci, in e7xxx_process_error_info() argument
298 process_ce(mci, info); in e7xxx_process_error_info()
305 process_ue(mci, info); in e7xxx_process_error_info()
313 process_ce_no_info(mci); in e7xxx_process_error_info()
315 process_ce(mci, info); in e7xxx_process_error_info()
324 process_ue_no_info(mci); in e7xxx_process_error_info()
326 process_ue(mci, info); in e7xxx_process_error_info()
333 static void e7xxx_check(struct mem_ctl_info *mci) in e7xxx_check() argument
338 e7xxx_get_error_info(mci, &info); in e7xxx_check()
339 e7xxx_process_error_info(mci, &info, 1); in e7xxx_check()
355 static void e7xxx_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev, in e7xxx_init_csrows() argument
378 for (index = 0; index < mci->nr_csrows; index++) { in e7xxx_init_csrows()
381 csrow = mci->csrows[index]; in e7xxx_init_csrows()
402 mci->edac_cap |= EDAC_FLAG_S4ECD4ED; in e7xxx_init_csrows()
405 mci->edac_cap |= EDAC_FLAG_SECDED; in e7xxx_init_csrows()
425 struct mem_ctl_info *mci = NULL; in e7xxx_probe1() local
451 mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt)); in e7xxx_probe1()
452 if (mci == NULL) in e7xxx_probe1()
456 mci->mtype_cap = MEM_FLAG_RDDR; in e7xxx_probe1()
457 mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED | in e7xxx_probe1()
460 mci->mod_name = EDAC_MOD_STR; in e7xxx_probe1()
461 mci->mod_ver = E7XXX_REVISION; in e7xxx_probe1()
462 mci->pdev = &pdev->dev; in e7xxx_probe1()
464 pvt = (struct e7xxx_pvt *)mci->pvt_info; in e7xxx_probe1()
477 mci->ctl_name = pvt->dev_info->ctl_name; in e7xxx_probe1()
478 mci->dev_name = pci_name(pdev); in e7xxx_probe1()
479 mci->edac_check = e7xxx_check; in e7xxx_probe1()
480 mci->ctl_page_to_phys = ctl_page_to_phys; in e7xxx_probe1()
481 e7xxx_init_csrows(mci, pdev, dev_idx, drc); in e7xxx_probe1()
482 mci->edac_cap |= EDAC_FLAG_NONE; in e7xxx_probe1()
496 e7xxx_get_error_info(mci, &discard); in e7xxx_probe1()
501 if (edac_mc_add_mc(mci)) { in e7xxx_probe1()
525 edac_mc_free(mci); in e7xxx_probe1()
542 struct mem_ctl_info *mci; in e7xxx_remove_one() local
550 if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL) in e7xxx_remove_one()
553 pvt = (struct e7xxx_pvt *)mci->pvt_info; in e7xxx_remove_one()
555 edac_mc_free(mci); in e7xxx_remove_one()