All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/9] irqchip: MSI parent cleanup and PCI host driver conversion
@ 2025-05-13 17:28 Marc Zyngier
  2025-05-13 17:28 ` [PATCH v2 1/9] irqchip: Make irq-msi-lib.h globally available Marc Zyngier
                   ` (8 more replies)
  0 siblings, 9 replies; 23+ messages in thread
From: Marc Zyngier @ 2025-05-13 17:28 UTC (permalink / raw)
  To: linux-kernel, linux-arm-kernel, linux-pci
  Cc: Thomas Gleixner, Andrew Lunn, Gregory Clement,
	Sebastian Hesselbarth, Lorenzo Pieralisi,
	Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas,
	Toan Le, Alyssa Rosenzweig, Thierry Reding, Jonathan Hunter

This is v2 of a series I posted[1] a few months back before running
out of time, energy, and interest. I have now reduced it to the stuff
I actually care about, and got rid of all things non-arm64.

I've become annoyed by the couple of machines I have around that
haven't been converted to the per-device MSI infrastructure.  At the
same time, I've also moaned at the amount of boilerplate code required
to make use of this infrastructure.

This series therefore does a number of things:

- make irq-msi-lib.h globally available, so that PCI (and other
  subsystems) may make use of it

- add a new helper (msi_create_parent_irq_domain()) that encapsulates
  most of the magic required to create an MSI-parent domain

- convert the arm64 I have access to (and *only* that)

- convert the Apple, XGene and Tegra MSI drivers to the MSI-parent
  infrastructure, which is why I came here the first place.

* From v1 [1]:

  - use irq_domain_info as an the holder of most information required
    to instantiate the domain. I decided against using a specific
    structure, because they would mostly have the same fields.

  - added a patch to convert the Tegra driver, which required dealing
    with the MSI_FLAG_NO_AFFINITY flag

  - got rid of x86 and riscv patches (life is too short).

[1] https://lore.kernel.org/all/20241204124549.607054-1-maz@kernel.org

Marc Zyngier (9):
  irqchip: Make irq-msi-lib.h globally available
  genirq/msi: Add helper for creating MSI-parent irq domains
  irqchip/gic: Convert to msi_create_parent_irq_domain() helper
  irqchip/mvebu: Convert to msi_create_parent_irq_domain() helper
  irqchip: Drop MSI_CHIP_FLAG_SET_ACK from unsuspecting MSI drivers
  irqchip/msi-lib: Honour the MSI_FLAG_NO_AFFINITY flag
  PCI: apple: Convert to MSI parent infrastructure
  PCI: xgene: Convert to MSI parent infrastructure
  PCI: tegra: Convert to MSI parent infrastructure

 drivers/irqchip/irq-bcm2712-mip.c             |  2 +-
 drivers/irqchip/irq-gic-v2m.c                 | 16 ++---
 drivers/irqchip/irq-gic-v3-its-msi-parent.c   |  4 +-
 drivers/irqchip/irq-gic-v3-its.c              | 21 +++----
 drivers/irqchip/irq-gic-v3-mbi.c              | 15 ++---
 drivers/irqchip/irq-imx-mu-msi.c              |  2 +-
 drivers/irqchip/irq-loongarch-avec.c          |  2 +-
 drivers/irqchip/irq-loongson-pch-msi.c        |  2 +-
 drivers/irqchip/irq-msi-lib.c                 |  9 ++-
 drivers/irqchip/irq-mvebu-gicp.c              | 18 +++---
 drivers/irqchip/irq-mvebu-icu.c               |  2 +-
 drivers/irqchip/irq-mvebu-odmi.c              | 18 +++---
 drivers/irqchip/irq-mvebu-sei.c               | 18 +++---
 drivers/irqchip/irq-riscv-imsic-platform.c    |  2 +-
 drivers/irqchip/irq-sg2042-msi.c              |  2 +-
 drivers/pci/controller/Kconfig                |  3 +
 drivers/pci/controller/pci-tegra.c            | 60 ++++++------------
 drivers/pci/controller/pci-xgene-msi.c        | 46 +++++---------
 drivers/pci/controller/pcie-apple.c           | 62 +++++++------------
 .../linux}/irqchip/irq-msi-lib.h              |  6 +-
 include/linux/msi.h                           |  4 ++
 kernel/irq/msi.c                              | 26 ++++++++
 22 files changed, 160 insertions(+), 180 deletions(-)
 rename {drivers => include/linux}/irqchip/irq-msi-lib.h (84%)

-- 
2.39.2



^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2025-05-16 19:47 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-13 17:28 [PATCH v2 0/9] irqchip: MSI parent cleanup and PCI host driver conversion Marc Zyngier
2025-05-13 17:28 ` [PATCH v2 1/9] irqchip: Make irq-msi-lib.h globally available Marc Zyngier
2025-05-16 19:47   ` [tip: irq/msi] " tip-bot2 for Marc Zyngier
2025-05-13 17:28 ` [PATCH v2 2/9] genirq/msi: Add helper for creating MSI-parent irq domains Marc Zyngier
2025-05-16 19:47   ` [tip: irq/msi] " tip-bot2 for Marc Zyngier
2025-05-13 17:28 ` [PATCH v2 3/9] irqchip/gic: Convert to msi_create_parent_irq_domain() helper Marc Zyngier
2025-05-16 10:36   ` Thomas Gleixner
2025-05-16 10:47     ` Marc Zyngier
2025-05-16 10:55       ` Thomas Gleixner
2025-05-16 19:47   ` [tip: irq/msi] " tip-bot2 for Marc Zyngier
2025-05-13 17:28 ` [PATCH v2 4/9] irqchip/mvebu: " Marc Zyngier
2025-05-16 19:47   ` [tip: irq/msi] " tip-bot2 for Marc Zyngier
2025-05-13 17:28 ` [PATCH v2 5/9] irqchip: Drop MSI_CHIP_FLAG_SET_ACK from unsuspecting MSI drivers Marc Zyngier
2025-05-14 14:27   ` [tip: irq/urgent] " tip-bot2 for Marc Zyngier
2025-05-13 17:28 ` [PATCH v2 6/9] irqchip/msi-lib: Honour the MSI_FLAG_NO_AFFINITY flag Marc Zyngier
2025-05-16 19:47   ` [tip: irq/msi] " tip-bot2 for Marc Zyngier
2025-05-13 17:28 ` [PATCH v2 7/9] PCI: apple: Convert to MSI parent infrastructure Marc Zyngier
2025-05-13 18:06   ` Alyssa Rosenzweig
2025-05-16 19:47   ` [tip: irq/msi] " tip-bot2 for Marc Zyngier
2025-05-13 17:28 ` [PATCH v2 8/9] PCI: xgene: " Marc Zyngier
2025-05-16 19:47   ` [tip: irq/msi] " tip-bot2 for Marc Zyngier
2025-05-13 17:28 ` [PATCH v2 9/9] PCI: tegra: " Marc Zyngier
2025-05-16 19:47   ` [tip: irq/msi] " tip-bot2 for Marc Zyngier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.