diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-05-09 04:33:24 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2007-05-09 04:33:24 -0400 |
commit | 57be2b484a417bffae66359b9b89e7239480b729 (patch) | |
tree | d517f5b449b4f6b629790476082a4a7c478112bb /arch/sh/kernel/process.c | |
parent | 1ce7ddd5f4cc754b6afe9eec5cee89ede75348ea (diff) |
sh: clockevent/clocksource/hrtimers/nohz TMU support.
This adds basic support for clockevents and clocksources,
presently only implemented for TMU-based systems (which
are the majority of SH-3 and SH-4 systems).
The old NO_IDLE_HZ implementation is also dropped completely,
the only users of this were on TMU-based systems anyways.
More work needs to be done to generalize the TMU handling,
in that the current implementation is rather tied to the
notion of TMU0 and TMU1 utilization.
Additionally, as more SH timers switch over to this scheme,
we'll be able to gut most of the remaining system timer
infrastructure that existed before.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/process.c')
-rw-r--r-- | arch/sh/kernel/process.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c index d755589ba8b1..6b4f5748d0be 100644 --- a/arch/sh/kernel/process.c +++ b/arch/sh/kernel/process.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/kallsyms.h> | 16 | #include <linux/kallsyms.h> |
17 | #include <linux/kexec.h> | 17 | #include <linux/kexec.h> |
18 | #include <linux/kdebug.h> | 18 | #include <linux/kdebug.h> |
19 | #include <linux/tick.h> | ||
19 | #include <asm/uaccess.h> | 20 | #include <asm/uaccess.h> |
20 | #include <asm/mmu_context.h> | 21 | #include <asm/mmu_context.h> |
21 | #include <asm/pgalloc.h> | 22 | #include <asm/pgalloc.h> |
@@ -60,8 +61,10 @@ void cpu_idle(void) | |||
60 | if (!idle) | 61 | if (!idle) |
61 | idle = default_idle; | 62 | idle = default_idle; |
62 | 63 | ||
64 | tick_nohz_stop_sched_tick(); | ||
63 | while (!need_resched()) | 65 | while (!need_resched()) |
64 | idle(); | 66 | idle(); |
67 | tick_nohz_restart_sched_tick(); | ||
65 | 68 | ||
66 | preempt_enable_no_resched(); | 69 | preempt_enable_no_resched(); |
67 | schedule(); | 70 | schedule(); |