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>
This commit is contained in:
Yoshinori Sato
2008-10-15 22:01:17 -07:00
committed by Linus Torvalds
parent e0b0f9e4ea
commit 81d423e280
4 changed files with 102 additions and 88 deletions

View File

@ -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();
}