From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: linux1394-devel@lists.sourceforge.net
Cc: linuxppc-dev list <linuxppc-dev@ozlabs.org>,
Linux Kernel list <linux-kernel@vger.kernel.org>,
Greg KH <greg@kroah.com>
Subject: pci_set_power_state() failure and breaking suspend
Date: Tue, 24 Oct 2006 16:54:58 +1000 [thread overview]
Message-ID: <1161672898.10524.596.camel@localhost.localdomain> (raw)
So I noticed a small regression that I think might uncover a deeper
issue...
Recently, ohci1394 grew some "proper" error handling in its suspend
function, something that looks like:
err = pci_set_power_state(pdev, pci_choose_state(pdev, state));
if (err)
goto out;
First, it breaks some old PowerBooks where the internal OHCI had PM
feature exposed on PCI (the pmac specific code that follows those lines
is enough on those machines).
That can easily be fixed by removing the if (err) goto out; statement
and having the pmac code set err to 0 in certain conditions, and I'll be
happy to submit a patch for this.
However, this raises the question of do we actually want to prevent
machines to suspend when they have a PCI device that don't have the PCI
PM capability ? I'm asking that because I can easily imagine that sort
of construct growing into more drivers (sounds logical if you don't
think) and I can even imagine somebody thinking it's a good idea to slap
a __must_check on pci_set_power_state() ...
I think the answer is not simple. For a lot of devices, it will be
harmless, they will be either unaffected by the sleep transition or
powered down and back up, and the driver will cope just fine. I suppose
there can be issues for devices that do not support it, though none
obvious comes to mind.
It's one of those policies that are hard to define. But I think the best
approach for now is to not fail the suspend when pci_set_power_state()
returns an error.
Ben.
next reply other threads:[~2006-10-24 6:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-24 6:54 Benjamin Herrenschmidt [this message]
2006-10-24 7:40 ` pci_set_power_state() failure and breaking suspend Benjamin Herrenschmidt
2006-10-24 8:13 ` Stefan Richter
2006-10-24 8:29 ` Benjamin Herrenschmidt
2006-10-24 11:41 ` Stefan Richter
2006-10-24 22:40 ` Benjamin Herrenschmidt
2006-10-25 6:40 ` Stefan Richter
2006-10-25 6:48 ` Stefan Richter
2006-10-25 6:51 ` Stefan Richter
2006-10-24 12:00 ` Rafael J. Wysocki
2006-10-24 16:09 ` Scott Wood
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=1161672898.10524.596.camel@localhost.localdomain \
--to=benh@kernel.crashing.org \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=linuxppc-dev@ozlabs.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).