• Linus Torvalds's avatar
    Merge tag 'irq-core-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ac7473a1
    Linus Torvalds authored
    Pull interrupt subsystem updates from Thomas Gleixner:
     "Core:
    
       - Provide a new mechanism to create interrupt domains. The existing
         interfaces have already too many parameters and it's a pain to
         expand any of this for new required functionality.
    
         The new function takes a pointer to a data structure as argument.
         The data structure combines all existing parameters and allows for
         easy extension.
    
         The first extension for this is to handle the instantiation of
         generic interrupt chips at the core level and to allow drivers to
         provide extra init/exit callbacks.
    
         This is necessary to do the full interrupt chip initialization
         before the new domain is published, so that concurrent usage sites
         won't see a half initialized interrupt domain. Similar problems
         exist on teardown.
    
         This has turned out to be a real problem due to the deferred and
         parallel probing which was added in recent years.
    
         Handling this at the core level allows to remove quite some accrued
         boilerplate code in existing drivers and avoids horrible
         workarounds at the driver level.
    
       - The usual small improvements all over the place
    
      Drivers:
    
       - Add support for LAN966x OIC and RZ/Five SoC
    
       - Split the STM ExtI driver into a microcontroller and a SMP version
         to allow building the latter as a module for multi-platform
         kernels
    
       - Enable MSI support for Armada 370XP on platforms which do not
         support IPIs
    
       - The usual small fixes and enhancements all over the place"
    
    * tag 'irq-core-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (59 commits)
      irqdomain: Fix the kernel-doc and plug it into Documentation
      genirq: Set IRQF_COND_ONESHOT in request_irq()
      irqchip/imx-irqsteer: Handle runtime power management correctly
      irqchip/gic-v3: Pass #redistributor-regions to gic_of_setup_kvm_info()
      irqchip/bcm2835: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND
      irqchip/gic-v4: Make sure a VPE is locked when VMAPP is issued
      irqchip/gic-v4: Substitute vmovp_lock for a per-VM lock
      irqchip/gic-v4: Always configure affinity on VPE activation
      Revert "irqchip/dw-apb-ictl: Support building as module"
      Revert "Loongarch: Support loongarch avec"
      arm64: Kconfig: Allow build irq-stm32mp-exti driver as module
      ARM: stm32: Allow build irq-stm32mp-exti driver as module
      irqchip/stm32mp-exti: Allow building as module
      irqchip/stm32mp-exti: Rename internal symbols
      irqchip/stm32-exti: Split MCU and MPU code
      arm64: Kconfig: Select STM32MP_EXTI on STM32 platforms
      ARM: stm32: Use different EXTI driver on ARMv7m and ARMv7a
      irqchip/stm32-exti: Add CONFIG_STM32MP_EXTI
      irqchip/dw-apb-ictl: Support building as module
      irqchip/riscv-aplic: Simplify the initialization code
      ...
    ac7473a1
irq-gic-v3.c 66.7 KB