Skip to content

Commit

Permalink
sh: Wire up GENERIC_CMOS_UPDATE for the platforms that need it.
Browse files Browse the repository at this point in the history
Now that everything has converted over to generic timekeeping, we need an
alternate method for keeping the RTC updated for those platforms that are
still using the rtc_sh_get/set_time pairs, presently limited to SH-03 and
the Dreamcast. This wires up the GENERIC_CMOS_UPDATE hooks for those to
maintain the same behaviour.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed May 8, 2009
1 parent b179b72 commit 6d134b9
Show file tree
Hide file tree
Showing 2 changed files with 18 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 @@ -83,6 +83,10 @@ config GENERIC_CLOCKEVENTS
config GENERIC_CLOCKEVENTS_BROADCAST
bool

config GENERIC_CMOS_UPDATE
def_bool y
depends on SH_SH03 || SH_DREAMCAST

config GENERIC_LOCKBREAK
def_bool y
depends on SMP && PREEMPT
Expand Down
14 changes: 14 additions & 0 deletions arch/sh/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,20 @@ static int null_rtc_set_time(const time_t secs)
void (*rtc_sh_get_time)(struct timespec *) = null_rtc_get_time;
int (*rtc_sh_set_time)(const time_t) = null_rtc_set_time;

#ifdef CONFIG_GENERIC_CMOS_UPDATE
unsigned long read_persistent_clock(void)
{
struct timespec tv;
rtc_sh_get_time(&tv);
return tv.tv_sec;
}

int update_persistent_clock(struct timespec now)
{
return rtc_sh_set_time(now.tv_sec);
}
#endif

unsigned int get_rtc_time(struct rtc_time *tm)
{
if (rtc_sh_get_time != null_rtc_get_time) {
Expand Down

0 comments on commit 6d134b9

Please sign in to comment.