[linux-pm] Some thoughts on suspend/resume development

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2005-03-10 at 11:28 -0500, Alan Stern wrote:
> On Wed, 9 Mar 2005, Adam Belay wrote:
> 
> > > This partly a question of definitions and usage.  However, if a parent's 
> > > change of state can be made transparent to the child device driver (i.e., 
> > > the parent resumes automatically whenever the child driver tries to do 
> > > anything), then why shouldn't the parent suspend itself without suspending 
> > > the child?
> > 
> > I think your not drawing a distinction between physical and logical
> > (class) devices.  A physical device can be turned off, but the logical
> > child device is allowed to remain on.  However, A physical child to a
> > physical device must be powered off before the parent.  Perhaps this was
> > your intention?
> 
> Normally yes, I agree, we will want to suspend children before parents.  
> But your argument isn't valid; a physical child to a physical device might
> very well have its own external power supply.  Then it wouldn't be
> necessary for the child to be off at the time the parent is turned off.  
> Consider a USB disk drive as an example.  If it plugs into the wall then 
> it doesn't need to be spun down when its USB hub is suspended.
> 
> Of course if you want to power down both devices, then certainly the child 
> should be turned off first.
> 
> Alan Stern

This is why I'm in favor of power domains (power parents and children
that can be independent of physical device relations).  Power domains
are common for internal devices, not just external devices.  Still, if
you disable a physical parent, then the device is no longer operational.
Disable the usb host controller, and the external disk drive cannot be
used (in fact data may be lost).  So it's necessary to stop every child
device first, and generally also power it off if we can control the
power source.

Adam

-- 
Adam Belay <amb@xxxxxxxxxx>


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux