linux/drivers/irqchip
Linus Torvalds 9ce62ebbb7 Updates for [PCI] MSI related code:
- Remove one variant of PCI/MSI management as all users have been
    converted to use per device domains. That reduces the variants to two:
 
    The modern and the real archaic legacy variant, which keeps the usual
    suspects in the museum category alive.
 
  - Rework the platform MSI device ID detection mechanism in the ARM GIC
    world to address resource leaks, duplicated code and other details. This
    requires a corresponding preparatory step in the PCI/iproc driver.
 
  - Trivial core code cleanups
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmkswn0THHRnbHhAbGlu
 dXRyb25peC5kZQAKCRCmGPVMDXSYoYpuD/wKT7d6I6AqnJVF/RhiJ+/d6vuX/aFW
 g6E7XAkMLKhmxunSNFfPzXsHy2a0oJroYKmDJH4C8GWGo/gXa+QvmDt2491k9rdV
 zM+CBodBu3/bXWvTW+o1fbyAvG+p2C3+iSRW/gGqzPdcY8gQiRnNOZS1j7zusMjO
 A6pz5SvLSPWQUnVl9PygJBuNX5TFHPnY3AySRpW11CvqB5/8gqGz+O6lT/Q+5hov
 GUC57hskbQd1PsYhTNRaUR4z7VMolPHqscp8DYVCWjOMP/r5quC6dlsn91yxuATU
 8D7oRiW8xkCaTJplY/rA6r/VxUthZ3EgIxzev3rGaWBdPxHcFfftf2oxyFFAf3lf
 3rEdfGBcNgApx+MCcoT5/3mf3KJfn2/bE6bZhwv94+dtbTlHguztyMD3vnGTS73i
 zPWQ5ae4M5sqc8kCNMRaBfU8yQEHEKs3gia67vStZyn5R/uUNVKRo67LBPZKVDcJ
 2511Ylnm62yG6PtdPGIFHY1i75uPpxXuS7F0BJignzM3iPvVvwLPZLDORr3/pR4q
 CmswZTA2obue6+nwz/LUacxzONsZ2Z8pzGY6rrT9sfj0Z4mk6xrfEPfjfmVoMpyk
 Dk4B8lIVYwcR7d/Sw+FIwYst8iw+L77Yn7kN8yCbh4lAOxBUUvtS5KAP6uPGe3D1
 30Q/DbBVlEvg/g==
 =VAtQ
 -----END PGP SIGNATURE-----

Merge tag 'irq-msi-2025-11-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull MSI updates from Thomas Gleixner:
 "Updates for [PCI] MSI related code:

   - Remove one variant of PCI/MSI management as all users have been
     converted to use per device domains. That reduces the variants to
     two:

     The modern and the real archaic legacy variant, which keeps the
     usual suspects in the museum category alive.

   - Rework the platform MSI device ID detection mechanism in the ARM
     GIC world to address resource leaks, duplicated code and other
     details. This requires a corresponding preparatory step in the
     PCI/iproc driver.

   - Trivial core code cleanups"

* tag 'irq-msi-2025-11-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  irqchip/gic-its: Rework platform MSI deviceID detection
  PCI: iproc: Implement MSI controller node detection with of_msi_xlate()
  genirq/msi: Slightly simplify msi_domain_alloc()
  PCI/MSI: Delete pci_msi_create_irq_domain()
