ARM: 7413/1: move read_{boot,persistent}_clock to the architecture level
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / kernel / time.c
index fe31b22f18fdd8a2bc3a8553626ba0903c4d8d13..af2afb019672afdb5d3654f12c799f69799a1dbc 100644 (file)
@@ -110,6 +110,42 @@ void timer_tick(void)
 }
 #endif
 
+static void dummy_clock_access(struct timespec *ts)
+{
+       ts->tv_sec = 0;
+       ts->tv_nsec = 0;
+}
+
+static clock_access_fn __read_persistent_clock = dummy_clock_access;
+static clock_access_fn __read_boot_clock = dummy_clock_access;;
+
+void read_persistent_clock(struct timespec *ts)
+{
+       __read_persistent_clock(ts);
+}
+
+void read_boot_clock(struct timespec *ts)
+{
+       __read_boot_clock(ts);
+}
+
+int __init register_persistent_clock(clock_access_fn read_boot,
+                                    clock_access_fn read_persistent)
+{
+       /* Only allow the clockaccess functions to be registered once */
+       if (__read_persistent_clock == dummy_clock_access &&
+           __read_boot_clock == dummy_clock_access) {
+               if (read_boot)
+                       __read_boot_clock = read_boot;
+               if (read_persistent)
+                       __read_persistent_clock = read_persistent;
+
+               return 0;
+       }
+
+       return -EINVAL;
+}
+
 #if defined(CONFIG_PM) && !defined(CONFIG_GENERIC_CLOCKEVENTS)
 static int timer_suspend(void)
 {