]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/sparc64/kernel/time.c
Merge branch 'linus' into test
[linux-2.6-omap-h63xx.git] / arch / sparc64 / kernel / time.c
index 226a0042d870631dca3f670a5485bde01d692ce9..80d71a5ce1e3ab414cc81cda2eb6bf63973ef368 100644 (file)
@@ -396,17 +396,20 @@ static unsigned long timer_ticks_per_nsec_quotient __read_mostly;
 int update_persistent_clock(struct timespec now)
 {
        struct rtc_device *rtc = rtc_class_open("rtc0");
+       int err = -1;
 
-       if (rtc)
-               return rtc_set_mmss(rtc, now.tv_sec);
+       if (rtc) {
+               err = rtc_set_mmss(rtc, now.tv_sec);
+               rtc_class_close(rtc);
+       }
 
-       return -1;
+       return err;
 }
 
 unsigned long cmos_regs;
 EXPORT_SYMBOL(cmos_regs);
 
-struct resource rtc_cmos_resource;
+static struct resource rtc_cmos_resource;
 
 static struct platform_device rtc_cmos_device = {
        .name           = "rtc_cmos",
@@ -618,7 +621,7 @@ fs_initcall(clock_init);
 static unsigned long sparc64_init_timers(void)
 {
        struct device_node *dp;
-       unsigned long clock;
+       unsigned long freq;
 
        dp = of_find_node_by_path("/");
        if (tlb_type == spitfire) {
@@ -631,17 +634,17 @@ static unsigned long sparc64_init_timers(void)
                if (manuf == 0x17 && impl == 0x13) {
                        /* Hummingbird, aka Ultra-IIe */
                        tick_ops = &hbtick_operations;
-                       clock = of_getintprop_default(dp, "stick-frequency", 0);
+                       freq = of_getintprop_default(dp, "stick-frequency", 0);
                } else {
                        tick_ops = &tick_operations;
-                       clock = local_cpu_data().clock_tick;
+                       freq = local_cpu_data().clock_tick;
                }
        } else {
                tick_ops = &stick_operations;
-               clock = of_getintprop_default(dp, "stick-frequency", 0);
+               freq = of_getintprop_default(dp, "stick-frequency", 0);
        }
 
-       return clock;
+       return freq;
 }
 
 struct freq_table {
@@ -833,16 +836,16 @@ EXPORT_SYMBOL(udelay);
 
 void __init time_init(void)
 {
-       unsigned long clock = sparc64_init_timers();
+       unsigned long freq = sparc64_init_timers();
 
-       tb_ticks_per_usec = clock / USEC_PER_SEC;
+       tb_ticks_per_usec = freq / USEC_PER_SEC;
 
        timer_ticks_per_nsec_quotient =
-               clocksource_hz2mult(clock, SPARC64_NSEC_PER_CYC_SHIFT);
+               clocksource_hz2mult(freq, SPARC64_NSEC_PER_CYC_SHIFT);
 
        clocksource_tick.name = tick_ops->name;
        clocksource_tick.mult =
-               clocksource_hz2mult(clock,
+               clocksource_hz2mult(freq,
                                    clocksource_tick.shift);
        clocksource_tick.read = tick_ops->get_tick;
 
@@ -853,7 +856,7 @@ void __init time_init(void)
 
        sparc64_clockevent.name = tick_ops->name;
 
-       setup_clockevent_multiplier(clock);
+       setup_clockevent_multiplier(freq);
 
        sparc64_clockevent.max_delta_ns =
                clockevent_delta2ns(0x7fffffffffffffffUL, &sparc64_clockevent);