ARM: 7444/1: kernel: add arch-timer C3STOP feature
authorLorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>
Fri, 6 Jul 2012 10:06:49 +0000 (11:06 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 9 Jul 2012 16:41:09 +0000 (17:41 +0100)
commit27a5569dc66ecce06cb532542ddcd0b6da8783f6
tree750cb3584ca6e85ec284db746ecb724786e7637a
parenta5203c4ce6750730b1d95a8bc1e8214765450f7e
ARM: 7444/1: kernel: add arch-timer C3STOP feature

When a CPU is shutdown its architected timer comparators registers are
lost. Within CPU idle, before processors enter shutdown they enter
clock events broadcast mode through the

clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, cpuid);

function where the local timers are emulated by a global always-on timer.
On CPU resume, the per-CPU tick device normal mode is restored by exiting
broadcast mode through

clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, cpuid);

In order for this mechanism to function, architected timers should add to
their feature C3STOP, which means that they are not able to function when the
CPU is in off-mode.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/arch_timer.c