Lines Matching refs:mci
40 #define e752x_mc_printk(mci, level, fmt, arg...) \ argument
41 edac_mc_chipset_printk(mci, level, "e752x", fmt, ##arg)
304 static unsigned long ctl_page_to_phys(struct mem_ctl_info *mci, in ctl_page_to_phys() argument
308 struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info; in ctl_page_to_phys()
327 static void do_process_ce(struct mem_ctl_info *mci, u16 error_one, in do_process_ce() argument
334 struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info; in do_process_ce()
362 e752x_mc_printk(mci, KERN_WARNING, in do_process_ce()
366 row = edac_mc_find_csrow_by_page(mci, page); in do_process_ce()
372 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, in do_process_ce()
378 static inline void process_ce(struct mem_ctl_info *mci, u16 error_one, in process_ce() argument
385 do_process_ce(mci, error_one, sec1_add, sec1_syndrome); in process_ce()
388 static void do_process_ue(struct mem_ctl_info *mci, u16 error_one, in do_process_ue() argument
393 struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info; in do_process_ue()
406 edac_mc_find_csrow_by_page(mci, block_page); in do_process_ue()
409 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, in do_process_ue()
425 edac_mc_find_csrow_by_page(mci, block_page); in do_process_ue()
428 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, in do_process_ue()
436 static inline void process_ue(struct mem_ctl_info *mci, u16 error_one, in process_ue() argument
443 do_process_ue(mci, error_one, ded_add, scrb_add); in process_ue()
446 static inline void process_ue_no_info_wr(struct mem_ctl_info *mci, in process_ue_no_info_wr() argument
455 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0, in process_ue_no_info_wr()
460 static void do_process_ded_retry(struct mem_ctl_info *mci, u16 error, in do_process_ded_retry() argument
465 struct e752x_pvt *pvt = (struct e752x_pvt *)mci->pvt_info; in do_process_ded_retry()
472 edac_mc_find_csrow_by_page(mci, page); in do_process_ded_retry()
474 e752x_mc_printk(mci, KERN_WARNING, in do_process_ded_retry()
479 static inline void process_ded_retry(struct mem_ctl_info *mci, u16 error, in process_ded_retry() argument
486 do_process_ded_retry(mci, error, retry_add); in process_ded_retry()
489 static inline void process_threshold_ce(struct mem_ctl_info *mci, u16 error, in process_threshold_ce() argument
495 e752x_mc_printk(mci, KERN_WARNING, "Memory threshold CE\n"); in process_threshold_ce()
790 static void e752x_check_dram(struct mem_ctl_info *mci, in e752x_check_dram() argument
801 process_ce(mci, error_one, info->dram_sec1_add, in e752x_check_dram()
805 process_ce(mci, error_next, info->dram_sec2_add, in e752x_check_dram()
809 process_ue_no_info_wr(mci, error_found, handle_error); in e752x_check_dram()
812 process_ue_no_info_wr(mci, error_found, handle_error); in e752x_check_dram()
815 process_ded_retry(mci, error_one, info->dram_retr_add, in e752x_check_dram()
819 process_ded_retry(mci, error_next, info->dram_retr_add, in e752x_check_dram()
823 process_threshold_ce(mci, error_one, error_found, handle_error); in e752x_check_dram()
826 process_threshold_ce(mci, error_next, error_found, in e752x_check_dram()
830 process_ue(mci, error_one, info->dram_ded_add, in e752x_check_dram()
834 process_ue(mci, error_next, info->dram_ded_add, in e752x_check_dram()
838 static void e752x_get_error_info(struct mem_ctl_info *mci, in e752x_get_error_info() argument
845 pvt = (struct e752x_pvt *)mci->pvt_info; in e752x_get_error_info()
945 static int e752x_process_error_info(struct mem_ctl_info *mci, in e752x_process_error_info() argument
975 e752x_check_dram(mci, info, &error_found, handle_errors); in e752x_process_error_info()
979 static void e752x_check(struct mem_ctl_info *mci) in e752x_check() argument
983 e752x_get_error_info(mci, &info); in e752x_check()
984 e752x_process_error_info(mci, &info, 1); in e752x_check()
988 static int set_sdram_scrub_rate(struct mem_ctl_info *mci, u32 new_bw) in set_sdram_scrub_rate() argument
991 struct e752x_pvt *pvt = (struct e752x_pvt *) mci->pvt_info; in set_sdram_scrub_rate()
1017 static int get_sdram_scrub_rate(struct mem_ctl_info *mci) in get_sdram_scrub_rate() argument
1020 struct e752x_pvt *pvt = (struct e752x_pvt *) mci->pvt_info; in get_sdram_scrub_rate()
1055 static inline int remap_csrow_index(struct mem_ctl_info *mci, int index) in remap_csrow_index() argument
1057 struct e752x_pvt *pvt = mci->pvt_info; in remap_csrow_index()
1065 static void e752x_init_csrows(struct mem_ctl_info *mci, struct pci_dev *pdev, in e752x_init_csrows() argument
1093 for (last_cumul_size = index = 0; index < mci->nr_csrows; index++) { in e752x_init_csrows()
1096 csrow = mci->csrows[remap_csrow_index(mci, index)]; in e752x_init_csrows()
1118 mci->edac_cap |= EDAC_FLAG_S4ECD4ED; in e752x_init_csrows()
1121 mci->edac_cap |= EDAC_FLAG_SECDED; in e752x_init_csrows()
1259 struct mem_ctl_info *mci; in e752x_probe1() local
1293 mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(*pvt)); in e752x_probe1()
1294 if (mci == NULL) in e752x_probe1()
1298 mci->mtype_cap = MEM_FLAG_RDDR; in e752x_probe1()
1300 mci->edac_ctl_cap = (dev_idx == I3100) ? EDAC_FLAG_SECDED : in e752x_probe1()
1303 mci->mod_name = EDAC_MOD_STR; in e752x_probe1()
1304 mci->pdev = &pdev->dev; in e752x_probe1()
1307 pvt = (struct e752x_pvt *)mci->pvt_info; in e752x_probe1()
1312 edac_mc_free(mci); in e752x_probe1()
1317 mci->ctl_name = pvt->dev_info->ctl_name; in e752x_probe1()
1318 mci->dev_name = pci_name(pdev); in e752x_probe1()
1319 mci->edac_check = e752x_check; in e752x_probe1()
1320 mci->ctl_page_to_phys = ctl_page_to_phys; in e752x_probe1()
1321 mci->set_sdram_scrub_rate = set_sdram_scrub_rate; in e752x_probe1()
1322 mci->get_sdram_scrub_rate = get_sdram_scrub_rate; in e752x_probe1()
1331 e752x_init_csrows(mci, pdev, ddrcsr); in e752x_probe1()
1335 mci->edac_cap = EDAC_FLAG_SECDED; /* the only mode supported */ in e752x_probe1()
1337 mci->edac_cap |= EDAC_FLAG_NONE; in e752x_probe1()
1354 if (edac_mc_add_mc(mci)) { in e752x_probe1()
1360 e752x_get_error_info(mci, &discard); /* clear other MCH errors */ in e752x_probe1()
1379 edac_mc_free(mci); in e752x_probe1()
1398 struct mem_ctl_info *mci; in e752x_remove_one() local
1406 if ((mci = edac_mc_del_mc(&pdev->dev)) == NULL) in e752x_remove_one()
1409 pvt = (struct e752x_pvt *)mci->pvt_info; in e752x_remove_one()
1412 edac_mc_free(mci); in e752x_remove_one()