Lines Matching full:mci

104 static void handle_ce(struct mem_ctl_info *mci)  in handle_ce()  argument
106 struct priv_data *priv = mci->pvt_info; in handle_ce()
133 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, addr >> PAGE_SHIFT, in handle_ce()
137 static void handle_ue(struct mem_ctl_info *mci) in handle_ue() argument
139 struct priv_data *priv = mci->pvt_info; in handle_ue()
166 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, addr >> PAGE_SHIFT, in handle_ue()
173 struct mem_ctl_info *mci = dev_id; in edac_ecc_isr() local
176 pdata = ((struct priv_data *)mci->pvt_info)->pdata; in edac_ecc_isr()
179 handle_ce(mci); in edac_ecc_isr()
186 handle_ue(mci); in edac_ecc_isr()
202 struct mem_ctl_info *mci = to_mci(dev); in force_ecc_error() local
203 struct priv_data *priv = mci->pvt_info; in force_ecc_error()
288 static void setup_debugfs(struct mem_ctl_info *mci) in setup_debugfs() argument
290 struct priv_data *priv = mci->pvt_info; in setup_debugfs()
292 priv->debugfs = edac_debugfs_create_dir(mci->mod_name); in setup_debugfs()
300 &mci->dev, &force_ecc_error_fops); in setup_debugfs()
303 static int setup_irq(struct mem_ctl_info *mci, struct platform_device *pdev) in setup_irq() argument
308 pdata = ((struct priv_data *)mci->pvt_info)->pdata; in setup_irq()
316 dev_name(&pdev->dev), mci); in setup_irq()
344 struct mem_ctl_info *mci; in edac_probe() local
374 mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, in edac_probe()
376 if (!mci) in edac_probe()
379 mci->pdev = &pdev->dev; in edac_probe()
380 priv = mci->pvt_info; in edac_probe()
383 platform_set_drvdata(pdev, mci); in edac_probe()
385 mci->mtype_cap = MEM_FLAG_DDR4; in edac_probe()
386 mci->edac_ctl_cap = EDAC_FLAG_SECDED; in edac_probe()
387 mci->scrub_cap = SCRUB_FLAG_HW_SRC; in edac_probe()
388 mci->scrub_mode = SCRUB_HW_SRC; in edac_probe()
389 mci->edac_cap = EDAC_FLAG_SECDED; in edac_probe()
390 mci->ctl_name = "npcm_ddr_controller"; in edac_probe()
391 mci->dev_name = dev_name(&pdev->dev); in edac_probe()
392 mci->mod_name = EDAC_MOD_NAME; in edac_probe()
393 mci->ctl_page_to_phys = NULL; in edac_probe()
395 rc = setup_irq(mci, pdev); in edac_probe()
399 rc = edac_mc_add_mc(mci); in edac_probe()
404 setup_debugfs(mci); in edac_probe()
409 edac_mc_free(mci); in edac_probe()
415 struct mem_ctl_info *mci = platform_get_drvdata(pdev); in edac_remove() local
416 struct priv_data *priv = mci->pvt_info; in edac_remove()
424 edac_mc_free(mci); in edac_remove()