diff options
-rw-r--r-- | drivers/rtc/rtc-omap.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c index ee20f2d36065..bcdf3c596214 100644 --- a/drivers/rtc/rtc-omap.c +++ b/drivers/rtc/rtc-omap.c | |||
@@ -234,22 +234,24 @@ static void bcd2tm(struct rtc_time *tm) | |||
234 | tm->tm_year = bcd2bin(tm->tm_year) + 100; | 234 | tm->tm_year = bcd2bin(tm->tm_year) + 100; |
235 | } | 235 | } |
236 | 236 | ||
237 | 237 | static void omap_rtc_read_time_raw(struct omap_rtc *rtc, struct rtc_time *tm) | |
238 | static int omap_rtc_read_time(struct device *dev, struct rtc_time *tm) | ||
239 | { | 238 | { |
240 | struct omap_rtc *rtc = dev_get_drvdata(dev); | ||
241 | |||
242 | /* we don't report wday/yday/isdst ... */ | ||
243 | local_irq_disable(); | ||
244 | rtc_wait_not_busy(rtc); | ||
245 | |||
246 | tm->tm_sec = rtc_read(rtc, OMAP_RTC_SECONDS_REG); | 239 | tm->tm_sec = rtc_read(rtc, OMAP_RTC_SECONDS_REG); |
247 | tm->tm_min = rtc_read(rtc, OMAP_RTC_MINUTES_REG); | 240 | tm->tm_min = rtc_read(rtc, OMAP_RTC_MINUTES_REG); |
248 | tm->tm_hour = rtc_read(rtc, OMAP_RTC_HOURS_REG); | 241 | tm->tm_hour = rtc_read(rtc, OMAP_RTC_HOURS_REG); |
249 | tm->tm_mday = rtc_read(rtc, OMAP_RTC_DAYS_REG); | 242 | tm->tm_mday = rtc_read(rtc, OMAP_RTC_DAYS_REG); |
250 | tm->tm_mon = rtc_read(rtc, OMAP_RTC_MONTHS_REG); | 243 | tm->tm_mon = rtc_read(rtc, OMAP_RTC_MONTHS_REG); |
251 | tm->tm_year = rtc_read(rtc, OMAP_RTC_YEARS_REG); | 244 | tm->tm_year = rtc_read(rtc, OMAP_RTC_YEARS_REG); |
245 | } | ||
246 | |||
247 | static int omap_rtc_read_time(struct device *dev, struct rtc_time *tm) | ||
248 | { | ||
249 | struct omap_rtc *rtc = dev_get_drvdata(dev); | ||
252 | 250 | ||
251 | /* we don't report wday/yday/isdst ... */ | ||
252 | local_irq_disable(); | ||
253 | rtc_wait_not_busy(rtc); | ||
254 | omap_rtc_read_time_raw(rtc, tm); | ||
253 | local_irq_enable(); | 255 | local_irq_enable(); |
254 | 256 | ||
255 | bcd2tm(tm); | 257 | bcd2tm(tm); |