From: Xunlei Pang <[email protected]>

There're many sites need comparing the two rtc_time variants for many
rtc drivers, especially in the instances of rtc_class_ops::set_alarm().

So add this common helper function to make things easy.

Suggested-by: Arnd Bergmann <[email protected]>
Signed-off-by: Xunlei Pang <[email protected]>
---
 drivers/rtc/rtc-lib.c | 9 +++++++++
 include/linux/rtc.h   | 2 ++
 2 files changed, 11 insertions(+)

diff --git a/drivers/rtc/rtc-lib.c b/drivers/rtc/rtc-lib.c
index e6bfb9c..fdb94cc 100644
--- a/drivers/rtc/rtc-lib.c
+++ b/drivers/rtc/rtc-lib.c
@@ -124,6 +124,15 @@ time64_t rtc_tm_to_time64(struct rtc_time *tm)
 EXPORT_SYMBOL(rtc_tm_to_time64);
 
 /*
+ * rtc_tm_subtract - Return the difference in seconds.
+ */
+time64_t rtc_tm_subtract(struct rtc_time *minuend, struct rtc_time *subtrahend)
+{
+       return rtc_tm_to_time64(minuend) - rtc_tm_to_time64(subtrahend);
+}
+EXPORT_SYMBOL_GPL(rtc_tm_subtract);
+
+/*
  * Convert rtc_time to ktime
  */
 ktime_t rtc_tm_to_ktime(struct rtc_time tm)
diff --git a/include/linux/rtc.h b/include/linux/rtc.h
index 8dcf682..13e4138 100644
--- a/include/linux/rtc.h
+++ b/include/linux/rtc.h
@@ -21,6 +21,8 @@ extern int rtc_year_days(unsigned int day, unsigned int 
month, unsigned int year
 extern int rtc_valid_tm(struct rtc_time *tm);
 extern time64_t rtc_tm_to_time64(struct rtc_time *tm);
 extern void rtc_time64_to_tm(time64_t time, struct rtc_time *tm);
+extern time64_t rtc_tm_subtract(struct rtc_time *minuend,
+               struct rtc_time *subtrahend);
 ktime_t rtc_tm_to_ktime(struct rtc_time tm);
 struct rtc_time rtc_ktime_to_tm(ktime_t kt);
 
-- 
1.9.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to