Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / include / asm-mips / rtc.h
index 31c0c23..82ad401 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * include/asm-mips/rtc.h 
+ * include/asm-mips/rtc.h
  *
  * (Really an interface for drivers/char/genrtc.c)
  *
@@ -15,6 +15,7 @@
 #ifdef __KERNEL__
 
 #include <linux/rtc.h>
+#include <asm/time.h>
 
 #define RTC_PIE 0x40            /* periodic interrupt enable */
 #define RTC_AIE 0x20            /* alarm interrupt enable */
 #define RTC_24H 0x02            /* 24 hour mode - else hours bit 7 means pm */
 #define RTC_DST_EN 0x01         /* auto switch DST - works f. USA only */
 
-unsigned int get_rtc_time(struct rtc_time *time);
-int set_rtc_time(struct rtc_time *time);
-unsigned int get_rtc_ss(void);
-int get_rtc_pll(struct rtc_pll_info *pll);
-int set_rtc_pll(struct rtc_pll_info *pll);
+static inline unsigned int get_rtc_time(struct rtc_time *time)
+{
+       unsigned long nowtime;
 
+       nowtime = rtc_mips_get_time();
+       to_tm(nowtime, time);
+       time->tm_year -= 1900;
+
+       return RTC_24H;
+}
+
+static inline int set_rtc_time(struct rtc_time *time)
+{
+       unsigned long nowtime;
+       int ret;
+
+       nowtime = mktime(time->tm_year+1900, time->tm_mon+1,
+                       time->tm_mday, time->tm_hour, time->tm_min,
+                       time->tm_sec);
+       ret = rtc_mips_set_time(nowtime);
+
+       return ret;
+}
+
+static inline unsigned int get_rtc_ss(void)
+{
+       struct rtc_time h;
+
+       get_rtc_time(&h);
+       return h.tm_sec;
+}
+
+static inline int get_rtc_pll(struct rtc_pll_info *pll)
+{
+       return -EINVAL;
+}
+
+static inline int set_rtc_pll(struct rtc_pll_info *pll)
+{
+       return -EINVAL;
+}
 #endif
 #endif