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 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.