On Wed, 2004-11-03 at 19:31 -0700, David Brownell wrote: > On Wednesday 03 November 2004 16:22, Benjamin Herrenschmidt wrote: > > On Thu, 2004-11-04 at 01:22 +0100, Pavel Machek wrote: > > > [Hmm, and in_suspend() is probably better name, consistent with > > > in_atomic() and in_interrupt().] > > > > Yah. > > I posted a sketch of how to do subtree suspends a while back, > which had the nice side consequence that this would work: > > static inline int in_suspend(struct device *dev) > { > return !list_empty(&dev->power.entry); > } > > Actually, we should need only one function for in_suspend() > and in_resume(). > > I hope that nobody's assuming devices only suspend as part of > system sleep state transitions ... one device tree might be > suspending while another (or its parent!) is fully active... Yes, but as far as I'm concerned, in_suspend() should be in_system_suspend() (same for resume) and I think we shouldn't rely on the lists. For example, on STD, we should have in_system_suspend() return 1 when the processes have been put in the refrigerator, that is before we start walking the device-tree. Ben.