From: Maxim <maximlevitsky@gmail.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
Jeff Chua <jeff.chua.linux@gmail.com>,
Adrian Bunk <bunk@stusta.de>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"Eric W. Biederman" <ebiederm@xmission.com>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
pavel@suse.cz, linux-pm@lists.osdl.org, gregkh@suse.de,
linux-pci@atrey.karlin.mff.cuni.cz,
Jens Axboe <jens.axboe@oracle.com>, Len Brown <lenb@kernel.org>,
linux-acpi@vger.kernel.org, jgarzik@pobox.com,
linux-ide@vger.kernel.org,
"Michael S. Tsirkin" <mst@mellanox.co.il>
Subject: [ PATCH] Add suspend/resume for HPET was: Re: [3/6] 2.6.21-rc4: known regressions
Date: Thu, 29 Mar 2007 06:41:16 +0200 [thread overview]
Message-ID: <200703290641.20236.maximlevitsky@gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0703280931520.6730@woody.linux-foundation.org>
On Wednesday 28 March 2007 18:38:48 Linus Torvalds wrote:
>
> On Wed, 28 Mar 2007, Maxim wrote:
> >
> > Now I don't have a clue how to set those bits if only HPET is used as clock source because now clocksources
> > don't have _any_ resume hook.
>
> One thing that drives me wild about that "clocksource resume" thing is
> that it seems to think that clocksources are somehow different from any
> other system devices..
>
> Why isn't the HPET considered a "device", and has it's own *device*
> "suspend" and "resume"? Why do we seem to think that only "set_mode()"
> etc should wake up clock sources?
>
> It's a *device*, dammit. It should save and resume like one (probably as a
> system device). The "set_mode()" etc stuff is at a completely different
> (higher) conceptual level.
>
> Thomas? It does seem like Maxim has hit the nail on the head (at least
> partly) on the HPET timer resume problems..
>
> Linus
>
Hi,
I am sending here a patch that as was discussed here adds hpet to list of system devices
and adds suspend/resume hooks this way.
I tested it and it works fine.
---
Add suspend/resume support for HPET
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
---
arch/i386/kernel/hpet.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/arch/i386/kernel/hpet.c b/arch/i386/kernel/hpet.c
index 0fd9fba..ac41476 100644
--- a/arch/i386/kernel/hpet.c
+++ b/arch/i386/kernel/hpet.c
@@ -3,6 +3,8 @@
#include <linux/errno.h>
#include <linux/hpet.h>
#include <linux/init.h>
+#include <linux/sysdev.h>
+#include <linux/pm.h>
#include <asm/hpet.h>
#include <asm/io.h>
@@ -524,3 +526,65 @@ irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id)
return IRQ_HANDLED;
}
#endif
+
+
+/*
+ * Suspend/resume part
+ */
+
+#ifdef CONFIG_PM
+
+static int hpet_suspend(struct sys_device *sys_device, pm_message_t state)
+{
+ unsigned long cfg = hpet_readl(HPET_CFG);
+
+ cfg &= ~(HPET_CFG_ENABLE|HPET_CFG_LEGACY);
+ hpet_writel(cfg, HPET_CFG);
+
+ return 0;
+}
+
+static int hpet_resume(struct sys_device *sys_device)
+{
+ unsigned int id;
+
+ hpet_start_counter();
+
+ id = hpet_readl(HPET_ID);
+
+ if (id & HPET_ID_LEGSUP)
+ hpet_enable_int();
+
+ return 0;
+}
+
+static struct sysdev_class hpet_class = {
+ set_kset_name("hpet"),
+ .suspend = hpet_suspend,
+ .resume = hpet_resume,
+};
+
+static struct sys_device hpet_device = {
+ .id = 0,
+ .cls = &hpet_class,
+};
+
+
+static __init int hpet_register_sysfs(void)
+{
+ int err;
+
+ err = sysdev_class_register(&hpet_class);
+
+ if (!err) {
+ sysdev_register(&hpet_device);
+ if (err)
+ sysdev_class_unregister(&hpet_class);
+ }
+
+ return err;
+}
+
+device_initcall(hpet_register_sysfs);
+
+#endif
--
1.4.4.2
next prev parent reply other threads:[~2007-03-29 4:41 UTC|newest]
Thread overview: 301+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-16 16:33 Linux 2.6.21-rc4 Linus Torvalds
2007-03-16 17:01 ` Takashi Iwai
2007-03-16 17:44 ` Michal Piotrowski
2007-03-16 18:26 ` Andrew Morton
2007-03-16 18:55 ` Michal Piotrowski
2007-03-16 23:23 ` Jan Engelhardt
2007-03-16 23:31 ` Michal Piotrowski
2007-03-17 8:19 ` Mariusz Kozlowski
2007-03-16 18:54 ` Takashi Iwai
2007-03-16 19:03 ` Michal Piotrowski
2007-03-17 23:46 ` Adrian Bunk
2007-03-18 13:04 ` Michal Piotrowski
2007-03-16 20:34 ` Rafael J. Wysocki
2007-03-16 20:47 ` Thomas Gleixner
2007-03-16 23:25 ` [PATCH] clockevents: Fix suspend/resume to disk hangs Thomas Gleixner
2007-03-17 9:35 ` Milan Broz
2007-03-17 10:07 ` Thomas Meyer
2007-03-17 21:47 ` Rafael J. Wysocki
2007-03-18 17:58 ` Adrian Bunk
2007-03-18 0:42 ` appletouch quirk doesn't run at resume Adrian Bunk
2007-03-18 18:45 ` Jiri Kosina
2007-03-18 19:01 ` Thomas Meyer
2007-03-18 19:22 ` Jiri Kosina
2007-03-27 21:02 ` Thomas Meyer
2007-03-28 12:26 ` Jiri Kosina
2007-03-28 13:24 ` Dmitry Torokhov
2007-03-28 16:51 ` Thomas Meyer
2007-03-28 17:06 ` Jiri Kosina
2007-03-28 17:35 ` Dmitry Torokhov
2007-03-20 9:35 ` [PATCH] clockevents: Fix suspend/resume to disk hangs Marcus Better
2007-03-21 14:04 ` Thomas Gleixner
2007-03-22 10:34 ` Marcus Better
2007-03-23 9:14 ` Marcus Better
2007-03-23 10:05 ` Tino Keitel
2007-03-23 13:47 ` Rafael J. Wysocki
2007-03-23 14:36 ` Marcus Better
2007-03-16 21:11 ` Linux 2.6.21-rc4 Randy Dunlap
2007-03-16 22:39 ` Randy Dunlap
2007-03-16 23:13 ` Chris Friesen
2007-03-16 23:27 ` Jan Engelhardt
2007-03-17 6:43 ` Sam Ravnborg
2007-03-18 12:39 ` Sam Ravnborg
2007-03-19 4:16 ` Randy Dunlap
2007-03-18 18:49 ` [1/6] 2.6.21-rc4: known regressions Adrian Bunk
2007-03-20 10:24 ` Tobias Diedrich
2007-03-20 11:14 ` Adrian Bunk
2007-03-22 3:45 ` Linus Torvalds
2007-03-22 4:18 ` Nick Piggin
2007-03-22 15:21 ` Linus Torvalds
2007-03-23 1:08 ` Mingming Cao
2007-03-23 1:40 ` Linus Torvalds
2007-03-23 2:11 ` Nick Piggin
2007-03-23 7:51 ` Michal Piotrowski
2007-03-23 9:37 ` Nick Piggin
2007-03-23 17:19 ` Adrian Bunk
2007-03-23 12:01 ` [patch] hrtimers debug patch Ingo Molnar
[not found] ` <4607BDD9.1010002@googlemail.com>
[not found] ` <6bffcb0e0703260720i37bbb956o3d20019fe4ac9879@mail.gmail.com>
2007-03-26 14:33 ` Thomas Gleixner
2007-03-26 14:42 ` Michal Piotrowski
2007-03-26 15:07 ` Michal Piotrowski
2007-03-26 17:02 ` Ingo Molnar
2007-03-26 17:50 ` Michal Piotrowski
2007-04-06 15:27 ` Michal Piotrowski
2007-04-06 16:39 ` Ingo Molnar
2007-03-23 11:42 ` [1/6] 2.6.21-rc4: known regressions Ingo Molnar
2007-03-23 11:56 ` Thomas Gleixner
2007-03-23 15:08 ` [PATCH] i386: add command line option "local_apic_timer_c2_ok" Thomas Gleixner
2007-03-26 12:31 ` Pavel Machek
2007-03-26 13:52 ` Thomas Gleixner
2007-03-27 21:19 ` Len Brown
2007-03-27 21:34 ` Linus Torvalds
2007-03-27 22:16 ` Len Brown
2007-03-28 2:18 ` Len Brown
2007-03-29 14:15 ` Andi Kleen
2007-03-29 14:53 ` Langsdorf, Mark
2007-03-29 16:50 ` Andi Kleen
2007-03-29 20:02 ` Mark Langsdorf
2007-03-29 20:49 ` Andi Kleen
2007-03-29 21:16 ` Linus Torvalds
2007-03-29 21:45 ` Andreas Mohr
2007-03-29 21:56 ` Linus Torvalds
2007-03-29 22:06 ` Andi Kleen
2007-03-29 22:05 ` Andi Kleen
2007-03-30 21:06 ` Grzegorz Chwesewicz
2007-03-31 7:47 ` Grzegorz Chwesewicz
2007-03-29 21:43 ` Grzegorz Chwesewicz
2007-03-29 21:55 ` Grzegorz Chwesewicz
2007-03-29 14:19 ` Andi Kleen
2007-03-23 18:13 ` [1/6] 2.6.21-rc4: known regressions Linus Torvalds
2007-03-23 18:16 ` Linus Torvalds
2007-03-23 18:28 ` Linus Torvalds
2007-03-23 18:43 ` Thomas Gleixner
2007-03-23 12:27 ` Ingo Molnar
2007-03-22 18:24 ` Mariusz Kozłowski
2007-03-18 18:49 ` [2/6] " Adrian Bunk
2007-03-18 18:49 ` Adrian Bunk
2007-03-18 19:25 ` Andi Kleen
2007-03-19 16:06 ` Randy Dunlap
2007-03-19 16:15 ` Adrian Bunk
2007-03-19 17:07 ` Randy Dunlap
2007-03-20 15:32 ` Ray Lee
2007-03-18 18:49 ` [3/6] " Adrian Bunk
2007-03-18 18:49 ` Adrian Bunk
2007-03-18 19:38 ` Marcus Better
2007-03-26 1:25 ` Jeff Chua
2007-03-26 4:05 ` Adrian Bunk
2007-03-26 5:37 ` Jeff Chua
2007-03-26 16:26 ` Thomas Gleixner
2007-03-26 17:46 ` Jeff Chua
2007-03-28 7:04 ` Thomas Gleixner
2007-03-28 13:43 ` Maxim
2007-03-28 14:41 ` Ingo Molnar
2007-03-28 14:41 ` Ingo Molnar
2007-03-28 15:01 ` Maxim
2007-03-28 16:38 ` Linus Torvalds
2007-03-28 16:38 ` Linus Torvalds
2007-03-28 19:38 ` David Brownell
2007-03-28 19:38 ` [linux-pm] " David Brownell
2007-03-28 20:19 ` Maxim
2007-03-28 20:59 ` David Brownell
2007-03-28 21:27 ` Maxim
2007-03-29 22:33 ` David Brownell
2007-03-29 22:33 ` [linux-pm] " David Brownell
2007-03-29 23:29 ` Maxim Levitsky
2007-03-29 23:29 ` [linux-pm] " Maxim Levitsky
2007-03-30 0:09 ` David Brownell
2007-03-30 0:48 ` Maxim Levitsky
2007-03-30 0:48 ` [linux-pm] " Maxim Levitsky
2007-03-30 0:09 ` David Brownell
2007-03-28 20:42 ` Linus Torvalds
2007-03-28 20:42 ` [linux-pm] " Linus Torvalds
2007-03-28 21:17 ` David Brownell
2007-03-28 22:26 ` Maxim
2007-03-29 4:41 ` Maxim [this message]
2007-03-29 5:08 ` [ PATCH] Add suspend/resume for HPET was: " Linus Torvalds
2007-03-29 5:08 ` Linus Torvalds
2007-03-29 5:47 ` Maxim
2007-03-29 13:20 ` Sergei Shtylyov
2007-03-29 13:20 ` Sergei Shtylyov
2007-03-29 13:31 ` Maxim
2007-03-29 13:46 ` [PATCH v2] Add suspend/resume for HPET Maxim Levitsky
2007-03-29 13:46 ` Maxim Levitsky
2007-03-29 16:53 ` Linus Torvalds
2007-03-29 16:53 ` Linus Torvalds
2007-03-29 17:28 ` Maxim Levitsky
2007-03-29 17:51 ` Ingo Molnar
2007-03-29 17:51 ` Ingo Molnar
2007-03-29 20:46 ` Andi Kleen
2007-03-29 20:46 ` Andi Kleen
2007-03-29 18:11 ` Jeff Chua
2007-03-31 15:51 ` Thomas Gleixner
2007-03-31 15:51 ` Thomas Gleixner
2007-03-31 16:01 ` Jeff Chua
2007-03-31 16:01 ` Jeff Chua
2007-03-31 16:09 ` Thomas Gleixner
2007-03-31 16:09 ` Linus Torvalds
2007-03-31 16:09 ` Linus Torvalds
2007-03-31 16:33 ` Thomas Gleixner
2007-03-31 16:41 ` Greg KH
2007-03-31 16:53 ` Linus Torvalds
2007-03-31 16:53 ` Linus Torvalds
2007-03-31 17:02 ` Ingo Molnar
2007-03-31 17:02 ` Ingo Molnar
2007-03-31 18:18 ` [linux-pm] " David Brownell
2007-03-31 19:32 ` David Brownell
2007-03-31 19:32 ` [linux-pm] " David Brownell
2007-04-01 3:13 ` Jeff Chua
2007-04-01 3:13 ` [linux-pm] " Jeff Chua
2007-04-01 4:13 ` David Brownell
2007-04-01 4:13 ` [linux-pm] " David Brownell
2007-03-31 18:18 ` David Brownell
2007-03-31 17:08 ` Greg KH
2007-03-31 17:55 ` [linux-pm] " David Brownell
2007-03-31 17:55 ` David Brownell
2007-03-31 16:56 ` Maxim Levitsky
2007-03-31 17:09 ` Linus Torvalds
2007-03-31 17:09 ` Linus Torvalds
2007-03-31 17:17 ` Ingo Molnar
2007-03-31 17:17 ` Ingo Molnar
2007-03-31 17:58 ` Daniel Walker
2007-03-29 16:35 ` [ PATCH] Add suspend/resume for HPET was: Re: [3/6] 2.6.21-rc4: known regressions Linus Torvalds
2007-03-29 16:35 ` Linus Torvalds
2007-03-29 16:51 ` Maxim Levitsky
2007-03-29 16:51 ` Maxim Levitsky
2007-03-29 17:22 ` Linus Torvalds
2007-03-29 17:22 ` Linus Torvalds
2007-03-29 17:47 ` [patch, v2] add suspend/resume for HPET Ingo Molnar
2007-03-29 17:47 ` Ingo Molnar
2007-03-28 18:04 ` [3/6] 2.6.21-rc4: known regressions Michael S. Tsirkin
2007-03-28 18:32 ` Ingo Molnar
2007-03-28 18:32 ` Ingo Molnar
2007-03-28 18:35 ` Randy Dunlap
2007-03-28 18:35 ` Randy Dunlap
2007-03-29 14:24 ` Jeff Chua
2007-03-18 18:49 ` [4/6] " Adrian Bunk
2007-03-18 18:49 ` Adrian Bunk
2007-03-18 18:49 ` [5/6] " Adrian Bunk
2007-03-18 19:07 ` Maxim
2007-03-18 19:22 ` Adrian Bunk
2007-03-18 19:59 ` Maxim
2007-03-18 20:03 ` Maxim
2007-03-18 18:49 ` [6/6] " Adrian Bunk
2007-03-20 2:38 ` David Miller
2007-03-24 19:50 ` David Miller
2007-03-19 20:39 ` 2.6.21-rc4: known regressions with patches available Adrian Bunk
2007-03-19 20:39 ` Adrian Bunk
2007-03-19 20:39 ` Adrian Bunk
2007-03-20 11:02 ` [Alsa-devel] " Takashi Iwai
2007-03-23 18:48 ` [1/5] 2.6.21-rc4: known regressions (v2) Adrian Bunk
2007-03-25 4:45 ` David Miller
2007-03-25 5:08 ` Paul Collins
2007-03-25 12:22 ` Adrian Bunk
2007-03-23 18:48 ` [2/5] " Adrian Bunk
2007-03-23 21:08 ` Thomas Gleixner
2007-03-24 0:14 ` Ray Lee
2007-03-24 6:40 ` Thomas Gleixner
2007-03-24 18:17 ` Ray Lee
2007-03-24 19:11 ` [PATCH] x86_64: avoid sending LOCAL_TIMER_VECTOR IPI to itself Ingo Molnar
2007-03-25 19:24 ` Ray Lee
2007-03-26 10:01 ` [2/5] 2.6.21-rc4: known regressions (v2) Tejun Heo
2007-03-23 18:50 ` [3/5] " Adrian Bunk
2007-03-23 18:50 ` Adrian Bunk
2007-03-23 19:07 ` Maxim
2007-03-23 19:07 ` Maxim
2007-03-23 20:53 ` Rafael J. Wysocki
2007-03-23 20:53 ` Rafael J. Wysocki
2007-03-24 17:04 ` Thomas Meyer
2007-03-24 18:02 ` Eric W. Biederman
2007-03-24 18:20 ` Thomas Meyer
2007-03-24 18:47 ` Eric W. Biederman
2007-03-24 20:34 ` Thomas Meyer
2007-03-25 3:39 ` Eric W. Biederman
2007-03-25 11:41 ` Thomas Meyer
2007-03-25 12:03 ` Eric W. Biederman
2007-03-25 12:28 ` Rafael J. Wysocki
2007-03-25 12:56 ` Eric W. Biederman
2007-03-25 19:14 ` Rafael J. Wysocki
2007-03-25 20:37 ` Eric W. Biederman
2007-03-26 21:03 ` Rafael J. Wysocki
2007-03-25 14:17 ` Thomas Meyer
2007-03-25 18:56 ` Rafael J. Wysocki
2007-03-25 13:54 ` Thomas Meyer
2007-03-25 14:48 ` Adrian Bunk
2007-03-25 17:25 ` Thomas Meyer
2007-03-25 19:06 ` Rafael J. Wysocki
2007-03-25 19:31 ` Rafael J. Wysocki
2007-03-26 20:01 ` Luck, Tony
2007-03-27 3:29 ` Eric W. Biederman
2007-04-02 15:38 ` Bjorn Helgaas
2007-04-02 16:38 ` Bjorn Helgaas
2007-04-02 19:50 ` Eric W. Biederman
2007-03-25 21:34 ` Frédéric Riss
2007-03-26 6:45 ` Frédéric RISS
2007-03-26 9:14 ` Thomas Gleixner
2007-03-26 10:36 ` Frederic Riss
2007-03-26 18:53 ` Frédéric Riss
2007-03-26 19:02 ` Adrian Bunk
2007-03-26 19:39 ` Frederic Riss
2007-03-26 19:46 ` Adrian Bunk
2007-03-26 10:00 ` Marcus Better
2007-03-26 12:35 ` Pavel Machek
2007-03-26 14:11 ` Marcus Better
2007-03-26 14:34 ` Adrian Bunk
2007-03-26 17:42 ` Marcus Better
2007-03-26 18:48 ` Adrian Bunk
2007-03-26 18:48 ` Adrian Bunk
2007-03-27 9:42 ` Marcus Better
2007-03-23 18:50 ` [4/5] " Adrian Bunk
2007-03-23 19:15 ` Thomas Gleixner
2007-03-23 19:15 ` Adrian Bunk
2007-03-23 19:21 ` Thomas Gleixner
2007-03-23 22:23 ` Chuck Ebbert
2007-03-23 22:43 ` Thomas Gleixner
2007-03-23 23:35 ` Thomas Gleixner
2007-03-25 12:42 ` [PATCH] clocksource: Fix thinko in watchdog selection Thomas Gleixner
2007-03-23 23:00 ` [4/5] 2.6.21-rc4: known regressions (v2) Adrian Bunk
2007-03-23 23:05 ` Chuck Ebbert
2007-03-23 19:22 ` Thomas Gleixner
2007-03-24 13:47 ` Thomas Gleixner
2007-03-25 12:31 ` [PATCH] dynticks: fix hrtimer rounding error in next_timer_interrupt Thomas Gleixner
2007-03-23 19:49 ` [4/5] 2.6.21-rc4: known regressions (v2) Thomas Gleixner
[not found] ` <20070325071023.GL17532@mellanox.co.il>
2007-03-25 7:37 ` Thomas Gleixner
2007-03-25 8:57 ` Michael S. Tsirkin
2007-03-25 10:17 ` Thomas Gleixner
2007-03-25 10:15 ` Michael S. Tsirkin
2007-03-25 10:27 ` Thomas Gleixner
2007-03-25 10:25 ` Michael S. Tsirkin
2007-03-25 10:38 ` Thomas Gleixner
2007-03-25 11:16 ` Ingo Molnar
2007-03-25 12:09 ` Thomas Gleixner
2007-03-26 14:19 ` Michael S. Tsirkin
2007-03-23 20:00 ` Thomas Gleixner
2007-03-23 20:08 ` Thomas Gleixner
2007-03-24 13:59 ` Michal Piotrowski
2007-03-24 15:14 ` Thomas Gleixner
2007-03-24 16:13 ` Michal Piotrowski
2007-03-23 21:43 ` john stultz
2007-03-23 21:54 ` Linus Torvalds
2007-03-24 0:44 ` john stultz
2007-03-23 18:50 ` [5/5] " Adrian Bunk
2007-03-24 11:25 ` 2.6.21-rc4: known regressions with patches (v2) Adrian Bunk
2007-03-26 12:37 ` Bob Tracy
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=200703290641.20236.maximlevitsky@gmail.com \
--to=maximlevitsky@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=bunk@stusta.de \
--cc=ebiederm@xmission.com \
--cc=gregkh@suse.de \
--cc=jeff.chua.linux@gmail.com \
--cc=jens.axboe@oracle.com \
--cc=jgarzik@pobox.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=linux-pm@lists.osdl.org \
--cc=mingo@elte.hu \
--cc=mst@mellanox.co.il \
--cc=pavel@suse.cz \
--cc=rjw@sisk.pl \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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.