irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance
authorJon Hunter <jonathanh@nvidia.com>
Fri, 31 Jul 2015 08:44:12 +0000 (09:44 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 4 Aug 2015 12:14:06 +0000 (14:14 +0200)
commit4c2880b31c700b03f3f115b5ca64be615783aa9c
tree08b1c3c680db1324cf0700f87e852f648de93520
parent567e5a014848c6aeb1d6fc862b1b5d0183760259
irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance

Commit 3228950621d9 ("irqchip: gic: Preserve gic V2 bypass bits in cpu
ctrl register") added a new function, gic_cpu_if_up(), to program the
GIC CPU_CTRL register. This function assumes that there is only one GIC
instance present and hence always uses the chip data for the primary GIC
controller. Although it is not common for there to be a secondary, some
devices do support a secondary. Therefore, fix this by passing
gic_cpu_if_up() a pointer to the appropriate chip data structure.

Similarly, the function gic_cpu_if_down() only assumes that there is a
single GIC instance present. Update this function so that an instance
number is passed for the appropriate GIC and return an error code on
failure. The vexpress TC2 (which has a single GIC) is currently the only
user of this function and so update it accordingly. Note that because the
TC2 only has a single GIC, the call to gic_cpu_if_down() should always
be successful.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: <linux-arm-kernel@lists.infradead.org>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: Jason Cooper <jason@lakedaemon.net>
Link: http://lkml.kernel.org/r/1438332252-25248-2-git-send-email-jonathanh@nvidia.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/arm/mach-vexpress/tc2_pm.c
drivers/irqchip/irq-gic.c
include/linux/irqchip/arm-gic.h