From: "Jordan Crouse" <jordan.crouse@amd.com>
To: linux-pm <linux-pm@lists.osdl.org>
Subject: Re: A reference implementation of PCI suspend/resume?
Date: Mon, 16 May 2005 15:19:37 -0600 [thread overview]
Message-ID: <20050516151937.63b37fbb@cosmic.amd.com> (raw)
In-Reply-To: <20050516201606.GA11189@neo.rr.com>
[-- Attachment #1: Type: text/plain, Size: 1616 bytes --]
On Mon, 16 May 2005 16:16:06 -0400
"Adam Belay" <ambx1@neo.rr.com> wrote:
> b.) You're assuming every device has its own interrupt. This may not
> be the case. Let's say one device was sharing interrupts with a few
> other devices. We don't want it's interrupt handler to mess up things
> when it tries to read hardware registers from a physically "off"
> device, as it may possibly generate errors. Almost every interrupt
> handler assumes the device is "on", as it should. Each interrupt
> handler has to ask its hardware if it generated the interrupt.
I ran into this very problem a while back on 2.4. On my platform, the
EHCI and OCHI host controllers share an interrupt. I was insmoding the
EHCI module before the OHCI module, but it turned out that the OHCI
controller was first on the bus, so it went down first during suspend,
and up first on resume. Long story short, it starting firing interrupts
which went to the EHCI driver first (since it was earlier on the
interrupt handler chain), and the device faithfully hung waiting to read
hardware that was still powered off.
Now, granted that particular scenario is a corner case, and the PCI
hardware should have been configured better, but it shows that you
can't assume that any given interrupt handler will only be called with
active hardware underneath.
So either an "active" bit gets added to each and every driver to be
checked in an interrupt routine, or we bail on the handler all together
- I fancy the second.
Jordan
--
Jordan Crouse
Senior Linux Engineer
AMD - Personal Connectivity Solutions Group
<www.amd.com/embeddedprocessors>
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
next prev parent reply other threads:[~2005-05-16 21:19 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-14 5:06 A reference implementation of PCI suspend/resume? Fabrice Gautier
2005-05-16 4:53 ` David Brownell
2005-05-16 8:55 ` Shaohua Li
2005-05-16 20:16 ` Adam Belay
2005-05-16 20:56 ` Rafael J. Wysocki
2005-05-16 21:19 ` Jordan Crouse [this message]
2005-05-17 0:26 ` David Brownell
2005-05-17 9:10 ` Rafael J. Wysocki
2005-05-17 18:35 ` David Brownell
2005-05-17 19:28 ` Rafael J. Wysocki
2005-05-18 1:26 ` Adam Belay
2005-05-18 17:40 ` Rafael J. Wysocki
2005-05-18 18:32 ` Alan Stern
-- strict thread matches above, loose matches on Subject: below --
2005-05-16 19:02 Fabrice Gautier
2005-05-16 19:39 ` David Brownell
2005-05-12 1:24 Shaohua Li
2005-05-12 6:21 ` Adam Belay
2005-05-12 7:03 ` Shaohua Li
2005-05-27 6:49 ` Shaohua Li
2005-05-27 7:20 ` Pavel Machek
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=20050516151937.63b37fbb@cosmic.amd.com \
--to=jordan.crouse@amd.com \
--cc=linux-pm@lists.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