Re: [RFD] Automatic suspend

Arve Hjønnevåg
2009-02-27T22:09:12Z

On Fri, Feb 27, 2009 at 12:54 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> On Friday 27 February 2009, Matthew Garrett wrote:
>> On Fri, Feb 27, 2009 at 03:22:39PM +0100, Rafael J. Wysocki wrote:
>> > On Friday 27 February 2009, Pavel Machek wrote:
>> > > Wakelocks done right are single atomic_t... and if you set it to 0,
>> > > you just unblock "sleeper" thread or something. Zero polling and very
>> > > simple...
>> >
>> > Except that you have to check all of the wakelocks periodically in a loop =>
>> > polling.  So?
>>
>> Why do you need to check them? If you're taking this approach you just
>> have something like:
>>
>> suspend_unblock() {
>>       if (atomc_dec_and_test(&suspend_lock))
>>               suspend();
>> }
>>
>> and then check that the lock count is still 0 after device_suspend().
>> There's no need to poll.
>
> I was talking about wakelocks as originally proposed.

Can you be more specific? My wakelock implementation triggers suspend
when the active list becomes empty. No polling required.

--
Arve Hjønnevåg