Re: System sleep vs. runtime PM

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

 



On Thu, 3 Dec 2009, Oliver Neukum wrote:

> Am Donnerstag, 3. Dezember 2009 20:52:15 schrieb Alan Stern:
> 
> > That's not necessarily so.  If remote wakeup is disabled at a device
> > between the CPU and the source device, then wakeup events are indeed
> > allowed to get lost.  For example, even though a USB hub may be enabled
> > for remote wakeup, if its host controller isn't then a wakeup event
> > won't generate an IRQ and so won't awaken the system.  And in fact this
> > behavior may be desired by the user.  After all, who would want their
> > laptop to wake up merely because a USB mouse was unplugged?
> 
> That is no problem while the system is asleep. It is no good once the system
> wakes up.

Of course.  That's part of the reason why we will have two separate
controls for remote wakeup: one for runtime PM and one for system
sleep.

> > >  But the core doesn't
> > > know specifics. Unless you really want to overengineer this and compute
> > > the reliability of each path, resuming only those whose drivers have
> > > requested that remote wakeup be enabled is the best you can do.
> > 
> > Isn't that what I agreed drivers should do?
> 
> If the algorithm is clear and based only on remote wakeup, why
> would you want to involve drivers?

1: This criterion is based only on remote wakeup, but others aren't.  
There were two other criteria I mentioned in an earlier email message 
(power-up needed to change wakeup settings, usage count > 1).

2: The core can't make the decision about whether to power-up a device.  
All it can do is notify drivers that the system sleep is over; the 
decision about what to do then is up to the drivers.

> I am afraid we are having a misunderstanding. Could you elaborate?

In a nutshell:  The PM core _has_ to call thaw and resume methods; 
otherwise drivers won't know the system sleep is over.  The question is 
what those methods should do if the device was runtime-suspended before 
the sleep began.  Should they power-up the device (and somehow change 
its runtime_status)?  Or should they leave it powered down?

I tried to list conditions under which a driver would have to power-up 
the device.  If none of the conditions hold then the device may remain 
powered down.

Alan Stern

_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm

[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