]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/rtc/rtc-lib.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / rtc / rtc-lib.c
index 773851f338b81df956913d57a80e198a40ffdb82..075f1708deae844499b8de25e2b0c523846b9299 100644 (file)
@@ -117,4 +117,32 @@ int rtc_tm_to_time(struct rtc_time *tm, unsigned long *time)
 }
 EXPORT_SYMBOL(rtc_tm_to_time);
 
+/*
+ * Convert rtc_time to ktime
+ */
+ktime_t rtc_tm_to_ktime(struct rtc_time tm)
+{
+       time_t time;
+       rtc_tm_to_time(&tm, &time);
+       return ktime_set(time, 0);
+}
+EXPORT_SYMBOL_GPL(rtc_tm_to_ktime);
+
+/*
+ * Convert ktime to rtc_time
+ */
+struct rtc_time rtc_ktime_to_tm(ktime_t kt)
+{
+       struct timespec ts;
+       struct rtc_time ret;
+
+       ts = ktime_to_timespec(kt);
+       /* Round up any ns */
+       if (ts.tv_nsec)
+               ts.tv_sec++;
+       rtc_time_to_tm(ts.tv_sec, &ret);
+       return ret;
+}
+EXPORT_SYMBOL_GPL(rtc_ktime_to_tm);
+
 MODULE_LICENSE("GPL");