summaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-mxc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc/rtc-mxc.c')
-rw-r--r--drivers/rtc/rtc-mxc.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
index 9a3895bc4f4d..ab87bacb8f88 100644
--- a/drivers/rtc/rtc-mxc.c
+++ b/drivers/rtc/rtc-mxc.c
@@ -436,22 +436,20 @@ static int mxc_rtc_probe(struct platform_device *pdev)
436 pdata->irq = -1; 436 pdata->irq = -1;
437 } 437 }
438 438
439 if (pdata->irq >=0) 439 if (pdata->irq >= 0)
440 device_init_wakeup(&pdev->dev, 1); 440 device_init_wakeup(&pdev->dev, 1);
441 441
442 rtc = devm_rtc_device_register(&pdev->dev, pdev->name, &mxc_rtc_ops, 442 rtc = devm_rtc_device_register(&pdev->dev, pdev->name, &mxc_rtc_ops,
443 THIS_MODULE); 443 THIS_MODULE);
444 if (IS_ERR(rtc)) { 444 if (IS_ERR(rtc)) {
445 ret = PTR_ERR(rtc); 445 ret = PTR_ERR(rtc);
446 goto exit_clr_drvdata; 446 goto exit_put_clk;
447 } 447 }
448 448
449 pdata->rtc = rtc; 449 pdata->rtc = rtc;
450 450
451 return 0; 451 return 0;
452 452
453exit_clr_drvdata:
454 platform_set_drvdata(pdev, NULL);
455exit_put_clk: 453exit_put_clk:
456 clk_disable_unprepare(pdata->clk); 454 clk_disable_unprepare(pdata->clk);
457 455
@@ -465,7 +463,6 @@ static int mxc_rtc_remove(struct platform_device *pdev)
465 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); 463 struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
466 464
467 clk_disable_unprepare(pdata->clk); 465 clk_disable_unprepare(pdata->clk);
468 platform_set_drvdata(pdev, NULL);
469 466
470 return 0; 467 return 0;
471} 468}