linux/drivers/irqchip
Nicolas Pitre 10d9eb8a17 drivers: irq-chip: irq-gic: introduce gic_cpu_if_down()
When processors are about to hit low power states, the assertion of
standbywfi signal, triggered by the wfi instruction, is essential to
entering low power modes. If an IRQ is pending on the processor at the
time wfi is issued, the wfi instruction completes and the processor
restarts execution without asserting the standbywfi signal. Depending
on the platform power controller HW this behaviour can be acceptable or
not; if this behaviour must be prevented software should be provided
with a way to disable the routing of interrupts to the core IRQ pins.

On systems where raw GIC distributor interrupts are connected to the power
controller as wake-up events (hence the power controller still senses
IRQs and can wake up cores upon IRQ pending), the GIC CPU interface can
be disabled on power down, so that the GIC CPU IF output is gated and wfi
cannot complete, thereby preventing the standbywfi issue.

This patch adds a simple function to the GIC driver that allows to
disable the GIC CPU IF from power down procedures.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
[rewrote commit log]

Signed-off-by: Olof Johansson <olof@lixom.net>
2013-08-28 11:28:43 -07:00
..
exynos-combiner.c irqchip: exynos-combiner: Staticize combiner_init 2013-06-28 12:56:03 +02:00
irq-armada-370-xp.c ARM: arm-soc: late cleanups 2013-05-07 11:22:14 -07:00
irq-bcm2835.c irqchip: irq-bcm2835: Add terminating entry for of_device_id table 2012-11-06 07:37:10 -08:00
irq-gic.c drivers: irq-chip: irq-gic: introduce gic_cpu_if_down() 2013-08-28 11:28:43 -07:00
irq-metag-ext.c metag: Internal and external irqchips 2013-03-02 20:09:48 +00:00
irq-metag.c metag: Internal and external irqchips 2013-03-02 20:09:48 +00:00
irq-moxart.c irqchip: Add support for MOXA ART SoCs 2013-07-05 11:39:25 +02:00
irq-mxs.c ARM: mxs: icoll: Fix interrupts gpio bank 0 2013-06-03 23:18:15 +08:00
irq-nvic.c irqchip: nvic: Fix wrong num_ct argument for irq_alloc_domain_generic_chips() 2013-07-05 11:39:24 +02:00
irq-orion.c irqchip: Add support for Marvell Orion SoCs 2013-06-11 16:18:50 +02:00
irq-renesas-intc-irqpin.c ARM: shmobile: irqpin: add a DT property to enable masking on parent 2013-06-19 21:27:31 +09:00
irq-renesas-irqc.c irqchip: renesas-irqc: Fix irqc_probe error handling 2013-06-06 10:23:58 +09:00
irq-s3c24xx.c ARM: arm-soc driver changes for 3.10 2013-05-04 12:31:18 -07:00
irq-sirfsoc.c ARM: sirf: move irq driver to drivers/irqchip 2013-03-25 12:29:39 +01:00
irq-sun4i.c irqchip: sun4i: Staticize sun4i_irq_ack() 2013-07-05 11:39:24 +02:00
irq-tb10x.c irqchip: Add TB10x interrupt controller driver 2013-06-25 18:54:21 +02:00
irq-versatile-fpga.c irqchip: Return -EPERM for reserved IRQs 2013-06-08 21:34:16 +01:00
irq-vic.c irqchip: Return -EPERM for reserved IRQs 2013-06-08 21:34:16 +01:00
irq-vt8500.c irqchip: vt8500: Staticize local symbols 2013-07-05 11:39:24 +02:00
irqchip.c irqchip: add basic infrastructure 2013-01-10 11:44:38 -06:00
irqchip.h irqchip: add basic infrastructure 2013-01-10 11:44:38 -06:00
Kconfig irqchip: Add support for ARMv7-M NVIC 2013-06-26 11:29:38 +02:00
Makefile irqchip: Add support for MOXA ART SoCs 2013-07-05 11:39:25 +02:00
spear-shirq.c ARM: spear: use common irqchip_init function 2013-01-12 10:52:15 -06:00