• Linus Torvalds's avatar
    Merge tag 'irq-msi-2024-03-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4527e837
    Linus Torvalds authored
    Pull MSI updates from Thomas Gleixner:
     "Updates for the MSI interrupt subsystem and initial RISC-V MSI
      support.
    
      The core changes have been adopted from previous work which converted
      ARM[64] to the new per device MSI domain model, which was merged to
      support multiple MSI domain per device. The ARM[64] changes are being
      worked on too, but have not been ready yet. The core and platform-MSI
      changes have been split out to not hold up RISC-V and to avoid that
      RISC-V builds on the scheduled for removal interfaces.
    
      The core support provides new interfaces to handle wire to MSI bridges
      in a straight forward way and introduces new platform-MSI interfaces
      which are built on top of the per device MSI domain model.
    
      Once ARM[64] is converted over the old platform-MSI interfaces and the
      related ugliness in the MSI core code will be removed.
    
      The actual MSI parts for RISC-V were finalized late and have been
      post-poned for the next merge window.
    
      Drivers:
    
       - Add a new driver for the Andes hart-level interrupt controller
    
       - Rework the SiFive PLIC driver to prepare for MSI suport
    
       - Expand the RISC-V INTC driver to support the new RISC-V AIA
         controller which provides the basis for MSI on RISC-V
    
       - A few fixup for the fallout of the core changes"
    
    * tag 'irq-msi-2024-03-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (29 commits)
      irqchip/riscv-intc: Fix low-level interrupt handler setup for AIA
      x86/apic/msi: Use DOMAIN_BUS_GENERIC_MSI for HPET/IO-APIC domain search
      genirq/matrix: Dynamic bitmap allocation
      irqchip/riscv-intc: Add support for RISC-V AIA
      irqchip/sifive-plic: Improve locking safety by using irqsave/irqrestore
      irqchip/sifive-plic: Parse number of interrupts and contexts early in plic_probe()
      irqchip/sifive-plic: Cleanup PLIC contexts upon irqdomain creation failure
      irqchip/sifive-plic: Use riscv_get_intc_hwnode() to get parent fwnode
      irqchip/sifive-plic: Use devm_xyz() for managed allocation
      irqchip/sifive-plic: Use dev_xyz() in-place of pr_xyz()
      irqchip/sifive-plic: Convert PLIC driver into a platform driver
      irqchip/riscv-intc: Introduce Andes hart-level interrupt controller
      irqchip/riscv-intc: Allow large non-standard interrupt number
      genirq/irqdomain: Don't call ops->select for DOMAIN_BUS_ANY tokens
      irqchip/imx-intmux: Handle pure domain searches correctly
      genirq/msi: Provide MSI_FLAG_PARENT_PM_DEV
      genirq/irqdomain: Reroute device MSI create_mapping
      genirq/msi: Provide allocation/free functions for "wired" MSI interrupts
      genirq/msi: Optionally use dev->fwnode for device domain
      genirq/msi: Provide DOMAIN_BUS_WIRED_TO_MSI
      ...
    4527e837
irq-imx-intmux.c 9.95 KB