linux/drivers/irqchip
Barry Song a87010ef32 irqchip: sirf: set IRQ_LEVEL status_flags
SiRF internal interrupts are using level trigger. we need to tell the irq
core this information. otherwise, we might get some problems as below
1. disable_irq(n)
here irq core will mark the disabled flag but still keep the irq enabled
due to involved lazy-disable
2. doing someting after disable_irq(n)
in step 2, if one interrupt n comes, irq core will mark it as pending and
mask the HW interrupt really. we name the coming interrupt as "X".
3. enable_irq(n)
this will unmask the interrupt, so the level-trigger HW interrupt will come
again, irq_handler will enter as "E1". after that, irq core will also check
whether irq n is pending, if yes, and pending interrupt is not level-trigger,
irq core will execute the pending irq_handler.
so if we don't set the IRQ_LEVEL flag here, irq core will execute pending
X again as "E2", but actually the pending interrupt has been handled by "E1".
that makes a level-trigger HW interrupt is executed twice.

here we fix the issue to avoid redundant interrupt overload.

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Huayi Li <Huayi.Li@csr.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2014-01-08 22:02:14 -08:00
..
exynos-combiner.c irqchip: exynos: cleanup non-DT stuff in exynos-combiner 2013-07-16 12:30:40 +09:00
irq-armada-370-xp.c irqchip: armada-370-xp: implement MSI support 2013-09-30 14:58:12 +00:00
irq-bcm2835.c irqchip: bcm2835: Convert to use IRQCHIP_DECLARE macro 2013-11-07 10:37:37 +01:00
irq-gic.c Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-12-02 10:15:39 -08:00
irq-imgpdc.c irq-imgpdc: add ImgTec PDC irqchip driver 2013-08-21 14:17:56 +01: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-mmp.c irqchip: mmp: avoid to include irqs head file 2013-08-24 17:45:47 +08: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 irqchip: sirf: set IRQ_LEVEL status_flags 2014-01-08 22:02:14 -08: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: vic: Parse interrupt and resume masks from device tree 2013-09-17 06:48:27 +09: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 irq-imgpdc: add ImgTec PDC irqchip driver 2013-08-21 14:17:56 +01:00
Makefile ARM: SoC late changes for v3.12 2013-09-09 16:35:29 -07:00
spear-shirq.c ARM: spear: use common irqchip_init function 2013-01-12 10:52:15 -06:00