diff options
author | John Stultz <john.stultz@linaro.org> | 2012-01-09 16:15:03 -0800 |
---|---|---|
committer | John Stultz <john.stultz@linaro.org> | 2012-02-01 18:37:40 -0800 |
commit | 12d6d41276def096cb3f7dc36f438db9ed6a0a8d (patch) | |
tree | c5e9a63bc8baf8a2bdc6ae2e6e6134e2a6be7fba /drivers/clocksource | |
parent | c7f798e3722610d486e951f04bbc00b6ba124d62 (diff) | |
download | op-kernel-dev-12d6d41276def096cb3f7dc36f438db9ed6a0a8d.zip op-kernel-dev-12d6d41276def096cb3f7dc36f438db9ed6a0a8d.tar.gz |
clocksource: scx200_hrt: Convert scx200 to use clocksource_register_hz
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>
Diffstat (limited to 'drivers/clocksource')
-rw-r--r-- | drivers/clocksource/scx200_hrt.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/drivers/clocksource/scx200_hrt.c b/drivers/clocksource/scx200_hrt.c index e4e4a04..60db8b1 100644 --- a/drivers/clocksource/scx200_hrt.c +++ b/drivers/clocksource/scx200_hrt.c @@ -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); |