Lines Matching refs:mci

129 #define ppc4xx_edac_mc_printk(level, mci, fmt, arg...) \  argument
130 edac_mc_chipset_printk(mci, level, "PPC4xx", fmt, ##arg)
316 ppc4xx_edac_generate_bank_message(const struct mem_ctl_info *mci, in ppc4xx_edac_generate_bank_message() argument
324 n = snprintf(buffer, size, "%s: Banks: ", mci->dev_name); in ppc4xx_edac_generate_bank_message()
333 for (rows = 0, row = 0; row < mci->nr_csrows; row++) { in ppc4xx_edac_generate_bank_message()
378 ppc4xx_edac_generate_checkbit_message(const struct mem_ctl_info *mci, in ppc4xx_edac_generate_checkbit_message() argument
383 const struct ppc4xx_edac_pdata *pdata = mci->pvt_info; in ppc4xx_edac_generate_checkbit_message()
436 ppc4xx_edac_generate_lane_message(const struct mem_ctl_info *mci, in ppc4xx_edac_generate_lane_message() argument
501 ppc4xx_edac_generate_ecc_message(const struct mem_ctl_info *mci, in ppc4xx_edac_generate_ecc_message() argument
508 n = ppc4xx_edac_generate_bank_message(mci, status, buffer, size); in ppc4xx_edac_generate_ecc_message()
517 n = ppc4xx_edac_generate_checkbit_message(mci, status, buffer, size); in ppc4xx_edac_generate_ecc_message()
526 n = ppc4xx_edac_generate_lane_message(mci, status, buffer, size); in ppc4xx_edac_generate_ecc_message()
557 ppc4xx_edac_generate_plb_message(const struct mem_ctl_info *mci, in ppc4xx_edac_generate_plb_message() argument
598 ppc4xx_edac_generate_message(const struct mem_ctl_info *mci, in ppc4xx_edac_generate_message() argument
608 n = ppc4xx_edac_generate_ecc_message(mci, status, buffer, size); in ppc4xx_edac_generate_message()
616 ppc4xx_edac_generate_plb_message(mci, status, buffer, size); in ppc4xx_edac_generate_message()
631 ppc4xx_ecc_dump_status(const struct mem_ctl_info *mci, in ppc4xx_ecc_dump_status() argument
636 ppc4xx_edac_generate_message(mci, status, message, sizeof(message)); in ppc4xx_ecc_dump_status()
638 ppc4xx_edac_mc_printk(KERN_INFO, mci, in ppc4xx_ecc_dump_status()
668 ppc4xx_ecc_get_status(const struct mem_ctl_info *mci, in ppc4xx_ecc_get_status() argument
671 const struct ppc4xx_edac_pdata *pdata = mci->pvt_info; in ppc4xx_ecc_get_status()
693 ppc4xx_ecc_clear_status(const struct mem_ctl_info *mci, in ppc4xx_ecc_clear_status() argument
696 const struct ppc4xx_edac_pdata *pdata = mci->pvt_info; in ppc4xx_ecc_clear_status()
720 ppc4xx_edac_handle_ce(struct mem_ctl_info *mci, in ppc4xx_edac_handle_ce() argument
726 ppc4xx_edac_generate_message(mci, status, message, sizeof(message)); in ppc4xx_edac_handle_ce()
728 for (row = 0; row < mci->nr_csrows; row++) in ppc4xx_edac_handle_ce()
730 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, in ppc4xx_edac_handle_ce()
748 ppc4xx_edac_handle_ue(struct mem_ctl_info *mci, in ppc4xx_edac_handle_ue() argument
757 ppc4xx_edac_generate_message(mci, status, message, sizeof(message)); in ppc4xx_edac_handle_ue()
759 for (row = 0; row < mci->nr_csrows; row++) in ppc4xx_edac_handle_ue()
761 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, in ppc4xx_edac_handle_ue()
778 ppc4xx_edac_check(struct mem_ctl_info *mci) in ppc4xx_edac_check() argument
785 ppc4xx_ecc_get_status(mci, &status); in ppc4xx_edac_check()
789 ppc4xx_ecc_dump_status(mci, &status); in ppc4xx_edac_check()
793 ppc4xx_edac_handle_ue(mci, &status); in ppc4xx_edac_check()
796 ppc4xx_edac_handle_ce(mci, &status); in ppc4xx_edac_check()
798 ppc4xx_ecc_clear_status(mci, &status); in ppc4xx_edac_check()
817 struct mem_ctl_info *mci = dev_id; in ppc4xx_edac_isr() local
819 ppc4xx_edac_check(mci); in ppc4xx_edac_isr()
894 static int ppc4xx_edac_init_csrows(struct mem_ctl_info *mci, u32 mcopt1) in ppc4xx_edac_init_csrows() argument
896 const struct ppc4xx_edac_pdata *pdata = mci->pvt_info; in ppc4xx_edac_init_csrows()
911 if (mci->edac_cap & EDAC_FLAG_SECDED) in ppc4xx_edac_init_csrows()
913 else if (mci->edac_cap & EDAC_FLAG_EC) in ppc4xx_edac_init_csrows()
923 for (row = 0; row < mci->nr_csrows; row++) { in ppc4xx_edac_init_csrows()
924 struct csrow_info *csi = mci->csrows[row]; in ppc4xx_edac_init_csrows()
956 ppc4xx_edac_mc_printk(KERN_ERR, mci, in ppc4xx_edac_init_csrows()
1011 static int ppc4xx_edac_mc_init(struct mem_ctl_info *mci, in ppc4xx_edac_mc_init() argument
1025 mci->pdev = &op->dev; in ppc4xx_edac_mc_init()
1027 dev_set_drvdata(mci->pdev, mci); in ppc4xx_edac_mc_init()
1029 pdata = mci->pvt_info; in ppc4xx_edac_mc_init()
1037 mci->mtype_cap = (MEM_FLAG_DDR | MEM_FLAG_RDDR | in ppc4xx_edac_mc_init()
1040 mci->edac_ctl_cap = (EDAC_FLAG_NONE | in ppc4xx_edac_mc_init()
1044 mci->scrub_cap = SCRUB_NONE; in ppc4xx_edac_mc_init()
1045 mci->scrub_mode = SCRUB_NONE; in ppc4xx_edac_mc_init()
1054 mci->edac_cap = EDAC_FLAG_EC; in ppc4xx_edac_mc_init()
1057 mci->edac_cap = (EDAC_FLAG_EC | EDAC_FLAG_SECDED); in ppc4xx_edac_mc_init()
1058 mci->scrub_mode = SCRUB_SW_SRC; in ppc4xx_edac_mc_init()
1061 mci->edac_cap = EDAC_FLAG_NONE; in ppc4xx_edac_mc_init()
1067 mci->mod_name = PPC4XX_EDAC_MODULE_NAME; in ppc4xx_edac_mc_init()
1068 mci->mod_ver = PPC4XX_EDAC_MODULE_REVISION; in ppc4xx_edac_mc_init()
1069 mci->ctl_name = ppc4xx_edac_match->compatible, in ppc4xx_edac_mc_init()
1070 mci->dev_name = np->full_name; in ppc4xx_edac_mc_init()
1074 mci->edac_check = ppc4xx_edac_check; in ppc4xx_edac_mc_init()
1075 mci->ctl_page_to_phys = NULL; in ppc4xx_edac_mc_init()
1079 status = ppc4xx_edac_init_csrows(mci, mcopt1); in ppc4xx_edac_mc_init()
1082 ppc4xx_edac_mc_printk(KERN_ERR, mci, in ppc4xx_edac_mc_init()
1104 struct mem_ctl_info *mci) in ppc4xx_edac_register_irq() argument
1108 struct ppc4xx_edac_pdata *pdata = mci->pvt_info; in ppc4xx_edac_register_irq()
1115 ppc4xx_edac_mc_printk(KERN_ERR, mci, in ppc4xx_edac_register_irq()
1125 mci); in ppc4xx_edac_register_irq()
1128 ppc4xx_edac_mc_printk(KERN_ERR, mci, in ppc4xx_edac_register_irq()
1139 mci); in ppc4xx_edac_register_irq()
1142 ppc4xx_edac_mc_printk(KERN_ERR, mci, in ppc4xx_edac_register_irq()
1149 ppc4xx_edac_mc_printk(KERN_INFO, mci, "ECCDED irq is %d\n", ded_irq); in ppc4xx_edac_register_irq()
1150 ppc4xx_edac_mc_printk(KERN_INFO, mci, "ECCSEC irq is %d\n", sec_irq); in ppc4xx_edac_register_irq()
1158 free_irq(sec_irq, mci); in ppc4xx_edac_register_irq()
1161 free_irq(ded_irq, mci); in ppc4xx_edac_register_irq()
1236 struct mem_ctl_info *mci = NULL; in ppc4xx_edac_probe() local
1289 mci = edac_mc_alloc(ppc4xx_edac_instance, ARRAY_SIZE(layers), layers, in ppc4xx_edac_probe()
1291 if (mci == NULL) { in ppc4xx_edac_probe()
1299 status = ppc4xx_edac_mc_init(mci, op, &dcr_host, mcopt1); in ppc4xx_edac_probe()
1302 ppc4xx_edac_mc_printk(KERN_ERR, mci, in ppc4xx_edac_probe()
1313 if (edac_mc_add_mc(mci)) { in ppc4xx_edac_probe()
1314 ppc4xx_edac_mc_printk(KERN_ERR, mci, in ppc4xx_edac_probe()
1321 status = ppc4xx_edac_register_irq(op, mci); in ppc4xx_edac_probe()
1332 edac_mc_del_mc(mci->pdev); in ppc4xx_edac_probe()
1335 edac_mc_free(mci); in ppc4xx_edac_probe()
1356 struct mem_ctl_info *mci = dev_get_drvdata(&op->dev); in ppc4xx_edac_remove() local
1357 struct ppc4xx_edac_pdata *pdata = mci->pvt_info; in ppc4xx_edac_remove()
1360 free_irq(pdata->irqs.sec, mci); in ppc4xx_edac_remove()
1361 free_irq(pdata->irqs.ded, mci); in ppc4xx_edac_remove()
1366 edac_mc_del_mc(mci->pdev); in ppc4xx_edac_remove()
1367 edac_mc_free(mci); in ppc4xx_edac_remove()