Blame view
drivers/edac/layerscape_edac.c
1.61 KB
eeb3d68b6 EDAC, layerscape:... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* * Freescale Memory Controller kernel module * * Author: York Sun <york.sun@nxp.com> * * Copyright 2016 NXP Semiconductor * * Derived from mpc85xx_edac.c * Author: Dave Jiang <djiang@mvista.com> * * 2006-2007 (c) MontaVista Software, Inc. This file is licensed under * the terms of the GNU General Public License version 2. This program * is licensed "as is" without any warranty of any kind, whether express * or implied. */ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt |
78d88e8a3 edac: rename edac... |
18 |
#include "edac_module.h" |
eeb3d68b6 EDAC, layerscape:... |
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
#include "fsl_ddr_edac.h" static const struct of_device_id fsl_ddr_mc_err_of_match[] = { { .compatible = "fsl,qoriq-memory-controller", }, {}, }; MODULE_DEVICE_TABLE(of, fsl_ddr_mc_err_of_match); static struct platform_driver fsl_ddr_mc_err_driver = { .probe = fsl_mc_err_probe, .remove = fsl_mc_err_remove, .driver = { .name = "fsl_ddr_mc_err", .of_match_table = fsl_ddr_mc_err_of_match, }, }; static int __init fsl_ddr_mc_init(void) { int res; /* make sure error reporting method is sane */ switch (edac_op_state) { case EDAC_OPSTATE_POLL: case EDAC_OPSTATE_INT: break; default: edac_op_state = EDAC_OPSTATE_INT; break; } res = platform_driver_register(&fsl_ddr_mc_err_driver); if (res) { pr_err("MC fails to register "); return res; } return 0; } module_init(fsl_ddr_mc_init); static void __exit fsl_ddr_mc_exit(void) { platform_driver_unregister(&fsl_ddr_mc_err_driver); } module_exit(fsl_ddr_mc_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("NXP Semiconductor"); module_param(edac_op_state, int, 0444); MODULE_PARM_DESC(edac_op_state, "EDAC Error Reporting state: 0=Poll, 2=Interrupt"); |