linux/drivers/irqchip
Jon Hunter 4c2880b31c irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance
Commit 3228950621 ("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>
2015-08-04 14:14:06 +02:00
..
exynos-combiner.c drivers/irqchip: Replace pr_warning by pr_warn 2015-07-22 18:37:42 +02:00
irq-armada-370-xp.c irqchip: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc 2015-07-11 23:14:27 +02:00
irq-atmel-aic-common.c irqchip: atmel-aic-common: Prevent clobbering of priority when changing IRQ type 2015-01-07 12:41:45 +00:00
irq-atmel-aic-common.h irqchip: atmel-aic: Add irq fixup for RTT block 2014-11-09 04:36:38 +00:00
irq-atmel-aic.c irqchip: Appropriate __init annotation for const data 2015-07-27 08:09:38 +02:00
irq-atmel-aic5.c irqchip: Appropriate __init annotation for const data 2015-07-27 08:09:38 +02:00
irq-bcm2835.c irqchip: Appropriate __init annotation for const data 2015-07-27 08:09:38 +02:00
irq-bcm7038-l1.c irqchip/bcm7038-l1: Consolidate chained IRQ handler install/remove 2015-07-11 23:14:25 +02:00
irq-bcm7120-l2.c irqchip/bcm7120-l2: Fix interrupt status for multiple parent IRQs 2015-07-27 08:09:38 +02:00
irq-brcmstb-l2.c irqchip/brcmstb-l2: Prepare brcmstb_l2_intc_irq_handle for irq argument removal 2015-07-16 22:53:22 +02:00
irq-clps711x.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-crossbar.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-digicolor.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-dw-apb-ictl.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-gic-common.c irqchip: gic: Simplify gic_configure_irq by using IRQCHIP_SET_TYPE_MASKED 2015-06-05 22:26:33 +02:00
irq-gic-common.h irqchip: gic: Allow interrupt level to be set for PPIs 2015-01-26 11:38:23 +01:00
irq-gic-v2m.c irqchip/GICv2m: Add platform MSI support 2015-07-30 00:14:39 +02:00
irq-gic-v3-its-pci-msi.c irqchip/gicv3-its: Make the PCI/MSI code standalone 2015-07-30 00:14:38 +02:00
irq-gic-v3-its-platform-msi.c irqchip/gicv3-its: Add platform MSI support 2015-07-30 00:14:38 +02:00
irq-gic-v3-its.c irqchip/gicv3-its: Make the PCI/MSI code standalone 2015-07-30 00:14:38 +02:00
irq-gic-v3.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-gic.c irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance 2015-08-04 14:14:06 +02:00
irq-hip04.c irqchip/gic: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND 2015-07-27 08:09:37 +02:00
irq-i8259.c irqchip/i8259: Prepare i8259_irq_dispatch for irq argument removal 2015-07-31 22:20:04 +02:00
irq-imgpdc.c irqchip/imgpdc: Prepare pdc_intc_perip_isr for irq argument removal 2015-07-16 22:53:22 +02:00
irq-ingenic.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-keystone.c irqchip/keystone: Prepare keystone_irq_handler for irq argument removal 2015-07-16 22:53:22 +02:00
irq-metag-ext.c irqchip/metag-ext: Use irq_set_chip_handler_name_locked() 2015-07-12 09:39:11 +02:00
irq-metag.c irqchip/metag: Consolidate chained IRQ handler install/remove 2015-07-11 23:14:26 +02:00
irq-mips-cpu.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-mips-gic.c Merge branch 'linus' into irq/core 2015-07-30 00:13:24 +02:00
irq-mmp.c irqchip/mmp: Prepare icu_mux_irq_demux for irq argument removal 2015-07-16 22:53:22 +02:00
irq-moxart.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-mtk-sysirq.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-mxs.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-nvic.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-omap-intc.c irqchip: omap-intc: Improve IRQ handler 2015-07-22 18:37:42 +02:00
irq-or1k-pic.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-orion.c irqchip: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc 2015-07-11 23:14:27 +02:00
irq-renesas-h8s.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-renesas-h8300h.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-renesas-intc-irqpin.c irqchip: Constify irq_domain_ops 2015-05-05 10:45:58 +02:00
irq-renesas-irqc.c irqchip/renesas-irqc: Make use of irq_find_mapping() 2015-07-20 13:19:00 +02:00
irq-s3c24xx.c irqchip/s3c24xx: Prepare s3c_irq_demux for irq argument removal 2015-07-16 22:53:22 +02:00
irq-sa11x0.c Merge branch 'sa1100' into for-next 2015-06-12 21:18:13 +01:00
irq-sirfsoc.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-st.c irqchip: st: Supply new driver for STi based devices 2015-03-03 19:48:53 +00:00
irq-sun4i.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-sunxi-nmi.c irqchip: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc 2015-07-11 23:14:27 +02:00
irq-tb10x.c irqchip/tb10x: Prepare tb10x_irq_cascade for irq argument removal 2015-07-16 22:53:22 +02:00
irq-tegra.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-versatile-fpga.c irqchip/versatile-fpga: Prepare fpga_irq_handle for irq argument removal 2015-07-16 22:53:23 +02:00
irq-vf610-mscm-ir.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-vic.c irqchip/vic: Consolidate chained IRQ handler install/remove 2015-07-11 23:14:27 +02:00
irq-vt8500.c irqchip/vt8500: Use irq_set_handler_locked() 2015-07-12 09:37:47 +02:00
irq-xtensa-mx.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-xtensa-pic.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irq-zevio.c irqchip: Prepare for local stub header removal 2015-07-11 23:14:23 +02:00
irqchip.c irqchip: Add GICv2 specific ACPI boot support 2015-03-26 15:13:07 +00:00
Kconfig MIPS/irqchip: Move i8259 irqchip driver to drivers/irqchip 2015-07-31 22:04:49 +02:00
Makefile MIPS/irqchip: Move i8259 irqchip driver to drivers/irqchip 2015-07-31 22:04:49 +02:00
spear-shirq.c Merge branch 'linus' into irq/core 2015-07-30 00:13:24 +02:00