Lines Matching refs:edev_ctl
253 dump_syn_reg(struct edac_device_ctl_info *edev_ctl, int err_type, u32 bank) in dump_syn_reg() argument
255 struct llcc_drv_data *drv = edev_ctl->dev->platform_data; in dump_syn_reg()
264 edac_device_handle_ce(edev_ctl, 0, bank, in dump_syn_reg()
268 edac_device_handle_ue(edev_ctl, 0, bank, in dump_syn_reg()
272 edac_device_handle_ce(edev_ctl, 0, bank, in dump_syn_reg()
276 edac_device_handle_ue(edev_ctl, 0, bank, in dump_syn_reg()
288 static irqreturn_t llcc_ecc_irq_handler(int irq, void *edev_ctl) in llcc_ecc_irq_handler() argument
290 struct edac_device_ctl_info *edac_dev_ctl = edev_ctl; in llcc_ecc_irq_handler()
304 ret = dump_syn_reg(edev_ctl, LLCC_DRAM_CE, i); in llcc_ecc_irq_handler()
308 ret = dump_syn_reg(edev_ctl, LLCC_DRAM_UE, i); in llcc_ecc_irq_handler()
319 ret = dump_syn_reg(edev_ctl, LLCC_TRAM_CE, i); in llcc_ecc_irq_handler()
323 ret = dump_syn_reg(edev_ctl, LLCC_TRAM_UE, i); in llcc_ecc_irq_handler()
332 static void llcc_ecc_check(struct edac_device_ctl_info *edev_ctl) in llcc_ecc_check() argument
334 llcc_ecc_irq_handler(0, edev_ctl); in llcc_ecc_check()
340 struct edac_device_ctl_info *edev_ctl; in qcom_llcc_edac_probe() local
352 edev_ctl = edac_device_alloc_ctl_info(0, "qcom-llcc", 1, "bank", in qcom_llcc_edac_probe()
356 if (!edev_ctl) in qcom_llcc_edac_probe()
359 edev_ctl->dev = dev; in qcom_llcc_edac_probe()
360 edev_ctl->mod_name = dev_name(dev); in qcom_llcc_edac_probe()
361 edev_ctl->dev_name = dev_name(dev); in qcom_llcc_edac_probe()
362 edev_ctl->ctl_name = "llcc"; in qcom_llcc_edac_probe()
363 edev_ctl->panic_on_ue = LLCC_ERP_PANIC_ON_UE; in qcom_llcc_edac_probe()
370 IRQF_TRIGGER_HIGH, "llcc_ecc", edev_ctl); in qcom_llcc_edac_probe()
378 edev_ctl->poll_msec = ECC_POLL_MSEC; in qcom_llcc_edac_probe()
379 edev_ctl->edac_check = llcc_ecc_check; in qcom_llcc_edac_probe()
383 rc = edac_device_add_device(edev_ctl); in qcom_llcc_edac_probe()
385 edac_device_free_ctl_info(edev_ctl); in qcom_llcc_edac_probe()
389 platform_set_drvdata(pdev, edev_ctl); in qcom_llcc_edac_probe()
396 struct edac_device_ctl_info *edev_ctl = dev_get_drvdata(&pdev->dev); in qcom_llcc_edac_remove() local
398 edac_device_del_device(edev_ctl->dev); in qcom_llcc_edac_remove()
399 edac_device_free_ctl_info(edev_ctl); in qcom_llcc_edac_remove()