summaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/kernel/time.c')
-rw-r--r--arch/sh/kernel/time.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/arch/sh/kernel/time.c b/arch/sh/kernel/time.c
index 2c73255f4..f1e8d28bf 100644
--- a/arch/sh/kernel/time.c
+++ b/arch/sh/kernel/time.c
@@ -26,6 +26,7 @@
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/delay.h>
+#include <asm/machvec.h>
#include <linux/timex.h>
#include <linux/irq.h>
@@ -226,6 +227,11 @@ static inline void do_timer_interrupt(int irq, void *dev_id, struct pt_regs *reg
sh_do_profile(regs->pc);
#endif
+#ifdef CONFIG_HEARTBEAT
+ if (sh_mv.mv_heartbeat != NULL)
+ sh_mv.mv_heartbeat();
+#endif
+
/*
* If we have an externally synchronized Linux clock, then update
* RTC clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
@@ -441,11 +447,11 @@ void __init time_init(void)
tmp = (frqcr & 0x2000) >> 11;
tmp |= frqcr & 0x0003;
pfc = pfc_table[tmp];
-#ifdef CONFIG_SH_HP600
- master_clock = cpu_clock/6;
-#else
- master_clock = cpu_clock;
-#endif
+ if (MACH_HP600) {
+ master_clock = cpu_clock/6;
+ } else {
+ master_clock = cpu_clock;
+ }
bus_clock = master_clock/pfc;
}
#elif defined(__SH4__)