summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2006-10-04 13:21:45 +0900
committerPaul Mundt <pmundt@dysnomia.hsdv.com>2006-10-06 15:26:21 +0900
commit458821452642fd5dc2377b73cd1323fd4a9653e7 (patch)
tree7071b0a85f28c29bd6a2e4c45f38ec6993ff3fbc
parent49f19ce401edfff937c448dd74c22497da361889 (diff)
downloadop-kernel-dev-458821452642fd5dc2377b73cd1323fd4a9653e7.zip
op-kernel-dev-458821452642fd5dc2377b73cd1323fd4a9653e7.tar.gz
sh: First step at generic timeofday support.
At the moment we wrap GENERIC_TIME around our existing timer API. As boards start providing their own clocksources, they're able to select GENERIC_TIME accordingly and optimize out most of the timer API. Once the current timers have been reworked as proper clocksource drivers, the rest of the place holders for the timer API can go away and we can flip on GENERIC_TIME unconditionally. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--arch/sh/Kconfig4
-rw-r--r--arch/sh/kernel/time.c2
-rw-r--r--include/asm-sh/timer.h4
3 files changed, 10 insertions, 0 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index f6a0c44..6a461d4 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -45,6 +45,9 @@ config GENERIC_CALIBRATE_DELAY
config GENERIC_IOMAP
bool
+config GENERIC_TIME
+ def_bool n
+
config ARCH_MAY_HAVE_PC_FDC
bool
@@ -357,6 +360,7 @@ config CPU_HAS_SR_RB
endmenu
menu "Timer support"
+depends on !GENERIC_TIME
config SH_TMU
bool "TMU timer support"
diff --git a/arch/sh/kernel/time.c b/arch/sh/kernel/time.c
index 450c68f..1fbb83c 100644
--- a/arch/sh/kernel/time.c
+++ b/arch/sh/kernel/time.c
@@ -47,6 +47,7 @@ unsigned long long __attribute__ ((weak)) sched_clock(void)
return (unsigned long long)jiffies * (1000000000 / HZ);
}
+#ifndef CONFIG_GENERIC_TIME
void do_gettimeofday(struct timeval *tv)
{
unsigned long seq;
@@ -99,6 +100,7 @@ int do_settimeofday(struct timespec *tv)
return 0;
}
EXPORT_SYMBOL(do_settimeofday);
+#endif /* !CONFIG_GENERIC_TIME */
/* last time the RTC clock got updated */
static long last_rtc_update;
diff --git a/include/asm-sh/timer.h b/include/asm-sh/timer.h
index c7ab280..ebc78db 100644
--- a/include/asm-sh/timer.h
+++ b/include/asm-sh/timer.h
@@ -8,7 +8,9 @@ struct sys_timer_ops {
int (*init)(void);
int (*start)(void);
int (*stop)(void);
+#ifndef CONFIG_GENERIC_TIME
unsigned long (*get_offset)(void);
+#endif
unsigned long (*get_frequency)(void);
};
@@ -24,10 +26,12 @@ struct sys_timer {
extern struct sys_timer tmu_timer;
extern struct sys_timer *sys_timer;
+#ifndef CONFIG_GENERIC_TIME
static inline unsigned long get_timer_offset(void)
{
return sys_timer->ops->get_offset();
}
+#endif
static inline unsigned long get_timer_frequency(void)
{
OpenPOWER on IntegriCloud