• Lorenzo Pieralisi's avatar
    ARM: bL_switcher: add clockevent save/restore support · 3f09d479
    Lorenzo Pieralisi authored
    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: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
    3f09d479
bL_switcher.c 6.95 KB