public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
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/

  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