Skip to content

Commit

Permalink
[ARM] 3855/1: Add generic time support
Browse files Browse the repository at this point in the history
This patch adds Generic time-of-day support for the ARM architecture.

The support is currently added using #ifdef's so that it can support
sub-arches that do not (yet) have a clocksource added.  As sub-arches
add clocksource support, they should 'select GENERIC_TIME'

Signed-off-by: Deepak Saxena <dsaxena@mvista.com>
Signed-off-by: Daniel Walker <dwalker@mvista.com>

Signed-off-by: Kevin Hilman <khilman@mvista.com>

Acked-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Kevin Hilman authored and Russell King committed Sep 28, 2006
1 parent 82606c6 commit 746140c
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 0 deletions.
4 changes: 4 additions & 0 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ config ARM
Europe. There is an ARM Linux project with a web page at
<http://www.arm.linux.org.uk/>.

config GENERIC_TIME
bool
default n

config MMU
bool
default y
Expand Down
6 changes: 6 additions & 0 deletions arch/arm/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,12 @@ EXPORT_SYMBOL(profile_pc);
*/
int (*set_rtc)(void);

#ifndef CONFIG_GENERIC_TIME
static unsigned long dummy_gettimeoffset(void)
{
return 0;
}
#endif

/*
* Scheduler clock - returns current time in nanosec units.
Expand Down Expand Up @@ -230,6 +232,7 @@ static inline void do_leds(void)
#define do_leds()
#endif

#ifndef CONFIG_GENERIC_TIME
void do_gettimeofday(struct timeval *tv)
{
unsigned long flags;
Expand Down Expand Up @@ -291,6 +294,7 @@ int do_settimeofday(struct timespec *tv)
}

EXPORT_SYMBOL(do_settimeofday);
#endif /* !CONFIG_GENERIC_TIME */

/**
* save_time_delta - Save the offset between system time and RTC time
Expand Down Expand Up @@ -500,8 +504,10 @@ device_initcall(timer_init_sysfs);

void __init time_init(void)
{
#ifndef CONFIG_GENERIC_TIME
if (system_timer->offset == NULL)
system_timer->offset = dummy_gettimeoffset;
#endif
system_timer->init();

#ifdef CONFIG_NO_IDLE_HZ
Expand Down
2 changes: 2 additions & 0 deletions include/asm-arm/mach/time.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ struct sys_timer {
void (*init)(void);
void (*suspend)(void);
void (*resume)(void);
#ifndef CONFIG_GENERIC_TIME
unsigned long (*offset)(void);
#endif

#ifdef CONFIG_NO_IDLE_HZ
struct dyn_tick_timer *dyn_tick;
Expand Down
4 changes: 4 additions & 0 deletions include/asm-arm/timeofday.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#ifndef _ASM_ARM_TIMEOFDAY_H
#define _ASM_ARM_TIMEOFDAY_H
#include <asm-generic/timeofday.h>
#endif

0 comments on commit 746140c

Please sign in to comment.