Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm
[pandora-kernel.git] / drivers / char / mmtimer.c
index e6d7562..33dc229 100644 (file)
@@ -53,6 +53,8 @@ MODULE_LICENSE("GPL");
 
 #define RTC_BITS 55 /* 55 bits for this implementation */
 
+static struct k_clock sgi_clock;
+
 extern unsigned long sn_rtc_cycles_per_second;
 
 #define RTC_COUNTER_ADDR        ((long *)LOCAL_MMR_ADDR(SH_RTC))
@@ -487,7 +489,7 @@ static int sgi_clock_get(clockid_t clockid, struct timespec *tp)
        return 0;
 };
 
-static int sgi_clock_set(clockid_t clockid, struct timespec *tp)
+static int sgi_clock_set(const clockid_t clockid, const struct timespec *tp)
 {
 
        u64 nsec;
@@ -763,15 +765,21 @@ static int sgi_timer_set(struct k_itimer *timr, int flags,
        return err;
 }
 
+static int sgi_clock_getres(const clockid_t which_clock, struct timespec *tp)
+{
+       tp->tv_sec = 0;
+       tp->tv_nsec = sgi_clock_period;
+       return 0;
+}
+
 static struct k_clock sgi_clock = {
-       .res = 0,
-       .clock_set = sgi_clock_set,
-       .clock_get = sgi_clock_get,
-       .timer_create = sgi_timer_create,
-       .nsleep = do_posix_clock_nonanosleep,
-       .timer_set = sgi_timer_set,
-       .timer_del = sgi_timer_del,
-       .timer_get = sgi_timer_get
+       .clock_set      = sgi_clock_set,
+       .clock_get      = sgi_clock_get,
+       .clock_getres   = sgi_clock_getres,
+       .timer_create   = sgi_timer_create,
+       .timer_set      = sgi_timer_set,
+       .timer_del      = sgi_timer_del,
+       .timer_get      = sgi_timer_get
 };
 
 /**
@@ -831,8 +839,8 @@ static int __init mmtimer_init(void)
                        (unsigned long) node);
        }
 
-       sgi_clock_period = sgi_clock.res = NSEC_PER_SEC / sn_rtc_cycles_per_second;
-       register_posix_clock(CLOCK_SGI_CYCLE, &sgi_clock);
+       sgi_clock_period = NSEC_PER_SEC / sn_rtc_cycles_per_second;
+       posix_timers_register_clock(CLOCK_SGI_CYCLE, &sgi_clock);
 
        printk(KERN_INFO "%s: v%s, %ld MHz\n", MMTIMER_DESC, MMTIMER_VERSION,
               sn_rtc_cycles_per_second/(unsigned long)1E6);