ARM: gic: add CPU migration support
authorNicolas Pitre <nicolas.pitre@linaro.org>
Thu, 12 Apr 2012 05:40:31 +0000 (01:40 -0400)
committerNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 19 Jun 2013 20:43:43 +0000 (16:43 -0400)
commitd844e2c88cee59c8cc403dc7e6be8096e304ebfa
tree05f941e3ed8fcec8fc3980537821f15685e208f5
parent7d132055814ef17a6c7b69f342244c410a5e000f
ARM: gic: add CPU migration support

This is required by the big.LITTLE switcher code.

The gic_migrate_target() changes the CPU interface mapping for the
current CPU to redirect SGIs to the specified interface, and it also
updates the target CPU for each interrupts to that CPU interface
if they were targeting the current interface.  Finally, pending
SGIs for the current CPU are forwarded to the new interface.

Because Linux does not use it, the SGI source information for the
forwarded SGIs is not preserved.  Neither is the source information
for the SGIs sent by the current CPU to other CPUs adjusted to match
the new CPU interface mapping.  The required registers are banked so
only the target CPU could do it.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
drivers/irqchip/irq-gic.c
include/linux/irqchip/arm-gic.h