ARM: bL_switcher: add clockevent save/restore support
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Wed, 16 May 2012 14:55:54 +0000 (15:55 +0100)
committerNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 19 Jun 2013 20:54:19 +0000 (16:54 -0400)
commit729e17e246e9f5c4be105f42291a57d4bdd85f68
tree0c1a06e23cb078e837f93c46a5a06f16fb140715
parentbdabef6198dee2a084e0663532b3729402d14103
ARM: bL_switcher: add clockevent save/restore support

Per-CPU timers that are shutdown when a CPU is switched over must be disabled
upon switching and reprogrammed on the inbound CPU by relying on the
clock events management API. save/restore sequence is executed with irqs
disabled as mandated by the clock events API.

The next_event is an absolute time, hence, when the inbound CPU resumes,
if the timer has expired the min delta is forced into the tick device to
fire after few cycles.

This patch adds switching support for clock events that are per-CPU and
have to be migrated when a switch takes place; the cpumask of the clock
event device is checked against the cpumask of the current cpu, and if
they match, the clockevent device mode is saved and it is put in
shutdown mode. Resume code reprogrammes the tick device accordingly.

Tested on A15/A7 fast models and architected timers.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Nicolas Pitre <nico@linaro.org>
arch/arm/common/bL_switcher.c