Skip to content

Commit

Permalink
sh: First step at generic timeofday support.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Paul Mundt authored and Paul Mundt committed Oct 6, 2006
1 parent 49f19ce commit 4588214
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 0 deletions.
4 changes: 4 additions & 0 deletions arch/sh/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -357,6 +360,7 @@ config CPU_HAS_SR_RB
endmenu

menu "Timer support"
depends on !GENERIC_TIME

config SH_TMU
bool "TMU timer support"
Expand Down
2 changes: 2 additions & 0 deletions arch/sh/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
4 changes: 4 additions & 0 deletions include/asm-sh/timer.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
};

Expand All @@ -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)
{
Expand Down

0 comments on commit 4588214

Please sign in to comment.