clocksource: scx200_hrt: Convert scx200 to use clocksource_register_hz
John Stultz [Tue, 10 Jan 2012 00:15:03 +0000 (16:15 -0800)]
Converts the scx200 clocksource to using clocksource_register_hz.

CC: Jim Cromie <jim.cromie@gmail.com>
Tested-by: Jim Cromie <jim.cromie@gmail.com>
Acked-by: Jim Cromie <jim.cromie@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>

drivers/clocksource/scx200_hrt.c

index e4e4a04..60db8b1 100644 (file)
@@ -49,9 +49,6 @@ static cycle_t read_hrt(struct clocksource *cs)
        return (cycle_t) inl(scx200_cb_base + SCx200_TIMER_OFFSET);
 }
 
-#define HRT_SHIFT_1    22
-#define HRT_SHIFT_27   26
-
 static struct clocksource cs_hrt = {
        .name           = "scx200_hrt",
        .rating         = 250,
@@ -63,6 +60,7 @@ static struct clocksource cs_hrt = {
 
 static int __init init_hrt_clocksource(void)
 {
+       u32 freq;
        /* Make sure scx200 has initialized the configuration block */
        if (!scx200_cb_present())
                return -ENODEV;
@@ -79,19 +77,15 @@ static int __init init_hrt_clocksource(void)
        outb(HR_TMEN | (mhz27 ? HR_TMCLKSEL : 0),
             scx200_cb_base + SCx200_TMCNFG_OFFSET);
 
-       if (mhz27) {
-               cs_hrt.shift = HRT_SHIFT_27;
-               cs_hrt.mult = clocksource_hz2mult((HRT_FREQ + ppm) * 27,
-                                                 cs_hrt.shift);
-       } else {
-               cs_hrt.shift = HRT_SHIFT_1;
-               cs_hrt.mult = clocksource_hz2mult(HRT_FREQ + ppm,
-                                                 cs_hrt.shift);
-       }
+       freq = (HRT_FREQ + ppm);
+       if (mhz27)
+               freq *= 27;
+
        pr_info("enabling scx200 high-res timer (%s MHz +%d ppm)\n",
+       printk(KERN_INFO "enabling scx200 high-res timer (%s MHz +%d ppm)\n",
                mhz27 ? "27":"1", ppm);
 
-       return clocksource_register(&cs_hrt);
+       return clocksource_register_hz(&cs_hrt, freq);
 }
 
 module_init(init_hrt_clocksource);