From: ambx1-IBH0VoN/3vPQT0dZR+AlfA@public.gmane.org (Adam Belay)
To: Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org>
Cc: Matthew Garrett <mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>,
acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: Shutting down PCI devices on suspend
Date: Sun, 12 Dec 2004 17:36:56 -0500 [thread overview]
Message-ID: <20041212223655.GC2661@neo.rr.com> (raw)
In-Reply-To: <20041212201810.GE6272-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
On Sun, Dec 12, 2004 at 09:18:10PM +0100, Pavel Machek wrote:
> Hi!
>
> > > Each PCI device is either:
> > >
> > > * supported -- it has a driver, we are okay
> > >
> > > * unsupported -- it should not be even turned on, right?
> > >
> > > * legacy, like VGA or IDE -- okay, we need drivers for those. You need
> > > to reinit them on resume, anyway, so....
> > >
> > > ...yes, I think this is the best solution.
> >
> > Not necessarily. Most unsupported devices start in the on state. Also I
> > think it's difficult to see a consistent power management behavior/policy if
> > each driver is controlling it's devices' power state. I'd prefer to have
> > drivers saving and restoring device state and then having the bus driver
> > take care of the actual power state transitions.
>
> Why?
Because the power management design should be layered:
device power off request -->
(start)
|
| class - disable user space interfaces, stop timers etc
|
| driver - save hardware state, prepare hardware for poweroff
|
| bus - power off physical device
|
| firmware (ex ACPI) - additional power logic (ex external device components
| may need to be powered off.
| This will typically involve Dx
| states)
/
(finish)
Layering is one of the reasons the driver core was created.
We currently have this:
device power off request -->
(start)
|
| driver (*suspend) - tell class to stop logical device (often large amounts
| of duplicate code between drivers)
|
| - Save device state
|
| - Power off physical device
|
| - totally ignore ACPI firmware Dx states (how could we
| handle them, we don't know enough about the layers below
| us. ACPI may not be compiled into the kernel, the device
| may not have ACPI extensions etc.)
|
\
(finish)
I think it would be better if every layer in the driver stack played a role in
device power state transitions.
>
> Saving/restoring state is way more work than actual power state
> transitions. Provide nice helpers so that power state transitions are
> easy, but leave the work on the drivers, so that drivers may do
> something special if required.
Could you provide an example of a special case? I'm not sure if we should
design our model around the least common denominator of standard compliance.
>
> Ouch and btw linux-pm list exists where this stuff is debated...
Yes I'm aware of it. This issue also applies to ACPI very directly.
Thanks,
Adam
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
next prev parent reply other threads:[~2004-12-12 22:36 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-11 15:37 Shutting down PCI devices on suspend Matthew Garrett
2004-12-11 19:50 ` Nate Lawson
[not found] ` <41BB4F70.9060606-Y6VGUYTwhu0@public.gmane.org>
2004-12-11 22:41 ` Matthew Garrett
2004-12-11 23:20 ` Nate Lawson
[not found] ` <41BB80C6.1020404-Y6VGUYTwhu0@public.gmane.org>
2004-12-12 1:44 ` Arjen Verweij
2004-12-11 21:31 ` Arjen Verweij
2004-12-12 16:44 ` Pavel Machek
[not found] ` <20041212164422.GD6286-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2004-12-12 17:01 ` Matthew Garrett
2004-12-12 17:15 ` Pavel Machek
[not found] ` <20041212171521.GC6272-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2004-12-12 19:29 ` Adam Belay
[not found] ` <20041212192913.GB2661-IBH0VoN/3vPQT0dZR+AlfA@public.gmane.org>
2004-12-12 20:18 ` Pavel Machek
[not found] ` <20041212201810.GE6272-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2004-12-12 22:36 ` Adam Belay [this message]
[not found] ` <20041212223655.GC2661-IBH0VoN/3vPQT0dZR+AlfA@public.gmane.org>
2004-12-12 23:01 ` Pavel Machek
[not found] ` <20041212230157.GH6272-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2004-12-13 0:11 ` Adam Belay
[not found] ` <20041213001125.GD2661-IBH0VoN/3vPQT0dZR+AlfA@public.gmane.org>
2004-12-13 11:09 ` Pavel Machek
2004-12-12 23:23 ` Matthew Garrett
2004-12-13 10:52 ` Pavel Machek
-- strict thread matches above, loose matches on Subject: below --
2004-12-13 1:59 Li, Shaohua
[not found] ` <16A54BF5D6E14E4D916CE26C9AD30575C12271-4yWAQGcml66iAffOGbnezLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-12-13 11:11 ` 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=20041212223655.GC2661@neo.rr.com \
--to=ambx1-ibh0von/3vpqt0dzr+alfa@public.gmane.org \
--cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org \
--cc=pavel-+ZI9xUNit7I@public.gmane.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