aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/watchdog/geodewdt.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/watchdog/geodewdt.c b/drivers/watchdog/geodewdt.c
index 4a6ae84b42bc..4c43e3fa8bd2 100644
--- a/drivers/watchdog/geodewdt.c
+++ b/drivers/watchdog/geodewdt.c
@@ -215,7 +215,7 @@ static struct miscdevice geodewdt_miscdev = {
215 .fops = &geodewdt_fops, 215 .fops = &geodewdt_fops,
216}; 216};
217 217
218static int geodewdt_probe(struct platform_device *dev) 218static int __init geodewdt_probe(struct platform_device *dev)
219{ 219{
220 int ret; 220 int ret;
221 221
@@ -255,7 +255,6 @@ static void geodewdt_shutdown(struct platform_device *dev)
255} 255}
256 256
257static struct platform_driver geodewdt_driver = { 257static struct platform_driver geodewdt_driver = {
258 .probe = geodewdt_probe,
259 .remove = geodewdt_remove, 258 .remove = geodewdt_remove,
260 .shutdown = geodewdt_shutdown, 259 .shutdown = geodewdt_shutdown,
261 .driver = { 260 .driver = {
@@ -268,20 +267,18 @@ static int __init geodewdt_init(void)
268{ 267{
269 int ret; 268 int ret;
270 269
271 ret = platform_driver_register(&geodewdt_driver);
272 if (ret)
273 return ret;
274
275 geodewdt_platform_device = platform_device_register_simple(DRV_NAME, 270 geodewdt_platform_device = platform_device_register_simple(DRV_NAME,
276 -1, NULL, 0); 271 -1, NULL, 0);
277 if (IS_ERR(geodewdt_platform_device)) { 272 if (IS_ERR(geodewdt_platform_device))
278 ret = PTR_ERR(geodewdt_platform_device); 273 return PTR_ERR(geodewdt_platform_device);
274
275 ret = platform_driver_probe(&geodewdt_driver, geodewdt_probe);
276 if (ret)
279 goto err; 277 goto err;
280 }
281 278
282 return 0; 279 return 0;
283err: 280err:
284 platform_driver_unregister(&geodewdt_driver); 281 platform_device_unregister(geodewdt_platform_device);
285 return ret; 282 return ret;
286} 283}
287 284