summaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-vr41xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc/rtc-vr41xx.c')
-rw-r--r--drivers/rtc/rtc-vr41xx.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/rtc/rtc-vr41xx.c b/drivers/rtc/rtc-vr41xx.c
index f91be04b9050..54e104e197e3 100644
--- a/drivers/rtc/rtc-vr41xx.c
+++ b/drivers/rtc/rtc-vr41xx.c
@@ -103,7 +103,7 @@ static inline unsigned long read_elapsed_second(void)
103 second_mid = rtc1_read(ETIMEMREG); 103 second_mid = rtc1_read(ETIMEMREG);
104 second_high = rtc1_read(ETIMEHREG); 104 second_high = rtc1_read(ETIMEHREG);
105 } while (first_low != second_low || first_mid != second_mid || 105 } while (first_low != second_low || first_mid != second_mid ||
106 first_high != second_high); 106 first_high != second_high);
107 107
108 return (first_high << 17) | (first_mid << 1) | (first_low >> 15); 108 return (first_high << 17) | (first_mid << 1) | (first_low >> 15);
109} 109}
@@ -154,7 +154,7 @@ static int vr41xx_rtc_set_time(struct device *dev, struct rtc_time *time)
154 154
155 epoch_sec = mktime(epoch, 1, 1, 0, 0, 0); 155 epoch_sec = mktime(epoch, 1, 1, 0, 0, 0);
156 current_sec = mktime(time->tm_year + 1900, time->tm_mon + 1, time->tm_mday, 156 current_sec = mktime(time->tm_year + 1900, time->tm_mon + 1, time->tm_mday,
157 time->tm_hour, time->tm_min, time->tm_sec); 157 time->tm_hour, time->tm_min, time->tm_sec);
158 158
159 write_elapsed_second(current_sec - epoch_sec); 159 write_elapsed_second(current_sec - epoch_sec);
160 160
@@ -186,7 +186,7 @@ static int vr41xx_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *wkalrm)
186 struct rtc_time *time = &wkalrm->time; 186 struct rtc_time *time = &wkalrm->time;
187 187
188 alarm_sec = mktime(time->tm_year + 1900, time->tm_mon + 1, time->tm_mday, 188 alarm_sec = mktime(time->tm_year + 1900, time->tm_mon + 1, time->tm_mday,
189 time->tm_hour, time->tm_min, time->tm_sec); 189 time->tm_hour, time->tm_min, time->tm_sec);
190 190
191 spin_lock_irq(&rtc_lock); 191 spin_lock_irq(&rtc_lock);
192 192
@@ -334,16 +334,18 @@ static int rtc_probe(struct platform_device *pdev)
334 } 334 }
335 335
336 retval = request_irq(aie_irq, elapsedtime_interrupt, 0, 336 retval = request_irq(aie_irq, elapsedtime_interrupt, 0,
337 "elapsed_time", pdev); 337 "elapsed_time", pdev);
338 if (retval < 0) 338 if (retval < 0)
339 goto err_device_unregister; 339 goto err_device_unregister;
340 340
341 pie_irq = platform_get_irq(pdev, 1); 341 pie_irq = platform_get_irq(pdev, 1);
342 if (pie_irq <= 0) 342 if (pie_irq <= 0) {
343 retval = -EBUSY;
343 goto err_free_irq; 344 goto err_free_irq;
345 }
344 346
345 retval = request_irq(pie_irq, rtclong1_interrupt, 0, 347 retval = request_irq(pie_irq, rtclong1_interrupt, 0,
346 "rtclong1", pdev); 348 "rtclong1", pdev);
347 if (retval < 0) 349 if (retval < 0)
348 goto err_free_irq; 350 goto err_free_irq;
349 351
@@ -381,8 +383,6 @@ static int rtc_remove(struct platform_device *pdev)
381 if (rtc) 383 if (rtc)
382 rtc_device_unregister(rtc); 384 rtc_device_unregister(rtc);
383 385
384 platform_set_drvdata(pdev, NULL);
385
386 free_irq(aie_irq, pdev); 386 free_irq(aie_irq, pdev);
387 free_irq(pie_irq, pdev); 387 free_irq(pie_irq, pdev);
388 if (rtc1_base) 388 if (rtc1_base)