aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-davinci.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-04-29 22:47:50 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-04-29 22:47:50 -0400
commit56847d857cb0c3ee78c22ce776a26f88d9ffd4d4 (patch)
treea85bcf204a53e45d26f6a3984f16ddd525eef3e7 /drivers/rtc/rtc-davinci.c
parent191a712090bb8a10e6f129360eeed2d68f3d4c9a (diff)
parent8d564368a9a3197f43e56dadf4a18c5738849f94 (diff)
Merge branch 'akpm' (incoming from Andrew)
Merge second batch of fixes from Andrew Morton: - various misc bits - some printk updates - a new "SRAM" driver. - MAINTAINERS updates - the backlight driver queue - checkpatch updates - a few init/ changes - a huge number of drivers/rtc changes - fatfs updates - some lib/idr.c work - some renaming of the random driver interfaces * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (285 commits) net: rename random32 to prandom net/core: remove duplicate statements by do-while loop net/core: rename random32() to prandom_u32() net/netfilter: rename random32() to prandom_u32() net/sched: rename random32() to prandom_u32() net/sunrpc: rename random32() to prandom_u32() scsi: rename random32() to prandom_u32() lguest: rename random32() to prandom_u32() uwb: rename random32() to prandom_u32() video/uvesafb: rename random32() to prandom_u32() mmc: rename random32() to prandom_u32() drbd: rename random32() to prandom_u32() kernel/: rename random32() to prandom_u32() mm/: rename random32() to prandom_u32() lib/: rename random32() to prandom_u32() x86: rename random32() to prandom_u32() x86: pageattr-test: remove srandom32 call uuid: use prandom_bytes() raid6test: use prandom_bytes() sctp: convert sctp_assoc_set_id() to use idr_alloc_cyclic() ...
Diffstat (limited to 'drivers/rtc/rtc-davinci.c')
-rw-r--r--drivers/rtc/rtc-davinci.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/drivers/rtc/rtc-davinci.c b/drivers/rtc/rtc-davinci.c
index 56b73089bb29..a55048c3e26f 100644
--- a/drivers/rtc/rtc-davinci.c
+++ b/drivers/rtc/rtc-davinci.c
@@ -523,7 +523,7 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
523 523
524 platform_set_drvdata(pdev, davinci_rtc); 524 platform_set_drvdata(pdev, davinci_rtc);
525 525
526 davinci_rtc->rtc = rtc_device_register(pdev->name, &pdev->dev, 526 davinci_rtc->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
527 &davinci_rtc_ops, THIS_MODULE); 527 &davinci_rtc_ops, THIS_MODULE);
528 if (IS_ERR(davinci_rtc->rtc)) { 528 if (IS_ERR(davinci_rtc->rtc)) {
529 ret = PTR_ERR(davinci_rtc->rtc); 529 ret = PTR_ERR(davinci_rtc->rtc);
@@ -543,7 +543,7 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
543 0, "davinci_rtc", davinci_rtc); 543 0, "davinci_rtc", davinci_rtc);
544 if (ret < 0) { 544 if (ret < 0) {
545 dev_err(dev, "unable to register davinci RTC interrupt\n"); 545 dev_err(dev, "unable to register davinci RTC interrupt\n");
546 goto fail2; 546 goto fail1;
547 } 547 }
548 548
549 /* Enable interrupts */ 549 /* Enable interrupts */
@@ -557,14 +557,12 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
557 557
558 return 0; 558 return 0;
559 559
560fail2:
561 rtc_device_unregister(davinci_rtc->rtc);
562fail1: 560fail1:
563 platform_set_drvdata(pdev, NULL); 561 platform_set_drvdata(pdev, NULL);
564 return ret; 562 return ret;
565} 563}
566 564
567static int davinci_rtc_remove(struct platform_device *pdev) 565static int __exit davinci_rtc_remove(struct platform_device *pdev)
568{ 566{
569 struct davinci_rtc *davinci_rtc = platform_get_drvdata(pdev); 567 struct davinci_rtc *davinci_rtc = platform_get_drvdata(pdev);
570 568
@@ -572,8 +570,6 @@ static int davinci_rtc_remove(struct platform_device *pdev)
572 570
573 rtcif_write(davinci_rtc, 0, PRTCIF_INTEN); 571 rtcif_write(davinci_rtc, 0, PRTCIF_INTEN);
574 572
575 rtc_device_unregister(davinci_rtc->rtc);
576
577 platform_set_drvdata(pdev, NULL); 573 platform_set_drvdata(pdev, NULL);
578 574
579 return 0; 575 return 0;
@@ -581,24 +577,14 @@ static int davinci_rtc_remove(struct platform_device *pdev)
581 577
582static struct platform_driver davinci_rtc_driver = { 578static struct platform_driver davinci_rtc_driver = {
583 .probe = davinci_rtc_probe, 579 .probe = davinci_rtc_probe,
584 .remove = davinci_rtc_remove, 580 .remove = __exit_p(davinci_rtc_remove),
585 .driver = { 581 .driver = {
586 .name = "rtc_davinci", 582 .name = "rtc_davinci",
587 .owner = THIS_MODULE, 583 .owner = THIS_MODULE,
588 }, 584 },
589}; 585};
590 586
591static int __init rtc_init(void) 587module_platform_driver_probe(davinci_rtc_driver, davinci_rtc_probe);
592{
593 return platform_driver_probe(&davinci_rtc_driver, davinci_rtc_probe);
594}
595module_init(rtc_init);
596
597static void __exit rtc_exit(void)
598{
599 platform_driver_unregister(&davinci_rtc_driver);
600}
601module_exit(rtc_exit);
602 588
603MODULE_AUTHOR("Miguel Aguilar <miguel.aguilar@ridgerun.com>"); 589MODULE_AUTHOR("Miguel Aguilar <miguel.aguilar@ridgerun.com>");
604MODULE_DESCRIPTION("Texas Instruments DaVinci PRTC Driver"); 590MODULE_DESCRIPTION("Texas Instruments DaVinci PRTC Driver");