Lines Matching refs:mci

205 static void synps_edac_handle_error(struct mem_ctl_info *mci,  in synps_edac_handle_error()  argument
208 struct synps_edac_priv *priv = mci->pvt_info; in synps_edac_handle_error()
216 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, in synps_edac_handle_error()
226 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, in synps_edac_handle_error()
240 static void synps_edac_check(struct mem_ctl_info *mci) in synps_edac_check() argument
242 struct synps_edac_priv *priv = mci->pvt_info; in synps_edac_check()
251 synps_edac_handle_error(mci, &priv->stat); in synps_edac_check()
360 static int synps_edac_init_csrows(struct mem_ctl_info *mci) in synps_edac_init_csrows() argument
364 struct synps_edac_priv *priv = mci->pvt_info; in synps_edac_init_csrows()
368 for (row = 0; row < mci->nr_csrows; row++) { in synps_edac_init_csrows()
369 csi = mci->csrows[row]; in synps_edac_init_csrows()
396 static int synps_edac_mc_init(struct mem_ctl_info *mci, in synps_edac_mc_init() argument
402 mci->pdev = &pdev->dev; in synps_edac_mc_init()
403 priv = mci->pvt_info; in synps_edac_mc_init()
404 platform_set_drvdata(pdev, mci); in synps_edac_mc_init()
407 mci->mtype_cap = MEM_FLAG_DDR3 | MEM_FLAG_DDR2; in synps_edac_mc_init()
408 mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED; in synps_edac_mc_init()
409 mci->scrub_cap = SCRUB_HW_SRC; in synps_edac_mc_init()
410 mci->scrub_mode = SCRUB_NONE; in synps_edac_mc_init()
412 mci->edac_cap = EDAC_FLAG_SECDED; in synps_edac_mc_init()
413 mci->ctl_name = "synps_ddr_controller"; in synps_edac_mc_init()
414 mci->dev_name = SYNPS_EDAC_MOD_STRING; in synps_edac_mc_init()
415 mci->mod_name = SYNPS_EDAC_MOD_VER; in synps_edac_mc_init()
416 mci->mod_ver = "1"; in synps_edac_mc_init()
419 mci->edac_check = synps_edac_check; in synps_edac_mc_init()
420 mci->ctl_page_to_phys = NULL; in synps_edac_mc_init()
422 status = synps_edac_init_csrows(mci); in synps_edac_mc_init()
438 struct mem_ctl_info *mci; in synps_edac_mc_probe() local
462 mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, in synps_edac_mc_probe()
464 if (!mci) { in synps_edac_mc_probe()
470 priv = mci->pvt_info; in synps_edac_mc_probe()
472 rc = synps_edac_mc_init(mci, pdev); in synps_edac_mc_probe()
479 rc = edac_mc_add_mc(mci); in synps_edac_mc_probe()
494 edac_mc_free(mci); in synps_edac_mc_probe()
507 struct mem_ctl_info *mci = platform_get_drvdata(pdev); in synps_edac_mc_remove() local
510 edac_mc_free(mci); in synps_edac_mc_remove()