Lines Matching refs:mci

36 #define i5000_mc_printk(mci, level, fmt, arg...) \  argument
37 edac_mc_chipset_printk(mci, level, "i5000", fmt, ##arg)
385 static void i5000_get_error_info(struct mem_ctl_info *mci, in i5000_get_error_info() argument
391 pvt = mci->pvt_info; in i5000_get_error_info()
460 static void i5000_process_fatal_error_info(struct mem_ctl_info *mci, in i5000_process_fatal_error_info() argument
528 edac_mc_handle_error(HW_EVENT_ERR_FATAL, mci, 1, 0, 0, 0, in i5000_process_fatal_error_info()
541 static void i5000_process_nonfatal_error_info(struct mem_ctl_info *mci, in i5000_process_nonfatal_error_info() argument
627 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0, in i5000_process_nonfatal_error_info()
681 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0, in i5000_process_nonfatal_error_info()
727 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0, in i5000_process_nonfatal_error_info()
737 static void i5000_process_error_info(struct mem_ctl_info *mci, in i5000_process_error_info() argument
742 i5000_process_fatal_error_info(mci, info, handle_errors); in i5000_process_error_info()
745 i5000_process_nonfatal_error_info(mci, info, handle_errors); in i5000_process_error_info()
754 static void i5000_clear_error(struct mem_ctl_info *mci) in i5000_clear_error() argument
758 i5000_get_error_info(mci, &info); in i5000_clear_error()
765 static void i5000_check_error(struct mem_ctl_info *mci) in i5000_check_error() argument
768 edac_dbg(4, "MC%d\n", mci->mc_idx); in i5000_check_error()
769 i5000_get_error_info(mci, &info); in i5000_check_error()
770 i5000_process_error_info(mci, &info, 1); in i5000_check_error()
779 static int i5000_get_devices(struct mem_ctl_info *mci, int dev_idx) in i5000_get_devices() argument
785 pvt = mci->pvt_info; in i5000_get_devices()
899 static void i5000_put_devices(struct mem_ctl_info *mci) in i5000_put_devices() argument
903 pvt = mci->pvt_info; in i5000_put_devices()
1131 static void i5000_get_mc_regs(struct mem_ctl_info *mci) in i5000_get_mc_regs() argument
1141 pvt = mci->pvt_info; in i5000_get_mc_regs()
1252 static int i5000_init_csrows(struct mem_ctl_info *mci) in i5000_init_csrows() argument
1263 pvt = mci->pvt_info; in i5000_init_csrows()
1285 dimm = EDAC_DIMM_PTR(mci->layers, mci->dimms, mci->n_layers, in i5000_init_csrows()
1315 static void i5000_enable_error_reporting(struct mem_ctl_info *mci) in i5000_enable_error_reporting() argument
1320 pvt = mci->pvt_info; in i5000_enable_error_reporting()
1364 struct mem_ctl_info *mci; in i5000_probe1() local
1408 mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt)); in i5000_probe1()
1409 if (mci == NULL) in i5000_probe1()
1412 edac_dbg(0, "MC: mci = %p\n", mci); in i5000_probe1()
1414 mci->pdev = &pdev->dev; /* record ptr to the generic device */ in i5000_probe1()
1416 pvt = mci->pvt_info; in i5000_probe1()
1422 if (i5000_get_devices(mci, dev_idx)) in i5000_probe1()
1426 i5000_get_mc_regs(mci); /* retrieve the hardware registers */ in i5000_probe1()
1428 mci->mc_idx = 0; in i5000_probe1()
1429 mci->mtype_cap = MEM_FLAG_FB_DDR2; in i5000_probe1()
1430 mci->edac_ctl_cap = EDAC_FLAG_NONE; in i5000_probe1()
1431 mci->edac_cap = EDAC_FLAG_NONE; in i5000_probe1()
1432 mci->mod_name = "i5000_edac.c"; in i5000_probe1()
1433 mci->mod_ver = I5000_REVISION; in i5000_probe1()
1434 mci->ctl_name = i5000_devs[dev_idx].ctl_name; in i5000_probe1()
1435 mci->dev_name = pci_name(pdev); in i5000_probe1()
1436 mci->ctl_page_to_phys = NULL; in i5000_probe1()
1439 mci->edac_check = i5000_check_error; in i5000_probe1()
1443 if (i5000_init_csrows(mci)) { in i5000_probe1()
1445 mci->edac_cap = EDAC_FLAG_NONE; /* no csrows found */ in i5000_probe1()
1448 i5000_enable_error_reporting(mci); in i5000_probe1()
1452 if (edac_mc_add_mc(mci)) { in i5000_probe1()
1460 i5000_clear_error(mci); in i5000_probe1()
1478 i5000_put_devices(mci); in i5000_probe1()
1481 edac_mc_free(mci); in i5000_probe1()
1513 struct mem_ctl_info *mci; in i5000_remove_one() local
1520 if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL) in i5000_remove_one()
1524 i5000_put_devices(mci); in i5000_remove_one()
1525 edac_mc_free(mci); in i5000_remove_one()