[PATCH v3 00/24] genirq, irqchip: Convert ARM MSI handling to

Shivamurthy Shastri shivamurthy.shastri at linutronix.de
Fri Jun 14 03:23:39 PDT 2024


Hi!

This is version 3 of the series to convert ARM MSI handling over to
per device MSI domains. Version 2 can be found here:

  https://lore.kernel.org/lkml/20221121135653.208611233@linutronix.de/

The conversion aims to replace the existing platform MSI mechanism
and enables ARM to support the future PCI/IMS mechanism.

The infrastructure to replace the platform MSI mechanism is already
upstream and in use by RISC-V and has been tested on various ARM
platforms during the V2 development.

Changes vs. V2:

    - Replace the static key to control [un]masking the parent chip
      from pci_msi_[un]mask() with a domain feature flag so it can be
      decided per MSI parent domain - Marc

    - Forwarded to v6.10-rc3

    - Minor cleanups and polishing according to review feedback

The series is only lightly tested due to lack of hardware, so we ask
the people who have access to affected machines to help with testing.

The series is also available from git:

  git://git.kernel.org/pub/scm/linux/kernel/git/anna-maria/linux-devel.git devmsi-arm

Thanks,
Shiva

Anna-Maria Behnsen (2):
  irqdomain: Fix formatting irq_find_matching_fwspec() kerneldoc comment
  irqchip/imx-mu-msi: Fix codingstyle in imx_mu_msi_domains_init()

Shivamurthy Shastri (1):
  PCI/MSI: Provide MSI_FLAG_PCI_MSI_MASK_PARENT

Thomas Gleixner (21):
  irqchip: Provide irq-msi-lib
  irqchip/gic-v3-its: Provide MSI parent infrastructure
  irqchip/irq-msi-lib: Prepare for PCI MSI/MSIX
  irqchip/gic-v3-its: Provide MSI parent for PCI/MSI[-X]
  irqchip/irq-msi-lib: Prepare for DEVICE MSI to replace platform MSI
  irqchip/mbigen: Prepare for real per device MSI
  irqchip/irq-msi-lib: Prepare for DOMAIN_BUS_WIRED_TO_MSI
  irqchip/gic-v3-its: Switch platform MSI to MSI parent
  irqchip/mbigen: Remove platform_msi_create_device_domain() fallback
  genirq/msi: Remove platform_msi_create_device_domain()
  genirq/gic-v3-mbi: Remove unused wired MSI mechanics
  genirq/gic-v3-mbi: Switch to MSI parent
  irqchip/gic-v2m: Switch to device MSI
  irqchip/imx-mu-msi: Switch to MSI parent
  irqchip/irq-mvebu-icu: Prepare for real per device MSI
  irqchip/mvebu-gicp: Switch to MSI parent
  irqchip/mvebu-odmi: Switch to parent MSI
  irqchip/irq-mvebu-sei: Switch to MSI parent
  irqchip/irq-mvebu-icu: Remove platform MSI leftovers
  genirq/msi: Remove platform MSI leftovers
  genirq/msi: Move msi_device_data to core

 drivers/base/platform-msi.c                   | 350 +-----------------
 drivers/irqchip/Kconfig                       |   8 +
 drivers/irqchip/Makefile                      |   4 +-
 drivers/irqchip/irq-gic-common.h              |   3 +
 drivers/irqchip/irq-gic-v2m.c                 |  80 ++--
 drivers/irqchip/irq-gic-v3-its-msi-parent.c   | 210 +++++++++++
 drivers/irqchip/irq-gic-v3-its-pci-msi.c      | 202 ----------
 drivers/irqchip/irq-gic-v3-its-platform-msi.c | 163 --------
 drivers/irqchip/irq-gic-v3-its.c              |   5 +
 drivers/irqchip/irq-gic-v3-mbi.c              | 142 ++-----
 drivers/irqchip/irq-imx-mu-msi.c              |  55 ++-
 drivers/irqchip/irq-mbigen.c                  |  96 ++---
 drivers/irqchip/irq-msi-lib.c                 | 135 +++++++
 drivers/irqchip/irq-msi-lib.h                 |  27 ++
 drivers/irqchip/irq-mvebu-gicp.c              |  45 +--
 drivers/irqchip/irq-mvebu-icu.c               | 275 ++++++--------
 drivers/irqchip/irq-mvebu-odmi.c              |  38 +-
 drivers/irqchip/irq-mvebu-sei.c               |  53 ++-
 drivers/pci/msi/irqdomain.c                   |  21 ++
 include/linux/msi.h                           |  52 +--
 kernel/irq/irqdomain.c                        |   3 +-
 kernel/irq/msi.c                              |  95 +----
 22 files changed, 734 insertions(+), 1328 deletions(-)
 create mode 100644 drivers/irqchip/irq-gic-v3-its-msi-parent.c
 delete mode 100644 drivers/irqchip/irq-gic-v3-its-pci-msi.c
 delete mode 100644 drivers/irqchip/irq-gic-v3-its-platform-msi.c
 create mode 100644 drivers/irqchip/irq-msi-lib.c
 create mode 100644 drivers/irqchip/irq-msi-lib.h

-- 
2.34.1




More information about the linux-arm-kernel mailing list