All of lore.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 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.