clockevents: make device shutdown robust
authorThomas Gleixner <tglx@linutronix.de>
Tue, 16 Sep 2008 18:32:50 +0000 (11:32 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 16 Sep 2008 20:47:02 +0000 (13:47 -0700)
commit2344abbcbdb82140050e8be29d3d55e4f6fe860b
tree46c1842fc2a47aa4d7ee0c2c558f54bc50772b69
parentf1926ce63b996b42772b39e4b47bb4ef4ba748b4
clockevents: make device shutdown robust

The device shut down does not cleanup the next_event variable of the
clock event device. So when the device is reactivated the possible
stale next_event value can prevent the device to be reprogrammed as it
claims to wait on a event already.

This is the root cause of the resurfacing suspend/resume problem,
where systems need key press to come back to life.

Fix this by setting next_event to KTIME_MAX when the device is shut
down. Use a separate function for shutdown which takes care of that
and only keep the direct set mode call in the broadcast code, where we
can not touch the next_event value.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/time/clockevents.c
kernel/time/tick-broadcast.c
kernel/time/tick-common.c
kernel/time/tick-internal.h