Messages in this thread | | | From | Oliver Neukum <> | Subject | Re: [patch update] Re: [linux-pm] Run-time PM idea (was: Re: [RFC][PATCH 0/2] PM: Rearrange core suspend code) | Date | Thu, 11 Jun 2009 11:08:40 +0200 |
| |
Am Donnerstag, 11. Juni 2009 07:18:46 schrieb Magnus Damm: > 3) When all devices in the power domain are suspended the bus code can > turn off the power. The reason why I'd like to only autosuspend when
So you are saying that you have power dependencies independent of the device tree?
> all devices are idle is simply that we don't get any power savings > from the per device autosuspend() callbacks, only from turning off > power to the entire per-domain. So bindly autosuspending and > autoresuming devices is just pure overhead unless we know we can do it > for all devices in the domain.
Why can't you do this within the framework? You simply suspend when all a domain's devices have been autosuspended. I suppose we could have a helper.
int pm_autosuspend_in_domain(struct device *dev) { int err;
mutex_lock(dev->power_domain); if (! --dev->power_domain.active_devices) err = dev->power_domain->power_down(dev->power_domain); else err = 0; mutex_unlock(dev->power_domain);
return err; }
Regards Oliver
| |