From: Nigel Cunningham <ncunningham@linuxmail.org>
To: David Brownell <david-b@pacbell.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Oliver Neukum <oliver@neukum.org>, Pavel Machek <pavel@suse.cz>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Patrick Mochel <mochel@digitalimplant.org>
Subject: Re: Solving suspend-level confusion
Date: Thu, 05 Aug 2004 20:19:10 +1000 [thread overview]
Message-ID: <1091701150.2964.229.camel@laptop.cunninghams> (raw)
In-Reply-To: <200408041829.45298.david-b@pacbell.net>
Hi.
On Thu, 2004-08-05 at 11:29, David Brownell wrote:
> On Tuesday 03 August 2004 19:26, Nigel Cunningham wrote:
>
> > > There's now some partial-tree code in CONFIG_USB_SUSPEND (for
> > > developers only), but jumping from USB into the next level driver
> > > (SCSI, video, etc) raises questions.
> >
> > I've also done partial-tree support for suspend2 by making a new list
> > (along side the active, off and off_irq lists) and simply moving devices
> > I want to keep on (plus their parents) to this list prior to calling
> > device_suspend. Works well for keeping alive the ide devices being used
> > write the image.
>
> What I'd need out of the PM framework would be "suspend this subtree",
> and its cousin "resume this subtree". Where the subtree starts with a
> given device ... and, if it's got a driver, any abstract devices created
> by that driver. (And their children, etc.)
I've just finished implementing a 'suspend this subtree' patch, which
I'll happily post for comments/testing. I'll try to do that shortly.
> I'm not sure what to think about the desire of "suspend2" to prevent
> a subtree from suspending. In fact, I'm not at all sure how to even
> interpret a "can't suspend" failure code... device in trouble, likely.
I didn't implement it as devices saying 'can't suspend'. Instead, I
added a layer of abstraction. Imagine the current dpm_active, dpm_off
and dpm_off_irq lists as representing the states of a subtree of the
devices. We pop them into a struct partial_device_tree (device_subtree
better?) and provide facilities for creating and destroying new struct
partial_device_trees, moving a-device-and-its-parents between trees and
merging trees back. We also adjust the current suspend, resume, power-up
and power-down routines so they're tree-aware and set up a
'default_device_tree' that the devices sit in for normal operation.
That's what my patch does. I kept the existing api untouched so that:
device_resume();
is actually a wrapper for
device_resume_tree(&default_device_tree);
Proof of the pudding coming :>
Nigel
next prev parent reply other threads:[~2004-08-05 10:21 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-30 16:44 Solving suspend-level confusion Pavel Machek
2004-07-30 22:39 ` Benjamin Herrenschmidt
2004-07-30 23:06 ` Pavel Machek
2004-07-31 4:02 ` David Brownell
2004-07-31 4:36 ` Pavel Machek
2004-07-31 5:49 ` Benjamin Herrenschmidt
2004-07-31 14:23 ` David Brownell
2004-07-31 17:01 ` Oliver Neukum
2004-07-31 17:51 ` David Brownell
2004-08-01 0:41 ` David Brownell
2004-08-01 1:34 ` Benjamin Herrenschmidt
2004-08-02 16:38 ` David Brownell
2004-08-03 0:38 ` Benjamin Herrenschmidt
2004-08-04 2:28 ` David Brownell
2004-08-04 2:26 ` Nigel Cunningham
2004-08-04 2:53 ` Benjamin Herrenschmidt
2004-08-04 2:52 ` Nigel Cunningham
2004-08-04 4:14 ` Benjamin Herrenschmidt
2004-08-04 4:25 ` Nigel Cunningham
2004-08-04 4:52 ` Benjamin Herrenschmidt
2004-08-04 4:54 ` Nigel Cunningham
2004-08-04 5:03 ` Benjamin Herrenschmidt
2004-08-04 5:05 ` Nigel Cunningham
2004-08-05 10:05 ` Nigel Cunningham
2004-08-05 22:31 ` Nigel Cunningham
2004-08-06 0:39 ` Benjamin Herrenschmidt
2004-08-06 21:30 ` Pavel Machek
2004-08-06 21:29 ` Pavel Machek
2004-08-06 22:27 ` Benjamin Herrenschmidt
2004-08-06 22:37 ` Pavel Machek
2004-08-06 21:26 ` Pavel Machek
2004-08-05 1:29 ` David Brownell
2004-08-05 10:19 ` Nigel Cunningham [this message]
2004-08-06 0:32 ` David Brownell
[not found] ` <1091772799.2532.50.camel@laptop.cunninghams>
2004-08-07 22:24 ` David Brownell
2004-08-04 2:56 ` Benjamin Herrenschmidt
2004-08-04 3:30 ` David Brownell
2004-08-04 4:19 ` Benjamin Herrenschmidt
2004-08-04 4:47 ` What PM should be and do (Was Re: Solving suspend-level confusion) Nigel Cunningham
2004-08-04 4:53 ` Benjamin Herrenschmidt
2004-08-04 4:59 ` Nigel Cunningham
2004-08-08 16:54 ` Pavel Machek
2004-08-08 21:55 ` Nigel Cunningham
2004-08-09 8:42 ` Pavel Machek
2004-08-05 18:19 ` Greg KH
2004-08-05 22:14 ` Nigel Cunningham
2004-08-07 0:08 ` Éric Brunet
2004-08-08 19:48 ` Pavel Machek
2004-08-11 21:23 ` Greg KH
2004-08-08 0:54 ` David Brownell
2004-08-06 21:21 ` Solving suspend-level confusion Pavel Machek
2004-07-31 21:09 ` Benjamin Herrenschmidt
2004-08-02 16:40 ` David Brownell
2004-08-03 0:50 ` Benjamin Herrenschmidt
2004-08-07 23:30 ` David Brownell
2004-08-06 21:10 ` Pavel Machek
2004-08-07 23:23 ` David Brownell
2004-08-08 17:16 ` Pavel Machek
2004-08-06 20:04 ` Pavel Machek
2004-08-07 22:14 ` David Brownell
2004-08-07 23:53 ` Benjamin Herrenschmidt
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=1091701150.2964.229.camel@laptop.cunninghams \
--to=ncunningham@linuxmail.org \
--cc=benh@kernel.crashing.org \
--cc=david-b@pacbell.net \
--cc=linux-kernel@vger.kernel.org \
--cc=mochel@digitalimplant.org \
--cc=oliver@neukum.org \
--cc=pavel@suse.cz \
/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