diff options
author | Paul Mackerras <paulus@samba.org> | 2005-11-17 23:52:38 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-11-17 23:52:38 -0500 |
commit | 49e16b7becd6320bde51aa238c11815708f836d9 (patch) | |
tree | 38f6159992e890abe1134cecfff36b94146b4065 /arch/powerpc/platforms/chrp/setup.c | |
parent | 6146eed1e972a7de93ce2e36adc5812de81e879c (diff) |
powerpc: time-of-day fixes for 32-bit CHRP systems
This makes 32-bit CHRP systems use the RTAS time-of-day routines if
available. It fixes a bug in the RTAS time-of-day routines where they
were storing a 64-bit timebase value in an unsigned long by making
those variables u64. Also, the direct-access time-of-day routines
had the wrong convention for the month and year in the struct rtc_time.
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/chrp/setup.c')
-rw-r--r-- | arch/powerpc/platforms/chrp/setup.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c index 4099ddab9205..dda5f2c72c25 100644 --- a/arch/powerpc/platforms/chrp/setup.c +++ b/arch/powerpc/platforms/chrp/setup.c | |||
@@ -257,6 +257,13 @@ void __init chrp_setup_arch(void) | |||
257 | if (rtas_token("display-character") >= 0) | 257 | if (rtas_token("display-character") >= 0) |
258 | ppc_md.progress = rtas_progress; | 258 | ppc_md.progress = rtas_progress; |
259 | 259 | ||
260 | /* use RTAS time-of-day routines if available */ | ||
261 | if (rtas_token("get-time-of-day") != RTAS_UNKNOWN_SERVICE) { | ||
262 | ppc_md.get_boot_time = rtas_get_boot_time; | ||
263 | ppc_md.get_rtc_time = rtas_get_rtc_time; | ||
264 | ppc_md.set_rtc_time = rtas_set_rtc_time; | ||
265 | } | ||
266 | |||
260 | #ifdef CONFIG_BOOTX_TEXT | 267 | #ifdef CONFIG_BOOTX_TEXT |
261 | if (ppc_md.progress == NULL && boot_text_mapped) | 268 | if (ppc_md.progress == NULL && boot_text_mapped) |
262 | ppc_md.progress = btext_progress; | 269 | ppc_md.progress = btext_progress; |
@@ -505,9 +512,11 @@ void __init chrp_init(void) | |||
505 | ppc_md.halt = rtas_halt; | 512 | ppc_md.halt = rtas_halt; |
506 | 513 | ||
507 | ppc_md.time_init = chrp_time_init; | 514 | ppc_md.time_init = chrp_time_init; |
515 | ppc_md.calibrate_decr = chrp_calibrate_decr; | ||
516 | |||
517 | /* this may get overridden with rtas routines later... */ | ||
508 | ppc_md.set_rtc_time = chrp_set_rtc_time; | 518 | ppc_md.set_rtc_time = chrp_set_rtc_time; |
509 | ppc_md.get_rtc_time = chrp_get_rtc_time; | 519 | ppc_md.get_rtc_time = chrp_get_rtc_time; |
510 | ppc_md.calibrate_decr = chrp_calibrate_decr; | ||
511 | 520 | ||
512 | #ifdef CONFIG_SMP | 521 | #ifdef CONFIG_SMP |
513 | smp_ops = &chrp_smp_ops; | 522 | smp_ops = &chrp_smp_ops; |