diff options
| author | Len Brown <len.brown@intel.com> | 2011-03-18 18:06:08 -0400 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2011-03-18 18:06:08 -0400 |
| commit | 05534c9ffc9d5d950b14de8ba49a7609dc59b0b8 (patch) | |
| tree | 65a01a1e0bc0e28c64fb5105cc763949f5412b4b /arch/arm/mach-omap2/timer-gp.c | |
| parent | dd87cc53c42f3260b7eb7f60822de0fa9e58af59 (diff) | |
| parent | 589c7a39ae2f2b74fd13ae344ca1dcca61da6bca (diff) | |
| download | lwn-05534c9ffc9d5d950b14de8ba49a7609dc59b0b8.tar.gz lwn-05534c9ffc9d5d950b14de8ba49a7609dc59b0b8.zip | |
Merge branch 'acpica' into release
Diffstat (limited to 'arch/arm/mach-omap2/timer-gp.c')
| -rw-r--r-- | arch/arm/mach-omap2/timer-gp.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c index 7b7c2683ae7b..0fc550e7e482 100644 --- a/arch/arm/mach-omap2/timer-gp.c +++ b/arch/arm/mach-omap2/timer-gp.c @@ -39,6 +39,7 @@ #include <asm/mach/time.h> #include <plat/dmtimer.h> #include <asm/localtimer.h> +#include <asm/sched_clock.h> #include "timer-gp.h" @@ -190,6 +191,7 @@ static void __init omap2_gp_clocksource_init(void) /* * clocksource */ +static DEFINE_CLOCK_DATA(cd); static struct omap_dm_timer *gpt_clocksource; static cycle_t clocksource_read_cycles(struct clocksource *cs) { @@ -204,6 +206,15 @@ static struct clocksource clocksource_gpt = { .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; +static void notrace dmtimer_update_sched_clock(void) +{ + u32 cyc; + + cyc = omap_dm_timer_read_counter(gpt_clocksource); + + update_sched_clock(&cd, cyc, (u32)~0); +} + /* Setup free-running counter for clocksource */ static void __init omap2_gp_clocksource_init(void) { @@ -224,6 +235,8 @@ static void __init omap2_gp_clocksource_init(void) omap_dm_timer_set_load_start(gpt, 1, 0); + init_sched_clock(&cd, dmtimer_update_sched_clock, 32, tick_rate); + if (clocksource_register_hz(&clocksource_gpt, tick_rate)) printk(err2, clocksource_gpt.name); } |
