--- zzzz-none-000/linux-3.10.107/drivers/bus/omap_l3_smx.c 2017-06-27 09:49:32.000000000 +0000 +++ scorpion-7490-727/linux-3.10.107/drivers/bus/omap_l3_smx.c 2021-02-04 17:41:59.000000000 +0000 @@ -27,6 +27,10 @@ #include #include #include +#include +#include +#include + #include "omap_l3_smx.h" static inline u64 omap3_l3_readll(void __iomem *base, u16 reg) @@ -211,7 +215,17 @@ return ret; } -static int __init omap3_l3_probe(struct platform_device *pdev) +#if IS_BUILTIN(CONFIG_OF) +static const struct of_device_id omap3_l3_match[] = { + { + .compatible = "ti,omap3-l3-smx", + }, + { }, +}; +MODULE_DEVICE_TABLE(of, omap3_l3_match); +#endif + +static int omap3_l3_probe(struct platform_device *pdev) { struct omap3_l3 *l3; struct resource *res; @@ -237,18 +251,16 @@ } l3->debug_irq = platform_get_irq(pdev, 0); - ret = request_irq(l3->debug_irq, omap3_l3_app_irq, - IRQF_DISABLED | IRQF_TRIGGER_RISING, - "l3-debug-irq", l3); + ret = request_irq(l3->debug_irq, omap3_l3_app_irq, IRQF_TRIGGER_RISING, + "l3-debug-irq", l3); if (ret) { dev_err(&pdev->dev, "couldn't request debug irq\n"); goto err1; } l3->app_irq = platform_get_irq(pdev, 1); - ret = request_irq(l3->app_irq, omap3_l3_app_irq, - IRQF_DISABLED | IRQF_TRIGGER_RISING, - "l3-app-irq", l3); + ret = request_irq(l3->app_irq, omap3_l3_app_irq, IRQF_TRIGGER_RISING, + "l3-app-irq", l3); if (ret) { dev_err(&pdev->dev, "couldn't request app irq\n"); goto err2; @@ -265,7 +277,7 @@ return ret; } -static int __exit omap3_l3_remove(struct platform_device *pdev) +static int omap3_l3_remove(struct platform_device *pdev) { struct omap3_l3 *l3 = platform_get_drvdata(pdev); @@ -278,15 +290,17 @@ } static struct platform_driver omap3_l3_driver = { - .remove = __exit_p(omap3_l3_remove), + .probe = omap3_l3_probe, + .remove = omap3_l3_remove, .driver = { - .name = "omap_l3_smx", + .name = "omap_l3_smx", + .of_match_table = of_match_ptr(omap3_l3_match), }, }; static int __init omap3_l3_init(void) { - return platform_driver_probe(&omap3_l3_driver, omap3_l3_probe); + return platform_driver_register(&omap3_l3_driver); } postcore_initcall_sync(omap3_l3_init);