aboutsummaryrefslogtreecommitdiffstats
path: root/arch/h8300/kernel/time.c
diff options
context:
space:
mode:
authorYoshinori Sato <ysato@users.sourceforge.jp>2008-10-15 22:01:17 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-16 11:21:29 -0700
commit81d423e280d193d351f41eacdb3f82c3bb9610c1 (patch)
tree37395cbb8104d0a78ae1e2d7d1ca67bff817eeae /arch/h8300/kernel/time.c
parente0b0f9e4ead2468f84c26332ec42b118e76af572 (diff)
downloadkernel_samsung_smdk4412-81d423e280d193d351f41eacdb3f82c3bb9610c1.zip
kernel_samsung_smdk4412-81d423e280d193d351f41eacdb3f82c3bb9610c1.tar.gz
kernel_samsung_smdk4412-81d423e280d193d351f41eacdb3f82c3bb9610c1.tar.bz2
h8300: update timer handler - misc update
- Update selection - Update common timer handler - Add support functions Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/h8300/kernel/time.c')
-rw-r--r--arch/h8300/kernel/time.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/arch/h8300/kernel/time.c b/arch/h8300/kernel/time.c
index e37c835..7f2d6cf 100644
--- a/arch/h8300/kernel/time.c
+++ b/arch/h8300/kernel/time.c
@@ -27,27 +27,21 @@
#include <linux/profile.h>
#include <asm/io.h>
-#include <asm/target_time.h>
+#include <asm/timer.h>
#define TICK_SIZE (tick_nsec / 1000)
-/*
- * timer_interrupt() needs to keep up the real-time clock,
- * as well as call the "do_timer()" routine every clocktick
- */
-static void timer_interrupt(int irq, void *dummy, struct pt_regs * regs)
+void h8300_timer_tick(void)
{
- /* may need to kick the hardware timer */
- platform_timer_eoi();
-
+ if (current->pid)
+ profile_tick(CPU_PROFILING);
+ write_seqlock(&xtime_lock);
do_timer(1);
-#ifndef CONFIG_SMP
- update_process_times(user_mode(regs));
-#endif
- profile_tick(CPU_PROFILING);
+ write_sequnlock(&xtime_lock);
+ update_process_times(user_mode(get_irq_regs()));
}
-void time_init(void)
+void __init time_init(void)
{
unsigned int year, mon, day, hour, min, sec;
@@ -57,12 +51,13 @@ void time_init(void)
year = 1980;
mon = day = 1;
hour = min = sec = 0;
- platform_gettod (&year, &mon, &day, &hour, &min, &sec);
-
+#ifdef CONFIG_H8300_GETTOD
+ h8300_gettod (&year, &mon, &day, &hour, &min, &sec);
+#endif
if ((year += 1900) < 1970)
year += 100;
xtime.tv_sec = mktime(year, mon, day, hour, min, sec);
xtime.tv_nsec = 0;
- platform_timer_setup(timer_interrupt);
+ h8300_timer_setup();
}