rtc_hctosys expects RTCs in UTC (doc)

The RTC "hctosys" mechanism expects that RTC clock will use UTC, not local
time (e.g.  PST).  Say so in Kconfig and in the kernel message.

(Strictly speaking, the RTC clock should be tracking the POSIX epoch.  That's
not worth going into here.  Goofing timezones means clocks are wrong by many
hours; the POSIX-v-UTC differences just cost seconds.)

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
David Brownell 2007-11-14 16:58:29 -08:00 committed by Linus Torvalds
parent 1299342bac
commit 779d20892f
2 changed files with 5 additions and 3 deletions

View file

@ -36,7 +36,9 @@ config RTC_HCTOSYS_DEVICE
help help
The RTC device that will be used to (re)initialize the system The RTC device that will be used to (re)initialize the system
clock, usually rtc0. Initialization is done when the system clock, usually rtc0. Initialization is done when the system
starts up, and when it resumes from a low power state. starts up, and when it resumes from a low power state. This
device should record time in UTC, since the kernel won't do
timezone correction.
The driver for this RTC device must be loaded before late_initcall The driver for this RTC device must be loaded before late_initcall
functions run, so it must usually be statically linked. functions run, so it must usually be statically linked.

View file

@ -47,8 +47,8 @@ static int __init rtc_hctosys(void)
do_settimeofday(&tv); do_settimeofday(&tv);
dev_info(rtc->dev.parent, dev_info(rtc->dev.parent,
"setting the system clock to " "setting system clock to "
"%d-%02d-%02d %02d:%02d:%02d (%u)\n", "%d-%02d-%02d %02d:%02d:%02d UTC (%u)\n",
tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_hour, tm.tm_min, tm.tm_sec,
(unsigned int) tv.tv_sec); (unsigned int) tv.tv_sec);