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

From: Shivamurthy Shastri
Date: Fri Jun 14 2024 - 06:25:20 EST


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@xxxxxxxxxxxxx/

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