linux/drivers/irqchip
Biju Das 853a603030 irqchip/renesas-rzg2l: Prevent spurious interrupts when setting trigger type
RZ/G2L interrupt chips require that the interrupt is masked before changing
the NMI, IRQ, TINT interrupt settings. Aside of that, after setting an edge
trigger type it is required to clear the interrupt status register in order
to avoid spurious interrupts.

The current implementation fails to do either of that and therefore is
prone to generate spurious interrupts when setting the trigger type.

Address this by:

  - Ensuring that the interrupt is masked at the chip level across the
    update for the TINT chip

  - Clearing the interrupt status register after updating the trigger mode
    for edge type interrupts

[ tglx: Massaged changelog and reverted the spin_lock_irqsave() change as
  	the set_type() callback is always called with interrupts disabled. ]

Fixes: 3fed09559c ("irqchip: Add RZ/G2L IA55 Interrupt Controller driver")
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2024-03-18 12:20:01 +01:00
..
alphascale_asm9260-icoll.h
exynos-combiner.c
irq-al-fic.c irqchip/al-fic: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:50 -07:00
irq-alpine-msi.c Merge branch irq/irqdomain-locking into irq/irqchip-next 2023-02-13 19:39:25 +00:00
irq-apple-aic.c ARM: 2023-02-25 11:30:21 -08:00
irq-armada-370-xp.c irqchip: Use irq_domain_alloc_irqs() 2023-01-11 19:51:39 +01:00
irq-aspeed-i2c-ic.c irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value 2022-05-04 16:37:48 +01:00
irq-aspeed-scu-ic.c irqchip/aspeed-scu-ic: Correctly initialise status and enable registers 2023-02-05 10:55:19 +00:00
irq-aspeed-vic.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-ath79-cpu.c
irq-ath79-misc.c
irq-atmel-aic5.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-atmel-aic-common.c
irq-atmel-aic-common.h
irq-atmel-aic.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-bcm2835.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-bcm2836.c irqchip: Use irq_domain_alloc_irqs() 2023-01-11 19:51:39 +01:00
irq-bcm6345-l1.c irqchip/bcm-6345-l1: Prefer struct_size)_ over open coded arithmetic 2024-02-13 10:53:15 +01:00
irq-bcm7038-l1.c irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic 2024-02-13 10:53:15 +01:00
irq-bcm7120-l2.c irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts 2023-02-18 14:23:41 +00:00
irq-brcmstb-l2.c irqchip/irq-brcmstb-l2: Add write memory barrier before exit 2024-02-13 09:33:31 +01:00
irq-clps711x.c irqchip/clps711x: Remove unused clps711x_intc_init() function 2023-06-17 07:21:08 +01:00
irq-crossbar.c
irq-csky-apb-intc.c irqchip: Use of_property_read_bool() for boolean properties 2023-04-08 11:07:49 +01:00
irq-csky-mpintc.c irqchip/csky-mpintc: Fixup mask/unmask implementation 2021-11-12 16:09:50 +00:00
irq-davinci-cp-intc.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-digicolor.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-dw-apb-ictl.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-ftintc010.c irqchip/ftintc010: Mark all function static 2023-06-17 07:20:52 +01:00
irq-gic-common.c irqchip/gic: Correctly validate OF quirk descriptors 2023-05-30 11:01:22 +01:00
irq-gic-common.h irqchip/gic-v3: Enable non-coherent redistributors/ITSes DT probing 2023-10-07 12:47:12 +01:00
irq-gic-pm.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-gic-realview.c irqchip/gic/realview: Fix refcount leak in realview_gic_of_init 2022-06-09 17:36:57 +01:00
irq-gic-v2m.c irqchip: Use of_property_read_bool() for boolean properties 2023-04-08 11:07:49 +01:00
irq-gic-v3-its-fsl-mc-msi.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-gic-v3-its-pci-msi.c PCI/MSI: Make pci_msi_domain_write_msg() static 2021-12-09 11:52:20 +01:00
irq-gic-v3-its-platform-msi.c
irq-gic-v3-its.c Updates for the interrupt subsystem: 2024-03-11 13:50:30 -07:00
irq-gic-v3-mbi.c irqchip/gic-v3-mbi: Use irq_domain_create_hierarchy() 2023-02-13 19:31:25 +00:00
irq-gic-v3.c Updates for the MSI interrupt subsystem and RISC-V initial MSI support: 2024-03-11 14:03:03 -07:00
irq-gic-v4.c sched.h: move pid helpers to pid.h 2023-12-20 19:26:31 -05:00
irq-gic.c irqchip/gic(v3): Replace gic_irq() with irqd_to_hwirq() 2024-01-24 16:02:48 +01:00
irq-goldfish-pic.c
irq-hip04.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-i8259.c irqchipr/i8259: Mark i8259_of_init() static 2023-08-21 17:40:30 +01:00
irq-idt3243x.c
irq-imgpdc.c irqchip/imgpdc: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:09 +01:00
irq-imx-gpcv2.c irqchip/irq-imx-gpcv2: Mark fwnode device as not initialized 2023-02-08 13:37:55 +01:00
irq-imx-intmux.c Updates for the MSI interrupt subsystem and RISC-V initial MSI support: 2024-03-11 14:03:03 -07:00
irq-imx-irqsteer.c irqchip/imx-irqsteer: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:09 +01:00
irq-imx-mu-msi.c irqchip/imx-mu-msi: Do not check for 0 return after calling platform_get_irq() 2023-08-21 17:42:00 +01:00
irq-ingenic-tcu.c irqchip/ingenic-tcu: Use correctly sized arguments for bit field 2021-12-16 15:19:52 +00:00
irq-ingenic.c
irq-ixp4xx.c irq/gpio: ixp4xx: Drop boardfile probe path 2022-04-25 20:53:18 +02:00
irq-jcore-aic.c irqchip/jcore-aic: Fix missing allocation of IRQ descriptors 2023-06-17 07:54:48 +01:00
irq-keystone.c irqchip/keystone: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:09 +01:00
irq-loongarch-cpu.c Merge branch irq/loongarch-of into irq/irqchip-next 2022-12-05 10:45:11 +00:00
irq-loongson-eiointc.c Updates for the interrupt subsystem: 2024-03-11 13:50:30 -07:00
irq-loongson-htpic.c
irq-loongson-htvec.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-loongson-liointc.c irqchip/loongson-liointc: Add IRQCHIP_SKIP_SET_WAKE flag 2023-06-16 12:59:28 +01:00
irq-loongson-pch-lpc.c irqchip/loongson-pch-lpc: Add suspend/resume support 2022-11-26 13:12:13 +00:00
irq-loongson-pch-msi.c irqchip/loongson-pch-msi: Use irq_domain_create_hierarchy() 2023-02-13 19:31:25 +00:00
irq-loongson-pch-pic.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-lpc32xx.c irqchip/lpc32xx: Switch to dynamic chip name output 2022-02-15 11:25:46 +00:00
irq-ls1x.c
irq-ls-extirq.c irqchip/ls-extirq: Fix endianness detection 2022-12-05 10:39:52 +00:00
irq-ls-scfg-msi.c irqchip/ls-scfg-msi: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:10 +01:00
irq-madera.c irqchip/madera: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:10 +01:00
irq-mbigen.c irqchip/mbigen: Don't use bus_get_dev_root() to find the parent 2024-02-21 18:40:00 +01:00
irq-mchp-eic.c irqchip/mchp-eic: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:52 -07:00
irq-meson-gpio.c irqchip/meson-gpio: Add support for Amlogic-T7 SoCs 2024-02-22 18:04:42 +01:00
irq-mips-cpu.c
irq-mips-gic.c irqchip/mips-gic: Mark gic_irq_domain_free() static 2023-08-21 17:40:20 +01:00
irq-mmp.c irqchip/mmp: Remove non-DT codepath 2023-06-17 07:21:02 +01:00
irq-mscc-ocelot.c
irq-mst-intc.c
irq-mtk-cirq.c irqchip/irq-mtk-cirq: Add support for System CIRQ on MT8192 2022-11-28 11:44:02 +00:00
irq-mtk-sysirq.c irqchip/mtk-sysirq: Skip setting irq-wake 2021-08-12 08:15:15 +01:00
irq-mvebu-gicp.c irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe 2023-02-05 11:11:24 +00:00
irq-mvebu-icu.c irqchip/irq-mvebu-icu: Fix works by chance pointer assignment 2022-12-06 12:50:17 +01:00
irq-mvebu-odmi.c irqchip/mvebu-odmi: Use irq_domain_create_hierarchy() 2023-02-13 19:31:25 +00:00
irq-mvebu-pic.c irqchip/mvebu-pic: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:10 +01:00
irq-mvebu-sei.c irqchip/irq-mvebu-sei: Use devm_platform_get_and_ioremap_resource() 2023-08-21 17:49:11 +01:00
irq-mxs.c Revert "irqchip/mxs: Include linux/irqchip/mxs.h" 2023-06-21 13:50:53 +01:00
irq-nvic.c ARM development updates for 5.18: 2022-03-23 17:35:57 -07:00
irq-omap-intc.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-ompic.c
irq-or1k-pic.c irqchip: or1k-pic: Undefine mask_ack for level triggered hardware 2022-06-28 17:31:15 +09:00
irq-orion.c irqchip/orion: Use of_address_count() helper 2023-08-21 17:48:59 +01:00
irq-owl-sirq.c
irq-partition-percpu.c
irq-pic32-evic.c
irq-pruss-intc.c irqchip/pruss-intc: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:10 +01:00
irq-qcom-mpm.c irqchip/qcom-mpm: Fix IS_ERR() vs NULL check in qcom_mpm_init() 2024-02-13 10:26:15 +01:00
irq-rda-intc.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-realtek-rtl.c irqchip/realtek-rtl: use parent interrupts 2022-09-28 14:17:10 +01:00
irq-renesas-intc-irqpin.c irqchip/renesas-intc-irqpin: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:10 +01:00
irq-renesas-irqc.c irqchip/renesas-irqc: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:10 +01:00
irq-renesas-rza1.c irqchip/renesas-rza1: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:10 +01:00
irq-renesas-rzg2l.c irqchip/renesas-rzg2l: Prevent spurious interrupts when setting trigger type 2024-03-18 12:20:01 +01:00
irq-riscv-intc.c irqchip/riscv-intc: Fix use of AIA interrupts 32-63 on riscv32 2024-03-15 15:27:02 +01:00
irq-sa11x0.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-sifive-plic.c Updates for the MSI interrupt subsystem and RISC-V initial MSI support: 2024-03-11 14:03:03 -07:00
irq-sl28cpld.c irqchip/irq-sl28cpld: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
irq-sni-exiu.c irqchip/exiu: Fix acknowledgment of edge triggered interrupts 2022-05-04 16:33:17 +01:00
irq-sp7021-intc.c irqchip: Add Sunplus SP7021 interrupt controller driver 2022-07-08 14:23:57 +02:00
irq-st.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-starfive-jh8100-intc.c irqchip: Add StarFive external interrupt controller 2024-02-26 15:09:18 +01:00
irq-stm32-exti.c irqchip/stm32-exti: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:10 +01:00
irq-sun4i.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-sun6i-r.c irqchip/sun6i-r: Use NULL for chip_data 2022-05-04 16:36:59 +01:00
irq-sunxi-nmi.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-tb10x.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-tegra.c irqchip/tegra: Fix overflow implicit truncation warnings 2022-06-15 17:41:11 +02:00
irq-ti-sci-inta.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-ti-sci-intr.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-ts4800.c irqchip/ts4800: Convert to platform_driver::remove_new() callback 2024-02-27 18:12:11 +01:00
irq-uniphier-aidet.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-versatile-fpga.c irqchip: irq-versatile-fpga: remove obsolete oxnas compatible 2023-08-14 10:26:56 +02:00
irq-vf610-mscm-ir.c
irq-vic.c irqchip/vic: Fix a kernel-doc warning 2024-02-21 18:31:08 +01:00
irq-vt8500.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-wpcm450-aic.c irqchip/wpcm450: Fix memory leak in wpcm450_aic_of_init() 2022-11-26 13:29:48 +00:00
irq-xilinx-intc.c irqchip/xilinx: Switch to GENERIC_IRQ_MULTI_HANDLER 2022-03-04 14:32:57 +00:00
irq-xtensa-mx.c irqchip: irq-xtensa-mx: include header for missing prototype 2023-09-20 05:03:20 -07:00
irq-xtensa-pic.c irqchip/irq-xtensa-pic: Clean up 2023-12-12 15:45:39 +01:00
irq-zevio.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irqchip.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
Kconfig irqchip: Add StarFive external interrupt controller 2024-02-26 15:09:18 +01:00
Makefile irqchip: Add StarFive external interrupt controller 2024-02-26 15:09:18 +01:00
qcom-irq-combiner.c
qcom-pdc.c irqchip/qcom-pdc: Add support for v3.2 HW 2023-09-12 13:38:08 +01:00
spear-shirq.c irqchip/spear-shirq: Add support for IRQ 0..6 2021-12-16 13:29:44 +00:00