From: Pavel Machek <pavel@ucw.cz>
To: Patrick Mochel <mochel@osdl.org>,
kernel list <linux-kernel@vger.kernel.org>
Subject: [pm] fix time after suspend-to-*
Date: Thu, 23 Oct 2003 01:33:06 +0200 [thread overview]
Message-ID: <20031022233306.GA6461@elf.ucw.cz> (raw)
Hi!
This adds suspend/resume methods for time, so that real time is
refreshed from cmos when suspend is finished. Please apply,
Pavel
[Code was copied from apm.c, someone familiar from apm.c can probably
kill it from there -- after adding device_power_down() and
device_power_up() to right places].
--- tmp/linux/arch/i386/kernel/time.c 2003-10-09 00:13:14.000000000 +0200
+++ linux/arch/i386/kernel/time.c 2003-10-23 01:05:36.000000000 +0200
@@ -271,16 +271,39 @@
unsigned long retval;
spin_lock(&rtc_lock);
-
retval = mach_get_cmos_time();
-
spin_unlock(&rtc_lock);
return retval;
}
+static long clock_cmos_diff;
+static int got_clock_diff;
+
+static int pit_suspend(struct sys_device *dev, u32 state)
+{
+ /*
+ * Estimate time zone so that set_time can update the clock
+ */
+ clock_cmos_diff = -get_cmos_time();
+ clock_cmos_diff += get_seconds();
+ got_clock_diff = 1;
+ return 0;
+}
+
+static int pit_resume(struct sys_device *dev)
+{
+ if (got_clock_diff) { /* Must know time zone in order to set clock */
+ xtime.tv_sec = get_cmos_time() + clock_cmos_diff;
+ xtime.tv_nsec = 0;
+ }
+ return 0;
+}
+
static struct sysdev_class pit_sysclass = {
set_kset_name("pit"),
+ .resume = pit_resume,
+ .suspend = pit_suspend,
};
/* XXX this driverfs stuff should probably go elsewhere later -john */
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
next reply other threads:[~2003-10-22 23:33 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-22 23:33 Pavel Machek [this message]
2003-10-22 23:52 ` [pm] fix time after suspend-to-* john stultz
2003-10-23 8:17 ` Pavel Machek
2003-10-23 20:23 ` George Anzinger
2003-10-23 20:55 ` john stultz
2003-10-23 23:09 ` George Anzinger
2003-10-23 23:38 ` Pavel Machek
2003-10-24 0:29 ` john stultz
2003-10-24 0:39 ` john stultz
2003-10-24 2:10 ` George Anzinger
2003-10-24 7:48 ` Pavel Machek
2003-10-27 23:24 ` George Anzinger
2003-10-27 23:43 ` Patrick Mochel
2003-10-28 1:35 ` Nigel Cunningham
2003-10-28 8:33 ` Felipe Alfaro Solana
2003-10-28 9:32 ` Pavel Machek
2003-10-28 11:41 ` Stephen Rothwell
2003-10-28 12:29 ` Pavel Machek
2003-10-28 12:39 ` Stephen Rothwell
2003-10-28 22:23 ` Peter Chubb
2003-10-29 2:24 ` Valdis.Kletnieks
2003-10-29 9:43 ` Pavel Machek
2003-10-28 14:30 ` Felipe Alfaro Solana
2003-10-28 17:28 ` Pavel Machek
2003-10-28 20:16 ` Felipe Alfaro Solana
2003-10-28 21:13 ` Andreas Schwab
2003-10-28 21:29 ` George Anzinger
2003-10-29 9:38 ` Pavel Machek
2003-10-29 11:28 ` Gabriel Paubert
2003-10-29 11:55 ` PCI Bus error 6290 or 0290 Remus
2003-10-29 12:40 ` Meelis Roos
2003-10-29 12:49 ` Remus
2003-10-29 20:42 ` [pm] fix time after suspend-to-* George Anzinger
2003-10-30 9:02 ` Pavel Machek
2003-10-28 15:21 ` Valdis.Kletnieks
2003-10-28 17:26 ` Pavel Machek
2003-10-28 18:20 ` Patrick Mochel
2003-10-28 19:36 ` Valdis.Kletnieks
2003-10-28 20:19 ` Felipe Alfaro Solana
2003-10-24 7:49 ` Pavel Machek
2003-10-23 23:40 ` Pavel Machek
2003-10-27 22:43 ` Patrick Mochel
2003-10-22 23:57 ` Måns Rullgård
2003-10-29 8:20 Mathias Fröhlich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20031022233306.GA6461@elf.ucw.cz \
--to=pavel@ucw.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=mochel@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).