Using module_platform_driver() replaces module_init() and module_exit() and makes the code simpler. Remove '__init' annotation from the function 'at91wdt_probe' since the driver becomes hot-plug aware now. Signed-off-by: Wenyou Yang <wenyou.yang@xxxxxxxxx> Cc: wim@xxxxxxxxx Cc: linux-watchdog@xxxxxxxxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx --- drivers/watchdog/at91sam9_wdt.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c index 94be9d6..7c13dda 100644 --- a/drivers/watchdog/at91sam9_wdt.c +++ b/drivers/watchdog/at91sam9_wdt.c @@ -204,7 +204,7 @@ static struct watchdog_device at91wdt_wdd = { .ops = &at91wdt_ops, }; -static int __init at91wdt_probe(struct platform_device *pdev) +static int at91wdt_probe(struct platform_device *pdev) { struct at91wdt_drvdata *driver_data; struct resource *r; @@ -273,6 +273,7 @@ MODULE_DEVICE_TABLE(of, at91_wdt_dt_ids); #endif static struct platform_driver at91wdt_driver = { + .probe = at91wdt_probe, .remove = __exit_p(at91wdt_remove), .driver = { .name = "at91_wdt", @@ -281,18 +282,7 @@ static struct platform_driver at91wdt_driver = { }, }; -static int __init at91sam_wdt_init(void) -{ - return platform_driver_probe(&at91wdt_driver, at91wdt_probe); -} - -static void __exit at91sam_wdt_exit(void) -{ - platform_driver_unregister(&at91wdt_driver); -} - -module_init(at91sam_wdt_init); -module_exit(at91sam_wdt_exit); +module_platform_driver(at91wdt_driver); MODULE_AUTHOR("Renaud CERRATO <r.cerrato@xxxxxxxxxxxxxxxxxxx>"); MODULE_DESCRIPTION("Watchdog driver for Atmel AT91SAM9x processors"); -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html