#4606 NORM Never A: XO can't resume from suspend at a particular time set by software
Zarro Boogs per Child
bugtracker at laptop.org
Fri Nov 2 04:16:57 EDT 2007
#4606: XO can't resume from suspend at a particular time set by software
----------------------+-----------------------------------------------------
Reporter: gnu | Owner: wad
Type: defect | Status: new
Priority: normal | Milestone: Never Assigned
Component: hardware | Version:
Keywords: power | Verified: 0
----------------------+-----------------------------------------------------
The XO hardware doesn't have a wakeup source with more than 1-second
granularity or resolution. If the CPU wishes to suspend for 0.568
seconds, it can't. Much worse is that it can't suspend for 3 seconds
either; the only way it can resume is on exact 1-second boundaries in the
realtime clock (not 1 second boundaries from "now"). It can't even read
out sub-second times from the RTC to figure out when the RTC will tick
over to the next second.
There are tricks that we could play in the 5536 if we can reuse one or two
pins to use a MFGPT to trigger a wakeup. Probably the easiest
circumvention is to ask the EC to wake us up after so many milliseconds;
its meter is running all the time, even when we're in suspend. Seems like
a simple request, but as Jordan says, "nobody in x86 land has ever needed
to do anything more drastic than" waking up on 1-second boundaries before.
They probably thought their "alarm clock" was pretty cool for being able
to wake up on any specified second, rather than just at an HH:MM time.
This limits what we can do for automatic suspend, since we would have to
wake up the CPU most of a second before it's needed -- perhaps more than a
second early, if kernel code that uses better timers isn't keeping track
of how much the RTC has drifted against the system clock.
There's a possibly related bug #3359 (we lose up to a second in Unix's
idea of what the time is, whenever we suspend). The bug has a very
misleading title about network time servers, but the real bug is that the
clock shouldn't lose time when we suspend.
--
Ticket URL: <http://dev.laptop.org/ticket/4606>
One Laptop Per Child <http://dev.laptop.org>
OLPC bug tracking system
More information about the Bugs
mailing list