linux/drivers/irqchip
Nick Chan a845342e6e irqchip/apple-aic: Add a new "Global fast IPIs only" feature level
Starting with the A11 (T8015) SoC, Apple began using arm64 sysregs for
fast IPIs. However, on A11, there is no such things as "Local" fast IPIs,
as the SYS_IMP_APL_IPI_RR_LOCAL_EL1 register does not seem to exist.

Add a new feature level, used by the compatible "apple,t8015-aic",
controlled by a static branch key named use_local_fast_ipi. When
use_fast_ipi is true and use_local_fast_ipi is false, fast IPIs are used
but all IPIs goes through the register SYS_IMP_APL_IPI_RR_GLOBAL_EL1, as
"global" IPIs.

Signed-off-by: Nick Chan <towinchenmi@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Sven Peter <sven@svenpeter.dev>
Link: https://lore.kernel.org/all/20240901034143.12731-4-towinchenmi@gmail.com
2024-09-04 20:43:30 +02: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 irqchip/alpine-msi: Fix off-by-one in allocation error path 2024-04-09 11:03:15 +02:00
irq-apple-aic.c irqchip/apple-aic: Add a new "Global fast IPIs only" feature level 2024-09-04 20:43:30 +02:00
irq-armada-370-xp.c irqchip/armada-370-xp: Use mpic_is_ipi_available() in mpic_of_init() 2024-08-08 17:15:01 +02: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-ath79-cpu.c
irq-ath79-misc.c
irq-atmel-aic-common.c of: remove internal arguments from of_property_for_each_u32() 2024-07-25 06:53:47 -05:00
irq-atmel-aic-common.h
irq-atmel-aic.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-atmel-aic5.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-bcm2835.c irqchip/bcm2835: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND 2024-07-15 15:13:55 +02:00
irq-bcm2836.c irqchip: Use irq_domain_alloc_irqs() 2023-01-11 19:51:39 +01:00
irq-bcm6345-l1.c irqchip/irq-bcm6345-l1: Avoid explicit cpumask allocation on stack 2024-04-24 21:23:49 +02: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: Avoid saving mask on shutdown 2024-04-24 21:11:48 +02:00
irq-clps711x.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02: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
irq-davinci-cp-intc.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-digicolor.c
irq-dw-apb-ictl.c Revert "irqchip/dw-apb-ictl: Support building as module" 2024-06-25 21:30:48 +02:00
irq-ftintc010.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-gic-common.c irqchip/gic-v3: Make distributor priorities variables 2024-06-24 18:16:44 +01:00
irq-gic-common.h Switch ARM/ARM64 over to the modern per device MSI domains: 2024-07-22 14:02:19 -07: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/gic-v2m: Switch to device MSI 2024-07-18 20:31:20 +02: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-msi-parent.c irqchip/gic-v3-its: Correctly fish out the DID for platform MSI 2024-07-18 20:34:46 +02:00
irq-gic-v3-its.c Switch ARM/ARM64 over to the modern per device MSI domains: 2024-07-22 14:02:19 -07:00
irq-gic-v3-mbi.c irqchip/gic_v3_mbi: Switch over to parent domain 2024-07-18 20:31:20 +02:00
irq-gic-v3.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-gic-v4.c irqchip/gic-v4.1: Replace bare number with ID_AA64PFR0_EL1_GIC_V4P1 2024-08-02 14:54:25 +02:00
irq-gic.c irqchip/gic-v3: Make distributor priorities variables 2024-06-24 18:16:44 +01:00
irq-goldfish-pic.c
irq-hip04.c irqchip/gic-v3: Make distributor priorities variables 2024-06-24 18:16:44 +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: Handle runtime power management correctly 2024-07-15 15:13:56 +02:00
irq-imx-mu-msi.c irqchip/imx-mu-msi: Switch to MSI parent 2024-07-18 20:31:20 +02:00
irq-ingenic-tcu.c
irq-ingenic.c
irq-ixp4xx.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +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-lan966x-oic.c irqchip: Add support for LAN966x OIC 2024-06-17 15:48:15 +02:00
irq-loongarch-avec.c irqchip/loongarch-avec: Add AVEC irqchip support 2024-08-23 20:40:27 +02:00
irq-loongarch-cpu.c irqchip/loongarch-avec: Add AVEC irqchip support 2024-08-23 20:40:27 +02:00
irq-loongson-eiointc.c irqchip/loongarch-avec: Add AVEC irqchip support 2024-08-23 20:40:27 +02:00
irq-loongson-htpic.c
irq-loongson-htvec.c LoongArch: Move irqchip function prototypes to irq-loongson.h 2024-08-23 20:40:27 +02:00
irq-loongson-liointc.c LoongArch: Move irqchip function prototypes to irq-loongson.h 2024-08-23 20:40:27 +02:00
irq-loongson-pch-lpc.c LoongArch: Move irqchip function prototypes to irq-loongson.h 2024-08-23 20:40:27 +02:00
irq-loongson-pch-msi.c irqchip/loongarch-avec: Add AVEC irqchip support 2024-08-23 20:40:27 +02:00
irq-loongson-pch-pic.c LoongArch: Move irqchip function prototypes to irq-loongson.h 2024-08-23 20:40:27 +02:00
irq-loongson.h irqchip/loongarch-avec: Add AVEC irqchip support 2024-08-23 20:40:27 +02:00
irq-lpc32xx.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-ls1x.c
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: Simplify code logic with for_each_child_of_node_scoped() 2024-08-08 17:15:01 +02: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: Add missing MODULE_DESCRIPTION() macros 2024-06-23 17:23:08 +02: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-msi-lib.c irqchip/imx-mu-msi: Switch to MSI parent 2024-07-18 20:31:20 +02:00
irq-msi-lib.h irqchip/irq-msi-lib: Prepare for DEVICE MSI to replace platform MSI 2024-07-18 20:31:20 +02:00
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
irq-mvebu-gicp.c irqchip/mvebu-gicp: Switch to MSI parent 2024-07-18 20:31:20 +02:00
irq-mvebu-icu.c irqchip/irq-mvebu-icu: Remove platform MSI leftovers 2024-07-18 20:31:21 +02:00
irq-mvebu-odmi.c irqchip/mvebu-odmi: Switch to parent MSI 2024-07-18 20:31:21 +02:00
irq-mvebu-pic.c irqchip: Add missing MODULE_DESCRIPTION() macros 2024-06-23 17:23:08 +02:00
irq-mvebu-sei.c irqchip/irq-mvebu-sei: Switch to MSI parent 2024-07-18 20:31:21 +02:00
irq-mxs.c irqchip/mxs: Declare icoll_handle_irq() as static 2024-04-23 00:28:14 +02:00
irq-nvic.c ARM development updates for 5.18: 2022-03-23 17:35:57 -07:00
irq-omap-intc.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02: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 of: remove internal arguments from of_property_for_each_u32() 2024-07-25 06:53:47 -05:00
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-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: Reorder function calls in rzg2l_irqc_irq_disable() 2024-06-23 17:23:08 +02:00
irq-riscv-aplic-direct.c irqchip/riscv-aplic-direct: Avoid explicit cpumask allocation on stack 2024-04-24 21:23:49 +02:00
irq-riscv-aplic-main.c irqchip/riscv-aplic: Simplify the initialization code 2024-06-23 19:09:14 +02:00
irq-riscv-aplic-main.h irqchip/riscv-aplic: Add support for MSI-mode 2024-03-25 17:38:29 +01:00
irq-riscv-aplic-msi.c irqchip/riscv-aplic: Fix spelling mistake "forwared" -> "forwarded" 2024-04-09 11:03:15 +02:00
irq-riscv-imsic-early.c irqchip: riscv-imsic: Fixup riscv_ipi_set_virq_range() conflict 2024-05-23 04:48:40 -07:00
irq-riscv-imsic-platform.c irqchip/riscv-imsic: Fix boot time update effective affinity warning 2024-04-14 13:28:49 +02:00
irq-riscv-imsic-state.c irqchip: Add RISC-V incoming MSI controller early driver 2024-03-25 17:38:28 +01:00
irq-riscv-imsic-state.h irqchip/riscv-imsic: Add device MSI domain support for platform devices 2024-03-25 17:38:28 +01:00
irq-riscv-intc.c Updates for the interrupt subsystem: 2024-07-22 13:52:05 -07:00
irq-sa11x0.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-sifive-plic.c irqchip/sifive-plic: Chain to parent IRQ after handlers are ready 2024-06-03 13:53:12 +02: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: Split MCU and MPU code 2024-06-23 19:49:45 +02:00
irq-stm32mp-exti.c irqchip/stm32mp-exti: Allow building as module 2024-06-24 00:16:43 +02:00
irq-sun4i.c
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: Remove redundant irq_chip::name initialization 2024-03-25 17:38:29 +01:00
irq-tb10x.c irqchip: Remove redundant irq_chip::name initialization 2024-03-25 17:38:29 +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: Add missing MODULE_DESCRIPTION() macros 2024-06-23 17:23:08 +02:00
irq-uniphier-aidet.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-versatile-fpga.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +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-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
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
irqchip.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
Kconfig irqchip/loongson-pch-msi: Switch to MSI parent domains 2024-08-20 17:13:40 +02:00
Makefile irqchip/loongarch-avec: Add AVEC irqchip support 2024-08-23 20:40:27 +02: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