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
-- strict thread matches above, loose matches on Subject: below --
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.