diff options
Diffstat (limited to 'drivers/rtc/rtc-s3c.c')
-rw-r--r-- | drivers/rtc/rtc-s3c.c | 26 |
1 files changed, 2 insertions, 24 deletions
diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c index 9a79a24a7487..54b613053468 100644 --- a/drivers/rtc/rtc-s3c.c +++ b/drivers/rtc/rtc-s3c.c | |||
@@ -50,7 +50,7 @@ static irqreturn_t s3c_rtc_alarmirq(int irq, void *id) | |||
50 | { | 50 | { |
51 | struct rtc_device *rdev = id; | 51 | struct rtc_device *rdev = id; |
52 | 52 | ||
53 | rtc_update_irq(&rdev->class_dev, 1, RTC_AF | RTC_IRQF); | 53 | rtc_update_irq(rdev, 1, RTC_AF | RTC_IRQF); |
54 | return IRQ_HANDLED; | 54 | return IRQ_HANDLED; |
55 | } | 55 | } |
56 | 56 | ||
@@ -58,7 +58,7 @@ static irqreturn_t s3c_rtc_tickirq(int irq, void *id) | |||
58 | { | 58 | { |
59 | struct rtc_device *rdev = id; | 59 | struct rtc_device *rdev = id; |
60 | 60 | ||
61 | rtc_update_irq(&rdev->class_dev, tick_count++, RTC_PF | RTC_IRQF); | 61 | rtc_update_irq(rdev, tick_count++, RTC_PF | RTC_IRQF); |
62 | return IRQ_HANDLED; | 62 | return IRQ_HANDLED; |
63 | } | 63 | } |
64 | 64 | ||
@@ -548,37 +548,15 @@ static int ticnt_save; | |||
548 | 548 | ||
549 | static int s3c_rtc_suspend(struct platform_device *pdev, pm_message_t state) | 549 | static int s3c_rtc_suspend(struct platform_device *pdev, pm_message_t state) |
550 | { | 550 | { |
551 | struct rtc_time tm; | ||
552 | struct timespec time; | ||
553 | |||
554 | time.tv_nsec = 0; | ||
555 | |||
556 | /* save TICNT for anyone using periodic interrupts */ | 551 | /* save TICNT for anyone using periodic interrupts */ |
557 | |||
558 | ticnt_save = readb(s3c_rtc_base + S3C2410_TICNT); | 552 | ticnt_save = readb(s3c_rtc_base + S3C2410_TICNT); |
559 | |||
560 | /* calculate time delta for suspend */ | ||
561 | |||
562 | s3c_rtc_gettime(&pdev->dev, &tm); | ||
563 | rtc_tm_to_time(&tm, &time.tv_sec); | ||
564 | save_time_delta(&s3c_rtc_delta, &time); | ||
565 | s3c_rtc_enable(pdev, 0); | 553 | s3c_rtc_enable(pdev, 0); |
566 | |||
567 | return 0; | 554 | return 0; |
568 | } | 555 | } |
569 | 556 | ||
570 | static int s3c_rtc_resume(struct platform_device *pdev) | 557 | static int s3c_rtc_resume(struct platform_device *pdev) |
571 | { | 558 | { |
572 | struct rtc_time tm; | ||
573 | struct timespec time; | ||
574 | |||
575 | time.tv_nsec = 0; | ||
576 | |||
577 | s3c_rtc_enable(pdev, 1); | 559 | s3c_rtc_enable(pdev, 1); |
578 | s3c_rtc_gettime(&pdev->dev, &tm); | ||
579 | rtc_tm_to_time(&tm, &time.tv_sec); | ||
580 | restore_time_delta(&s3c_rtc_delta, &time); | ||
581 | |||
582 | writeb(ticnt_save, s3c_rtc_base + S3C2410_TICNT); | 560 | writeb(ticnt_save, s3c_rtc_base + S3C2410_TICNT); |
583 | return 0; | 561 | return 0; |
584 | } | 562 | } |