2025-12-02 09:35:59 -08:00
..
Kconfig Boring updates for interrupt drivers: 2025-12-02 09:32:53 -08:00
Makefile irqchip: Kill irq-partition-percpu 2025-10-27 17:16:36 +01:00
alphascale_asm9260-icoll.h
exynos-combiner.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-aclint-sswi.c irqchip/aclint-sswi: Add Nuclei UX900 support 2025-11-11 22:17:22 +01:00
irq-al-fic.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-alpine-msi.c irqchip/alpine-msi: Switch to msi_create_parent_irq_domain() 2025-07-03 15:49:25 +02:00
irq-apple-aic.c irqchip/apple-aic: Drop support for custom PMU irq partitions 2025-10-27 17:16:36 +01:00
irq-armada-370-xp.c irqchip/armada-370-xp: Switch to msi_create_parent_irq_domain() 2025-07-03 15:49:25 +02:00
irq-aspeed-i2c-ic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-aspeed-intc.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-aspeed-scu-ic.c irqchip/aspeed-scu-ic: Fix an IS_ERR() vs NULL check 2025-10-07 10:23:22 +02:00
irq-aspeed-vic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-ath79-cpu.c
irq-ath79-misc.c irqchip/ath79-misc: Fix missing prototypes warnings 2025-06-20 21:38:52 +02:00
irq-atmel-aic-common.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-atmel-aic-common.h
irq-atmel-aic.c irqchip/atmel-aic[5]: Fix incorrect lock guard conversion 2025-08-23 21:41:07 +02:00
irq-atmel-aic5.c irqchip/atmel-aic[5]: Fix incorrect lock guard conversion 2025-08-23 21:41:07 +02:00
irq-bcm2712-mip.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
irq-bcm2835.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-bcm2836.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-bcm6345-l1.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-bcm7038-l1.c irqchip/irq-bcm7038-l1: Remove unused reg_mask_status() 2025-11-11 22:11:17 +01:00
irq-bcm7120-l2.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
irq-brcmstb-l2.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
irq-clps711x.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-crossbar.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-csky-apb-intc.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-csky-mpintc.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-davinci-cp-intc.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-digicolor.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-dw-apb-ictl.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-econet-en751221.c irqchip/econet-en751221: Switch to of_fwnode_handle() 2025-05-13 16:39:03 +02:00
irq-ftintc010.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +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 irqchip/gic-v3: Rename GICv3 ITS MSI parent 2025-07-08 18:35:52 +01:00
irq-gic-its-msi-parent.c irqchip/gic-its: Rework platform MSI deviceID detection 2025-11-22 17:09:03 +01:00
irq-gic-its-msi-parent.h irqchip/gic-v5: Add GICv5 ITS support 2025-07-08 18:35:52 +01:00
irq-gic-pm.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-gic-realview.c
irq-gic-v2m.c irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment 2025-09-04 14:52:47 +02:00
irq-gic-v3-its-fsl-mc-msi.c of/irq: Convert of_msi_map_id() callers to of_msi_xlate() 2025-09-03 09:01:26 -05:00
irq-gic-v3-its.c irqchip/gic-v3: Rename GICv3 ITS MSI parent 2025-07-08 18:35:52 +01:00
irq-gic-v3-mbi.c Updates for the MSI subsystem (core code and PCI): 2025-05-27 08:15:26 -07:00
irq-gic-v3.c irqchip/gic-v3: Drop support for custom PPI partitions 2025-10-27 17:16:36 +01:00
irq-gic-v4.c KVM: arm64: WARN if unmapping a vLPI fails in any path 2025-06-20 13:52:29 -07:00
irq-gic-v5-irs.c Updates for interrupt chip drivers: 2025-09-30 16:00:29 -07:00
irq-gic-v5-its.c irqchip/gic-v5: Fix error handling in gicv5_its_irq_domain_alloc() 2025-09-09 11:51:09 +02:00
irq-gic-v5-iwb.c irqchip/gic-v5: iwb: Fix iounmap probe failure path 2025-08-05 10:43:48 +02:00
irq-gic-v5.c irqchip/gic-v5: Drop has_gcie_v3_compat from gic_kvm_info 2025-09-17 17:41:02 +01:00
irq-gic.c arm64: cpucaps: Rename GICv3 CPU interface capability 2025-07-08 18:35:51 +01:00
irq-goldfish-pic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-hip04.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-i8259.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-idt3243x.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-imgpdc.c irqchip: Use dev_fwnode() 2025-06-12 15:08:12 +02:00
irq-imx-gpcv2.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-imx-intmux.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-imx-irqsteer.c irqchip: Use dev_fwnode() 2025-06-12 15:08:12 +02:00
irq-imx-mu-msi.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
irq-ingenic-tcu.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-ingenic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-ixp4xx.c irqchip: Switch to of_fwnode_handle() 2025-05-16 21:06:07 +02:00
irq-jcore-aic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-keystone.c irqchip: Use dev_fwnode() 2025-06-12 15:08:12 +02:00
irq-lan966x-oic.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-loongarch-avec.c irqchip: Make irq-msi-lib.h globally available 2025-05-16 21:32:19 +02:00
irq-loongarch-cpu.c irqchip: Switch to of_fwnode_handle() 2025-05-16 21:06:07 +02:00
irq-loongson-eiointc.c irqchip/loongson-eiointc: Add multiple interrupt pin routing support 2025-08-24 12:51:04 +02:00
irq-loongson-htpic.c
irq-loongson-htvec.c irqchip: Switch to of_fwnode_handle() 2025-05-16 21:06:07 +02:00
irq-loongson-liointc.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-loongson-pch-lpc.c irqchip/loongson-pch-lpc: Use legacy domain for PCH-LPC IRQ controller 2025-09-09 22:37:57 +02:00
irq-loongson-pch-msi.c irqchip/loongson-pch-msi.c: Switch to msi_create_parent_irq_domain() 2025-07-03 15:49:24 +02:00
irq-loongson-pch-pic.c irqchip: Switch to of_fwnode_handle() 2025-05-16 21:06:07 +02:00
irq-loongson.h irqchip/loongarch-avec: Add AVEC irqchip support 2024-08-23 20:40:27 +02:00
irq-lpc32xx.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-ls-extirq.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-ls-scfg-msi.c irqchip/ls-scfg-msi: Fix NULL dereference in error handling 2025-07-18 14:54:45 +02:00
irq-ls1x.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-madera.c irqchip: Switch back to struct platform_driver::remove() 2024-11-26 20:09:06 +01:00
irq-mbigen.c Updates for the interrupt subsystem: 2024-09-17 07:09:17 +02:00
irq-mchp-eic.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
irq-meson-gpio.c irqchip/meson-gpio: Add support for Amlogic S6 S7 and S7D SoCs 2025-11-13 14:04:16 +01:00
irq-mips-cpu.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-mips-gic.c irqchip/mips-gic: Allow forced affinity 2025-06-21 18:20:54 +02:00
irq-mmp.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-mscc-ocelot.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-msi-lib.c irqchip/msi-lib: Honor the MSI_FLAG_PCI_MSI_MASK_PARENT flag 2025-09-09 14:44:30 +02:00
irq-mst-intc.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-mtk-cirq.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-mtk-sysirq.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-mvebu-gicp.c irqchip/mvebu-gicp: Fix an IS_ERR() vs NULL check in probe() 2025-08-24 12:00:47 +02:00
irq-mvebu-icu.c irqchip: Make irq-msi-lib.h globally available 2025-05-16 21:32:19 +02:00
irq-mvebu-odmi.c Updates for the MSI subsystem (core code and PCI): 2025-05-27 08:15:26 -07:00
irq-mvebu-pic.c irqchip/mvebu-pic: Drop unused module alias 2025-10-16 18:17:28 +02:00
irq-mvebu-sei.c irqchip/mvebu: Convert to msi_create_parent_irq_domain() helper 2025-05-16 21:32:20 +02:00
irq-mxs.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-nvic.c irqchip: Use int type to store negative error codes 2025-09-03 14:10:30 +02:00
irq-omap-intc.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-ompic.c
irq-or1k-pic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-orion.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-owl-sirq.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-pic32-evic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-pruss-intc.c irqchip: Use dev_fwnode() 2025-06-12 15:08:12 +02:00
irq-qcom-mpm.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
irq-rda-intc.c
irq-realtek-rtl.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-renesas-intc-irqpin.c irqchip/renesas-intc-irqpin: Convert to DEFINE_SIMPLE_DEV_PM_OPS() 2025-07-18 16:46:09 +02:00
irq-renesas-irqc.c irqchip/renesas-irqc: Convert to DEFINE_SIMPLE_DEV_PM_OPS() 2025-07-18 16:46:09 +02:00
irq-renesas-rza1.c irqchip: Use int type to store negative error codes 2025-09-03 14:10:30 +02:00
irq-renesas-rzg2l.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
irq-renesas-rzv2h.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
irq-riscv-aplic-direct.c irqchip/riscv-aplic: Use riscv_get_hart_index() 2025-06-26 16:06:40 +02:00
irq-riscv-aplic-main.c irqchip/riscv-aplic: Prevent crash when MSI domain is missing 2024-11-16 00:45:37 +01:00
irq-riscv-aplic-main.h irqchip/riscv-aplic: Add ACPI support 2024-08-27 15:48:36 +02:00
irq-riscv-aplic-msi.c irqchip/riscv-aplic: Prevent crash when MSI domain is missing 2024-11-16 00:45:37 +01:00
irq-riscv-imsic-early.c irqchip/riscv-imsic: Inline imsic_vector_from_local_id() 2025-10-16 18:17:28 +02:00
irq-riscv-imsic-platform.c irqchip/riscv-imsic: Remove redundant irq_data lookups 2025-10-16 18:17:28 +02:00
irq-riscv-imsic-state.c irqchip/riscv-imsic: Inline imsic_vector_from_local_id() 2025-10-16 18:17:28 +02:00
irq-riscv-imsic-state.h irqchip/riscv-imsic: Inline imsic_vector_from_local_id() 2025-10-16 18:17:28 +02:00
irq-riscv-intc.c irqchip/riscv-intc: Add missing free() callback in riscv_intc_domain_ops 2025-11-14 16:52:34 +01:00
irq-riscv-rpmi-sysmsi.c irqchip/riscv-rpmi-sysmsi: Add ACPI support 2025-09-25 19:49:19 -06:00
irq-sa11x0.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-sg2042-msi.c irqchip/sg2042-msi: Set irq type according to DT configuration 2025-09-04 14:52:48 +02:00
irq-sifive-plic.c irqchip/sifive-plic: Fix call to __plic_toggle() in M-Mode code path 2025-11-11 22:11:16 +01:00
irq-sl28cpld.c
irq-sni-exiu.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-sp7021-intc.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +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: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
irq-stm32-exti.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-stm32mp-exti.c irqchip: Use dev_fwnode() 2025-06-12 15:08:12 +02:00
irq-sun4i.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-sun6i-r.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-sunxi-nmi.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-tb10x.c A set of cleanups for the generic interrupt subsystem: 2025-05-27 08:07:32 -07:00
irq-tegra.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-ti-sci-inta.c irqchip: Use dev_fwnode() 2025-06-12 15:08:12 +02:00
irq-ti-sci-intr.c irqchip: Use dev_fwnode() 2025-06-12 15:08:12 +02:00
irq-ts4800.c irqchip/ts4800: Drop unused module alias 2025-10-16 18:17:28 +02:00
irq-uniphier-aidet.c irqchip: Switch to of_fwnode_handle() 2025-05-16 21:06:07 +02:00
irq-versatile-fpga.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-vf610-mscm-ir.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-vic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-vt8500.c irqchip/irq-vt8500: Switch to irq_domain_create_*() 2025-05-07 15:36:56 +02:00
irq-wpcm450-aic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-xilinx-intc.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-xtensa-mx.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-xtensa-pic.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irq-zevio.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00
irqchip.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
qcom-irq-combiner.c irqchip/qcom-irq-combiner: Rename driver structure 2025-10-17 15:18:18 +02:00
qcom-pdc.c irqchip: Pass platform device to platform drivers 2025-10-16 18:17:27 +02:00
spear-shirq.c irqchip: Switch to irq_domain_create_*() 2025-05-16 21:06:09 +02:00