Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure
@ 2026-02-24 10:09 Marc Zyngier
  2026-02-24 10:09 ` [PATCH v2 1/6] fsl-mc: Remove MSI domain propagation to sub-devices Marc Zyngier
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Marc Zyngier @ 2026-02-24 10:09 UTC (permalink / raw)
  To: Ioana Ciornei, Thomas Gleixner, Christophe Leroy (CS GROUP)
  Cc: Sascha Bischoff, linux-kernel, linux-arm-kernel, linuxppc-dev

This is the second drop of this cleanup series for the fsl-mc MSI
infrastructure, initially posted at [1].

* From v1 [1]:

  - Drop the now unused DOMAIN_BUS_FSL_MC_MSI bus token

  - Tidy-up fsl_mc_write_msi_msg() while removing the legacy helper

  - Fix include ordering in irq-gic-its-msi-parent.c

  - Various commit message cleanups

  - Collected tags from Ioana and Sascha, with thanks

  - Rebased on top of v7.0.rc1

[1] https://lore.kernel.org/r/20260218135203.2267907-1-maz@kernel.org

Marc Zyngier (6):
  fsl-mc: Remove MSI domain propagation to sub-devices
  fsl-mc: Add minimal infrastructure to use platform MSI
  irqchip/gic-v3-its: Add fsl_mc device plumbing to the msi-parent
    handling
  fsl-mc: Switch over to per-device platform MSI
  fsl-mc: Remove legacy MSI implementation
  platform-msi: Remove stale comment

 drivers/base/platform-msi.c                 |   4 -
 drivers/bus/fsl-mc/dprc-driver.c            |  14 +-
 drivers/bus/fsl-mc/fsl-mc-bus.c             |   4 +-
 drivers/bus/fsl-mc/fsl-mc-msi.c             | 166 +++----------------
 drivers/bus/fsl-mc/fsl-mc-private.h         |   2 +-
 drivers/irqchip/Kconfig                     |   6 -
 drivers/irqchip/Makefile                    |   1 -
 drivers/irqchip/irq-gic-its-msi-parent.c    |   7 +-
 drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c | 168 --------------------
 include/linux/fsl/mc.h                      |   6 +-
 include/linux/irqdomain_defs.h              |   1 -
 11 files changed, 39 insertions(+), 340 deletions(-)
 delete mode 100644 drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c

-- 
2.47.3



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

* [PATCH v2 1/6] fsl-mc: Remove MSI domain propagation to sub-devices
  2026-02-24 10:09 [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Marc Zyngier
@ 2026-02-24 10:09 ` Marc Zyngier
  2026-02-24 10:09 ` [PATCH v2 2/6] fsl-mc: Add minimal infrastructure to use platform MSI Marc Zyngier
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Marc Zyngier @ 2026-02-24 10:09 UTC (permalink / raw)
  To: Ioana Ciornei, Thomas Gleixner, Christophe Leroy (CS GROUP)
  Cc: Sascha Bischoff, linux-kernel, linux-arm-kernel, linuxppc-dev

Only the root device generates MSIs (it is the only one talking to
the ITS), so propagating the domain is pretty pointless. Remove it.

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com> # LX2160ARDB, LS2088ARDB
Tested-by: Sascha Bischoff <sascha.bischoff@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
---
 drivers/bus/fsl-mc/fsl-mc-bus.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/bus/fsl-mc/fsl-mc-bus.c b/drivers/bus/fsl-mc/fsl-mc-bus.c
index c117745cf2065..1a6c8e3c0b27f 100644
--- a/drivers/bus/fsl-mc/fsl-mc-bus.c
+++ b/drivers/bus/fsl-mc/fsl-mc-bus.c
@@ -854,14 +854,12 @@ int fsl_mc_device_add(struct fsl_mc_obj_desc *obj_desc,
 	} else {
 		/*
 		 * A non-DPRC object has to be a child of a DPRC, use the
-		 * parent's ICID and interrupt domain.
+		 * parent's ICID.
 		 */
 		mc_dev->icid = parent_mc_dev->icid;
 		mc_dev->dma_mask = FSL_MC_DEFAULT_DMA_MASK;
 		mc_dev->dev.dma_mask = &mc_dev->dma_mask;
 		mc_dev->dev.coherent_dma_mask = mc_dev->dma_mask;
-		dev_set_msi_domain(&mc_dev->dev,
-				   dev_get_msi_domain(&parent_mc_dev->dev));
 	}
 
 	/*
-- 
2.47.3



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

* [PATCH v2 2/6] fsl-mc: Add minimal infrastructure to use platform MSI
  2026-02-24 10:09 [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Marc Zyngier
  2026-02-24 10:09 ` [PATCH v2 1/6] fsl-mc: Remove MSI domain propagation to sub-devices Marc Zyngier
@ 2026-02-24 10:09 ` Marc Zyngier
  2026-02-24 10:09 ` [PATCH v2 3/6] irqchip/gic-v3-its: Add fsl_mc device plumbing to the msi-parent handling Marc Zyngier
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Marc Zyngier @ 2026-02-24 10:09 UTC (permalink / raw)
  To: Ioana Ciornei, Thomas Gleixner, Christophe Leroy (CS GROUP)
  Cc: Sascha Bischoff, linux-kernel, linux-arm-kernel, linuxppc-dev

Add the tiny bit of infrastructure required to use platform MSI
instead of the current hack. This means providing a write_msi_msg
callback, as well as irq domain and devid retrieval helpers.

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com> # LX2160ARDB, LS2088ARDB
Tested-by: Sascha Bischoff <sascha.bischoff@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
---
 drivers/bus/fsl-mc/fsl-mc-msi.c     | 50 ++++++++++++++++++++++++-----
 drivers/bus/fsl-mc/fsl-mc-private.h |  1 +
 include/linux/fsl/mc.h              |  2 ++
 3 files changed, 45 insertions(+), 8 deletions(-)

diff --git a/drivers/bus/fsl-mc/fsl-mc-msi.c b/drivers/bus/fsl-mc/fsl-mc-msi.c
index 82cd69f7884c6..c9f50969e88ce 100644
--- a/drivers/bus/fsl-mc/fsl-mc-msi.c
+++ b/drivers/bus/fsl-mc/fsl-mc-msi.c
@@ -110,13 +110,8 @@ static void __fsl_mc_msi_write_msg(struct fsl_mc_device *mc_bus_dev,
 	}
 }
 
-/*
- * NOTE: This function is invoked with interrupts disabled
- */
-static void fsl_mc_msi_write_msg(struct irq_data *irq_data,
-				 struct msi_msg *msg)
+static void fsl_mc_write_msi_msg(struct msi_desc *msi_desc, struct msi_msg *msg)
 {
-	struct msi_desc *msi_desc = irq_data_get_msi_desc(irq_data);
 	struct fsl_mc_device *mc_bus_dev = to_fsl_mc_device(msi_desc->dev);
 	struct fsl_mc_bus *mc_bus = to_fsl_mc_bus(mc_bus_dev);
 	struct fsl_mc_device_irq *mc_dev_irq =
@@ -130,6 +125,17 @@ static void fsl_mc_msi_write_msg(struct irq_data *irq_data,
 	__fsl_mc_msi_write_msg(mc_bus_dev, mc_dev_irq, msi_desc);
 }
 
+/*
+ * NOTE: This function is invoked with interrupts disabled
+ */
+static void fsl_mc_msi_write_msg(struct irq_data *irq_data,
+				 struct msi_msg *msg)
+{
+	struct msi_desc *msi_desc = irq_data_get_msi_desc(irq_data);
+
+	fsl_mc_write_msi_msg(msi_desc, msg);
+}
+
 static void fsl_mc_msi_update_chip_ops(struct msi_domain_info *info)
 {
 	struct irq_chip *chip = info->chip;
@@ -209,6 +215,20 @@ struct irq_domain *fsl_mc_find_msi_domain(struct device *dev)
 	return msi_domain;
 }
 
+struct irq_domain *fsl_mc_get_msi_parent(struct device *dev)
+{
+	struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
+	struct device *root_dprc_dev;
+	struct device *bus_dev;
+
+	fsl_mc_get_root_dprc(dev, &root_dprc_dev);
+	bus_dev = root_dprc_dev->parent;
+
+	return (bus_dev->of_node ?
+		of_msi_get_domain(bus_dev, bus_dev->of_node, DOMAIN_BUS_NEXUS) :
+		iort_get_device_domain(bus_dev, mc_dev->icid, DOMAIN_BUS_NEXUS));
+}
+
 int fsl_mc_msi_domain_alloc_irqs(struct device *dev,  unsigned int irq_count)
 {
 	int error = msi_setup_device_data(dev);
@@ -220,8 +240,10 @@ int fsl_mc_msi_domain_alloc_irqs(struct device *dev,  unsigned int irq_count)
 	 * NOTE: Calling this function will trigger the invocation of the
 	 * its_fsl_mc_msi_prepare() callback
 	 */
-	error = msi_domain_alloc_irqs_range(dev, MSI_DEFAULT_DOMAIN, 0, irq_count - 1);
-
+	if (!irq_domain_is_msi_parent(dev_get_msi_domain(dev)))
+		error = msi_domain_alloc_irqs_range(dev, MSI_DEFAULT_DOMAIN, 0, irq_count - 1);
+	else
+		error = platform_device_msi_init_and_alloc_irqs(dev, irq_count, fsl_mc_write_msi_msg);
 	if (error)
 		dev_err(dev, "Failed to allocate IRQs\n");
 	return error;
@@ -231,3 +253,15 @@ void fsl_mc_msi_domain_free_irqs(struct device *dev)
 {
 	msi_domain_free_irqs_all(dev, MSI_DEFAULT_DOMAIN);
 }
+
+u32 fsl_mc_get_msi_id(struct device *dev)
+{
+	struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
+	struct device *root_dprc_dev;
+
+	fsl_mc_get_root_dprc(dev, &root_dprc_dev);
+
+	return (root_dprc_dev->parent->of_node ?
+		of_msi_xlate(dev, NULL, mc_dev->icid) :
+		iort_msi_map_id(dev, mc_dev->icid));
+}
diff --git a/drivers/bus/fsl-mc/fsl-mc-private.h b/drivers/bus/fsl-mc/fsl-mc-private.h
index beed4c53533d8..44868f874fd66 100644
--- a/drivers/bus/fsl-mc/fsl-mc-private.h
+++ b/drivers/bus/fsl-mc/fsl-mc-private.h
@@ -642,6 +642,7 @@ int fsl_mc_msi_domain_alloc_irqs(struct device *dev,
 void fsl_mc_msi_domain_free_irqs(struct device *dev);
 
 struct irq_domain *fsl_mc_find_msi_domain(struct device *dev);
+struct irq_domain *fsl_mc_get_msi_parent(struct device *dev);
 
 int __must_check fsl_create_mc_io(struct device *dev,
 				  phys_addr_t mc_portal_phys_addr,
diff --git a/include/linux/fsl/mc.h b/include/linux/fsl/mc.h
index 897d6211c1635..bcc38c0fc230a 100644
--- a/include/linux/fsl/mc.h
+++ b/include/linux/fsl/mc.h
@@ -361,9 +361,11 @@ int mc_send_command(struct fsl_mc_io *mc_io, struct fsl_mc_command *cmd);
 
 #ifdef CONFIG_FSL_MC_BUS
 #define dev_is_fsl_mc(_dev) ((_dev)->bus == &fsl_mc_bus_type)
+u32 fsl_mc_get_msi_id(struct device *dev);
 #else
 /* If fsl-mc bus is not present device cannot belong to fsl-mc bus */
 #define dev_is_fsl_mc(_dev) (0)
+#define fsl_mc_get_msi_id(_dev)	(0)
 #endif
 
 /* Macro to check if a device is a container device */
-- 
2.47.3



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

* [PATCH v2 3/6] irqchip/gic-v3-its: Add fsl_mc device plumbing to the msi-parent handling
  2026-02-24 10:09 [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Marc Zyngier
  2026-02-24 10:09 ` [PATCH v2 1/6] fsl-mc: Remove MSI domain propagation to sub-devices Marc Zyngier
  2026-02-24 10:09 ` [PATCH v2 2/6] fsl-mc: Add minimal infrastructure to use platform MSI Marc Zyngier
@ 2026-02-24 10:09 ` Marc Zyngier
  2026-02-24 10:09 ` [PATCH v2 4/6] fsl-mc: Switch over to per-device platform MSI Marc Zyngier
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Marc Zyngier @ 2026-02-24 10:09 UTC (permalink / raw)
  To: Ioana Ciornei, Thomas Gleixner, Christophe Leroy (CS GROUP)
  Cc: Sascha Bischoff, linux-kernel, linux-arm-kernel, linuxppc-dev

Make the ITS code aware of fsl_mc devices by plumbing the devid
retrieval primitive.

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com> # LX2160ARDB, LS2088ARDB
Tested-by: Sascha Bischoff <sascha.bischoff@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
---
 drivers/irqchip/irq-gic-its-msi-parent.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/irqchip/irq-gic-its-msi-parent.c b/drivers/irqchip/irq-gic-its-msi-parent.c
index a832cdb2e6978..d36b278ae66c5 100644
--- a/drivers/irqchip/irq-gic-its-msi-parent.c
+++ b/drivers/irqchip/irq-gic-its-msi-parent.c
@@ -5,6 +5,7 @@
 // Copyright (C) 2022 Intel
 
 #include <linux/acpi_iort.h>
+#include <linux/fsl/mc.h>
 #include <linux/of_address.h>
 #include <linux/pci.h>
 
@@ -187,9 +188,11 @@ static int its_pmsi_prepare(struct irq_domain *domain, struct device *dev,
 {
 	struct msi_domain_info *msi_info;
 	u32 dev_id;
-	int ret;
+	int ret = 0;
 
-	if (dev->of_node)
+	if (dev_is_fsl_mc(dev))
+		dev_id = fsl_mc_get_msi_id(dev);
+	else if (dev->of_node)
 		ret = of_pmsi_get_msi_info(domain->parent, dev, &dev_id, NULL);
 	else
 		ret = iort_pmsi_get_msi_info(dev, &dev_id, NULL);
-- 
2.47.3



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

* [PATCH v2 4/6] fsl-mc: Switch over to per-device platform MSI
  2026-02-24 10:09 [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Marc Zyngier
                   ` (2 preceding siblings ...)
  2026-02-24 10:09 ` [PATCH v2 3/6] irqchip/gic-v3-its: Add fsl_mc device plumbing to the msi-parent handling Marc Zyngier
@ 2026-02-24 10:09 ` Marc Zyngier
  2026-02-24 10:09 ` [PATCH v2 5/6] fsl-mc: Remove legacy MSI implementation Marc Zyngier
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Marc Zyngier @ 2026-02-24 10:09 UTC (permalink / raw)
  To: Ioana Ciornei, Thomas Gleixner, Christophe Leroy (CS GROUP)
  Cc: Sascha Bischoff, linux-kernel, linux-arm-kernel, linuxppc-dev

Obtain the msi-parent irqdomain instead of the fsl_mc domain,
which magically engages the per-device infrastructure.

Additionally, simplify the overly complicated error handling.

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com> # LX2160ARDB, LS2088ARDB
Tested-by: Sascha Bischoff <sascha.bischoff@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
---
 drivers/bus/fsl-mc/dprc-driver.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/bus/fsl-mc/dprc-driver.c b/drivers/bus/fsl-mc/dprc-driver.c
index db67442addad2..a85706826fa06 100644
--- a/drivers/bus/fsl-mc/dprc-driver.c
+++ b/drivers/bus/fsl-mc/dprc-driver.c
@@ -609,9 +609,8 @@ int dprc_setup(struct fsl_mc_device *mc_dev)
 {
 	struct device *parent_dev = mc_dev->dev.parent;
 	struct fsl_mc_bus *mc_bus = to_fsl_mc_bus(mc_dev);
-	struct irq_domain *mc_msi_domain;
+	struct irq_domain *mc_msi_domain = NULL;
 	bool mc_io_created = false;
-	bool msi_domain_set = false;
 	bool uapi_created = false;
 	u16 major_ver, minor_ver;
 	size_t region_size;
@@ -652,14 +651,12 @@ int dprc_setup(struct fsl_mc_device *mc_dev)
 		uapi_created = true;
 	}
 
-	mc_msi_domain = fsl_mc_find_msi_domain(&mc_dev->dev);
-	if (!mc_msi_domain) {
+	mc_msi_domain = fsl_mc_get_msi_parent(&mc_dev->dev);
+	if (!mc_msi_domain)
 		dev_warn(&mc_dev->dev,
 			 "WARNING: MC bus without interrupt support\n");
-	} else {
+	else
 		dev_set_msi_domain(&mc_dev->dev, mc_msi_domain);
-		msi_domain_set = true;
-	}
 
 	error = dprc_open(mc_dev->mc_io, 0, mc_dev->obj_desc.id,
 			  &mc_dev->mc_handle);
@@ -699,8 +696,7 @@ int dprc_setup(struct fsl_mc_device *mc_dev)
 	(void)dprc_close(mc_dev->mc_io, 0, mc_dev->mc_handle);
 
 error_cleanup_msi_domain:
-	if (msi_domain_set)
-		dev_set_msi_domain(&mc_dev->dev, NULL);
+	dev_set_msi_domain(&mc_dev->dev, NULL);
 
 	if (mc_io_created) {
 		fsl_destroy_mc_io(mc_dev->mc_io);
-- 
2.47.3



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

* [PATCH v2 5/6] fsl-mc: Remove legacy MSI implementation
  2026-02-24 10:09 [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Marc Zyngier
                   ` (3 preceding siblings ...)
  2026-02-24 10:09 ` [PATCH v2 4/6] fsl-mc: Switch over to per-device platform MSI Marc Zyngier
@ 2026-02-24 10:09 ` Marc Zyngier
  2026-02-24 10:09 ` [PATCH v2 6/6] platform-msi: Remove stale comment Marc Zyngier
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Marc Zyngier @ 2026-02-24 10:09 UTC (permalink / raw)
  To: Ioana Ciornei, Thomas Gleixner, Christophe Leroy (CS GROUP)
  Cc: Sascha Bischoff, linux-kernel, linux-arm-kernel, linuxppc-dev

Get rid of most of the fsl_mc MSI infrastructure, which is now replaced
by common code.

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com> # LX2160ARDB, LS2088ARDB
Tested-by: Sascha Bischoff <sascha.bischoff@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
---
 drivers/bus/fsl-mc/fsl-mc-msi.c             | 166 +------------------
 drivers/bus/fsl-mc/fsl-mc-private.h         |   1 -
 drivers/irqchip/Kconfig                     |   6 -
 drivers/irqchip/Makefile                    |   1 -
 drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c | 168 --------------------
 include/linux/fsl/mc.h                      |   4 -
 include/linux/irqdomain_defs.h              |   1 -
 7 files changed, 8 insertions(+), 339 deletions(-)
 delete mode 100644 drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c

diff --git a/drivers/bus/fsl-mc/fsl-mc-msi.c b/drivers/bus/fsl-mc/fsl-mc-msi.c
index c9f50969e88ce..be38b43803dea 100644
--- a/drivers/bus/fsl-mc/fsl-mc-msi.c
+++ b/drivers/bus/fsl-mc/fsl-mc-msi.c
@@ -15,53 +15,16 @@
 
 #include "fsl-mc-private.h"
 
-#ifdef GENERIC_MSI_DOMAIN_OPS
-/*
- * Generate a unique ID identifying the interrupt (only used within the MSI
- * irqdomain.  Combine the icid with the interrupt index.
- */
-static irq_hw_number_t fsl_mc_domain_calc_hwirq(struct fsl_mc_device *dev,
-						struct msi_desc *desc)
-{
-	/*
-	 * Make the base hwirq value for ICID*10000 so it is readable
-	 * as a decimal value in /proc/interrupts.
-	 */
-	return (irq_hw_number_t)(desc->msi_index + (dev->icid * 10000));
-}
-
-static void fsl_mc_msi_set_desc(msi_alloc_info_t *arg,
-				struct msi_desc *desc)
-{
-	arg->desc = desc;
-	arg->hwirq = fsl_mc_domain_calc_hwirq(to_fsl_mc_device(desc->dev),
-					      desc);
-}
-#else
-#define fsl_mc_msi_set_desc NULL
-#endif
-
-static void fsl_mc_msi_update_dom_ops(struct msi_domain_info *info)
-{
-	struct msi_domain_ops *ops = info->ops;
-
-	if (!ops)
-		return;
-
-	/*
-	 * set_desc should not be set by the caller
-	 */
-	if (!ops->set_desc)
-		ops->set_desc = fsl_mc_msi_set_desc;
-}
-
-static void __fsl_mc_msi_write_msg(struct fsl_mc_device *mc_bus_dev,
-				   struct fsl_mc_device_irq *mc_dev_irq,
-				   struct msi_desc *msi_desc)
+static void fsl_mc_write_msi_msg(struct msi_desc *msi_desc, struct msi_msg *msg)
 {
-	int error;
+	struct fsl_mc_device *mc_bus_dev = to_fsl_mc_device(msi_desc->dev);
+	struct fsl_mc_bus *mc_bus = to_fsl_mc_bus(mc_bus_dev);
+	struct fsl_mc_device_irq *mc_dev_irq = &mc_bus->irq_resources[msi_desc->msi_index];
 	struct fsl_mc_device *owner_mc_dev = mc_dev_irq->mc_dev;
 	struct dprc_irq_cfg irq_cfg;
+	int error;
+
+	msi_desc->msg = *msg;
 
 	/*
 	 * msi_desc->msg.address is 0x0 when this function is invoked in
@@ -110,111 +73,6 @@ static void __fsl_mc_msi_write_msg(struct fsl_mc_device *mc_bus_dev,
 	}
 }
 
-static void fsl_mc_write_msi_msg(struct msi_desc *msi_desc, struct msi_msg *msg)
-{
-	struct fsl_mc_device *mc_bus_dev = to_fsl_mc_device(msi_desc->dev);
-	struct fsl_mc_bus *mc_bus = to_fsl_mc_bus(mc_bus_dev);
-	struct fsl_mc_device_irq *mc_dev_irq =
-		&mc_bus->irq_resources[msi_desc->msi_index];
-
-	msi_desc->msg = *msg;
-
-	/*
-	 * Program the MSI (paddr, value) pair in the device:
-	 */
-	__fsl_mc_msi_write_msg(mc_bus_dev, mc_dev_irq, msi_desc);
-}
-
-/*
- * NOTE: This function is invoked with interrupts disabled
- */
-static void fsl_mc_msi_write_msg(struct irq_data *irq_data,
-				 struct msi_msg *msg)
-{
-	struct msi_desc *msi_desc = irq_data_get_msi_desc(irq_data);
-
-	fsl_mc_write_msi_msg(msi_desc, msg);
-}
-
-static void fsl_mc_msi_update_chip_ops(struct msi_domain_info *info)
-{
-	struct irq_chip *chip = info->chip;
-
-	if (!chip)
-		return;
-
-	/*
-	 * irq_write_msi_msg should not be set by the caller
-	 */
-	if (!chip->irq_write_msi_msg)
-		chip->irq_write_msi_msg = fsl_mc_msi_write_msg;
-}
-
-/**
- * fsl_mc_msi_create_irq_domain - Create a fsl-mc MSI interrupt domain
- * @fwnode:	Optional firmware node of the interrupt controller
- * @info:	MSI domain info
- * @parent:	Parent irq domain
- *
- * Updates the domain and chip ops and creates a fsl-mc MSI
- * interrupt domain.
- *
- * Returns:
- * A domain pointer or NULL in case of failure.
- */
-struct irq_domain *fsl_mc_msi_create_irq_domain(struct fwnode_handle *fwnode,
-						struct msi_domain_info *info,
-						struct irq_domain *parent)
-{
-	struct irq_domain *domain;
-
-	if (WARN_ON((info->flags & MSI_FLAG_LEVEL_CAPABLE)))
-		info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
-	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
-		fsl_mc_msi_update_dom_ops(info);
-	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
-		fsl_mc_msi_update_chip_ops(info);
-	info->flags |= MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS | MSI_FLAG_FREE_MSI_DESCS;
-
-	domain = msi_create_irq_domain(fwnode, info, parent);
-	if (domain)
-		irq_domain_update_bus_token(domain, DOMAIN_BUS_FSL_MC_MSI);
-
-	return domain;
-}
-
-struct irq_domain *fsl_mc_find_msi_domain(struct device *dev)
-{
-	struct device *root_dprc_dev;
-	struct device *bus_dev;
-	struct irq_domain *msi_domain;
-	struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
-
-	fsl_mc_get_root_dprc(dev, &root_dprc_dev);
-	bus_dev = root_dprc_dev->parent;
-
-	if (bus_dev->of_node) {
-		msi_domain = of_msi_map_get_device_domain(dev,
-						  mc_dev->icid,
-						  DOMAIN_BUS_FSL_MC_MSI);
-
-		/*
-		 * if the msi-map property is missing assume that all the
-		 * child containers inherit the domain from the parent
-		 */
-		if (!msi_domain)
-
-			msi_domain = of_msi_get_domain(bus_dev,
-						bus_dev->of_node,
-						DOMAIN_BUS_FSL_MC_MSI);
-	} else {
-		msi_domain = iort_get_device_domain(dev, mc_dev->icid,
-						    DOMAIN_BUS_FSL_MC_MSI);
-	}
-
-	return msi_domain;
-}
-
 struct irq_domain *fsl_mc_get_msi_parent(struct device *dev)
 {
 	struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
@@ -232,18 +90,10 @@ struct irq_domain *fsl_mc_get_msi_parent(struct device *dev)
 int fsl_mc_msi_domain_alloc_irqs(struct device *dev,  unsigned int irq_count)
 {
 	int error = msi_setup_device_data(dev);
-
 	if (error)
 		return error;
 
-	/*
-	 * NOTE: Calling this function will trigger the invocation of the
-	 * its_fsl_mc_msi_prepare() callback
-	 */
-	if (!irq_domain_is_msi_parent(dev_get_msi_domain(dev)))
-		error = msi_domain_alloc_irqs_range(dev, MSI_DEFAULT_DOMAIN, 0, irq_count - 1);
-	else
-		error = platform_device_msi_init_and_alloc_irqs(dev, irq_count, fsl_mc_write_msi_msg);
+	error = platform_device_msi_init_and_alloc_irqs(dev, irq_count, fsl_mc_write_msi_msg);
 	if (error)
 		dev_err(dev, "Failed to allocate IRQs\n");
 	return error;
diff --git a/drivers/bus/fsl-mc/fsl-mc-private.h b/drivers/bus/fsl-mc/fsl-mc-private.h
index 44868f874fd66..197edcc8cde46 100644
--- a/drivers/bus/fsl-mc/fsl-mc-private.h
+++ b/drivers/bus/fsl-mc/fsl-mc-private.h
@@ -641,7 +641,6 @@ int fsl_mc_msi_domain_alloc_irqs(struct device *dev,
 
 void fsl_mc_msi_domain_free_irqs(struct device *dev);
 
-struct irq_domain *fsl_mc_find_msi_domain(struct device *dev);
 struct irq_domain *fsl_mc_get_msi_parent(struct device *dev);
 
 int __must_check fsl_create_mc_io(struct device *dev,
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
index f07b00d7fef90..3e5b2040cb4ef 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -51,12 +51,6 @@ config ARM_GIC_V3_ITS
 	default ARM_GIC_V3
 	select IRQ_MSI_IOMMU
 
-config ARM_GIC_V3_ITS_FSL_MC
-	bool
-	depends on ARM_GIC_V3_ITS
-	depends on FSL_MC_BUS
-	default ARM_GIC_V3_ITS
-
 config ARM_GIC_V5
 	bool
 	select IRQ_DOMAIN_HIERARCHY
diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
index 26aa3b6ec99fd..d5a28cee0d8eb 100644
--- a/drivers/irqchip/Makefile
+++ b/drivers/irqchip/Makefile
@@ -35,7 +35,6 @@ obj-$(CONFIG_ARM_GIC_V2M)		+= irq-gic-v2m.o
 obj-$(CONFIG_ARM_GIC_V3)		+= irq-gic-v3.o irq-gic-v3-mbi.o irq-gic-common.o
 obj-$(CONFIG_ARM_GIC_ITS_PARENT)	+= irq-gic-its-msi-parent.o
 obj-$(CONFIG_ARM_GIC_V3_ITS)		+= irq-gic-v3-its.o irq-gic-v4.o
-obj-$(CONFIG_ARM_GIC_V3_ITS_FSL_MC)	+= irq-gic-v3-its-fsl-mc-msi.o
 obj-$(CONFIG_ARM_GIC_V5)		+= irq-gic-v5.o irq-gic-v5-irs.o irq-gic-v5-its.o \
 					   irq-gic-v5-iwb.o
 obj-$(CONFIG_HISILICON_IRQ_MBIGEN)	+= irq-mbigen.o
diff --git a/drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c b/drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
deleted file mode 100644
index b5785472765a3..0000000000000
--- a/drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
+++ /dev/null
@@ -1,168 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Freescale Management Complex (MC) bus driver MSI support
- *
- * Copyright (C) 2015-2016 Freescale Semiconductor, Inc.
- * Author: German Rivera <German.Rivera@freescale.com>
- *
- */
-
-#include <linux/acpi.h>
-#include <linux/acpi_iort.h>
-#include <linux/irq.h>
-#include <linux/msi.h>
-#include <linux/of.h>
-#include <linux/of_irq.h>
-#include <linux/fsl/mc.h>
-
-static struct irq_chip its_msi_irq_chip = {
-	.name = "ITS-fMSI",
-	.irq_mask = irq_chip_mask_parent,
-	.irq_unmask = irq_chip_unmask_parent,
-	.irq_eoi = irq_chip_eoi_parent,
-	.irq_set_affinity = msi_domain_set_affinity
-};
-
-static u32 fsl_mc_msi_domain_get_msi_id(struct irq_domain *domain,
-					struct fsl_mc_device *mc_dev)
-{
-	struct device_node *of_node;
-	u32 out_id;
-
-	of_node = irq_domain_get_of_node(domain);
-	out_id = of_node ? of_msi_xlate(&mc_dev->dev, &of_node, mc_dev->icid) :
-			iort_msi_map_id(&mc_dev->dev, mc_dev->icid);
-
-	return out_id;
-}
-
-static int its_fsl_mc_msi_prepare(struct irq_domain *msi_domain,
-				  struct device *dev,
-				  int nvec, msi_alloc_info_t *info)
-{
-	struct fsl_mc_device *mc_bus_dev;
-	struct msi_domain_info *msi_info;
-
-	if (!dev_is_fsl_mc(dev))
-		return -EINVAL;
-
-	mc_bus_dev = to_fsl_mc_device(dev);
-	if (!(mc_bus_dev->flags & FSL_MC_IS_DPRC))
-		return -EINVAL;
-
-	/*
-	 * Set the device Id to be passed to the GIC-ITS:
-	 *
-	 * NOTE: This device id corresponds to the IOMMU stream ID
-	 * associated with the DPRC object (ICID).
-	 */
-	info->scratchpad[0].ul = fsl_mc_msi_domain_get_msi_id(msi_domain,
-							      mc_bus_dev);
-	msi_info = msi_get_domain_info(msi_domain->parent);
-
-	/* Allocate at least 32 MSIs, and always as a power of 2 */
-	nvec = max_t(int, 32, roundup_pow_of_two(nvec));
-	return msi_info->ops->msi_prepare(msi_domain->parent, dev, nvec, info);
-}
-
-static struct msi_domain_ops its_fsl_mc_msi_ops __ro_after_init = {
-	.msi_prepare = its_fsl_mc_msi_prepare,
-};
-
-static struct msi_domain_info its_fsl_mc_msi_domain_info = {
-	.flags	= (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS),
-	.ops	= &its_fsl_mc_msi_ops,
-	.chip	= &its_msi_irq_chip,
-};
-
-static const struct of_device_id its_device_id[] = {
-	{	.compatible	= "arm,gic-v3-its",	},
-	{},
-};
-
-static void __init its_fsl_mc_msi_init_one(struct fwnode_handle *handle,
-					  const char *name)
-{
-	struct irq_domain *parent;
-	struct irq_domain *mc_msi_domain;
-
-	parent = irq_find_matching_fwnode(handle, DOMAIN_BUS_NEXUS);
-	if (!parent || !msi_get_domain_info(parent)) {
-		pr_err("%s: unable to locate ITS domain\n", name);
-		return;
-	}
-
-	mc_msi_domain = fsl_mc_msi_create_irq_domain(handle,
-						&its_fsl_mc_msi_domain_info,
-						parent);
-	if (!mc_msi_domain) {
-		pr_err("%s: unable to create fsl-mc domain\n", name);
-		return;
-	}
-
-	pr_info("fsl-mc MSI: %s domain created\n", name);
-}
-
-#ifdef CONFIG_ACPI
-static int __init
-its_fsl_mc_msi_parse_madt(union acpi_subtable_headers *header,
-			  const unsigned long end)
-{
-	struct acpi_madt_generic_translator *its_entry;
-	struct fwnode_handle *dom_handle;
-	const char *node_name;
-	int err = 0;
-
-	its_entry = (struct acpi_madt_generic_translator *)header;
-	node_name = kasprintf(GFP_KERNEL, "ITS@0x%lx",
-			      (long)its_entry->base_address);
-
-	dom_handle = iort_find_domain_token(its_entry->translation_id);
-	if (!dom_handle) {
-		pr_err("%s: Unable to locate ITS domain handle\n", node_name);
-		err = -ENXIO;
-		goto out;
-	}
-
-	its_fsl_mc_msi_init_one(dom_handle, node_name);
-
-out:
-	kfree(node_name);
-	return err;
-}
-
-
-static void __init its_fsl_mc_acpi_msi_init(void)
-{
-	acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_TRANSLATOR,
-			      its_fsl_mc_msi_parse_madt, 0);
-}
-#else
-static inline void its_fsl_mc_acpi_msi_init(void) { }
-#endif
-
-static void __init its_fsl_mc_of_msi_init(void)
-{
-	struct device_node *np;
-
-	for (np = of_find_matching_node(NULL, its_device_id); np;
-	     np = of_find_matching_node(np, its_device_id)) {
-		if (!of_device_is_available(np))
-			continue;
-		if (!of_property_read_bool(np, "msi-controller"))
-			continue;
-
-		its_fsl_mc_msi_init_one(of_fwnode_handle(np),
-					np->full_name);
-	}
-}
-
-static int __init its_fsl_mc_msi_init(void)
-{
-	its_fsl_mc_of_msi_init();
-	its_fsl_mc_acpi_msi_init();
-
-	return 0;
-}
-
-early_initcall(its_fsl_mc_msi_init);
diff --git a/include/linux/fsl/mc.h b/include/linux/fsl/mc.h
index bcc38c0fc230a..e9522233f9b57 100644
--- a/include/linux/fsl/mc.h
+++ b/include/linux/fsl/mc.h
@@ -425,10 +425,6 @@ int __must_check fsl_mc_object_allocate(struct fsl_mc_device *mc_dev,
 
 void fsl_mc_object_free(struct fsl_mc_device *mc_adev);
 
-struct irq_domain *fsl_mc_msi_create_irq_domain(struct fwnode_handle *fwnode,
-						struct msi_domain_info *info,
-						struct irq_domain *parent);
-
 int __must_check fsl_mc_allocate_irqs(struct fsl_mc_device *mc_dev);
 
 void fsl_mc_free_irqs(struct fsl_mc_device *mc_dev);
diff --git a/include/linux/irqdomain_defs.h b/include/linux/irqdomain_defs.h
index 36653e2ee1c92..3a03bdfeeee93 100644
--- a/include/linux/irqdomain_defs.h
+++ b/include/linux/irqdomain_defs.h
@@ -17,7 +17,6 @@ enum irq_domain_bus_token {
 	DOMAIN_BUS_PLATFORM_MSI,
 	DOMAIN_BUS_NEXUS,
 	DOMAIN_BUS_IPI,
-	DOMAIN_BUS_FSL_MC_MSI,
 	DOMAIN_BUS_TI_SCI_INTA_MSI,
 	DOMAIN_BUS_WAKEUP,
 	DOMAIN_BUS_VMD_MSI,
-- 
2.47.3



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

* [PATCH v2 6/6] platform-msi: Remove stale comment
  2026-02-24 10:09 [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Marc Zyngier
                   ` (4 preceding siblings ...)
  2026-02-24 10:09 ` [PATCH v2 5/6] fsl-mc: Remove legacy MSI implementation Marc Zyngier
@ 2026-02-24 10:09 ` Marc Zyngier
  2026-02-24 16:15 ` [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Thomas Gleixner
  2026-02-26  9:50 ` Christophe Leroy (CS GROUP)
  7 siblings, 0 replies; 13+ messages in thread
From: Marc Zyngier @ 2026-02-24 10:09 UTC (permalink / raw)
  To: Ioana Ciornei, Thomas Gleixner, Christophe Leroy (CS GROUP)
  Cc: Sascha Bischoff, linux-kernel, linux-arm-kernel, linuxppc-dev

The backward compatibility code for the previous incarnation of
platform MSI was removed in e9894248994ca ("genirq/msi: Remove
platform MSI leftovers"), but the comment about that removal is
still present.  Remove it.

Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com> # LX2160ARDB, LS2088ARDB
Tested-by: Sascha Bischoff <sascha.bischoff@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
---
 drivers/base/platform-msi.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c
index 70db08f3ac6fa..69eed058eb208 100644
--- a/drivers/base/platform-msi.c
+++ b/drivers/base/platform-msi.c
@@ -61,10 +61,6 @@ static const struct msi_domain_template platform_msi_template = {
  * parent. The parent domain sets up the new domain. The domain has
  * a fixed size of @nvec. The domain is managed by devres and will
  * be removed when the device is removed.
- *
- * Note: For migration purposes this falls back to the original platform_msi code
- *	 up to the point where all platforms have been converted to the MSI
- *	 parent model.
  */
 int platform_device_msi_init_and_alloc_irqs(struct device *dev, unsigned int nvec,
 					    irq_write_msi_msg_t write_msi_msg)
-- 
2.47.3



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

* Re: [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure
  2026-02-24 10:09 [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Marc Zyngier
                   ` (5 preceding siblings ...)
  2026-02-24 10:09 ` [PATCH v2 6/6] platform-msi: Remove stale comment Marc Zyngier
@ 2026-02-24 16:15 ` Thomas Gleixner
  2026-02-26  9:50 ` Christophe Leroy (CS GROUP)
  7 siblings, 0 replies; 13+ messages in thread
From: Thomas Gleixner @ 2026-02-24 16:15 UTC (permalink / raw)
  To: Marc Zyngier, Ioana Ciornei, Christophe Leroy (CS GROUP)
  Cc: Sascha Bischoff, linux-kernel, linux-arm-kernel, linuxppc-dev

On Tue, Feb 24 2026 at 10:09, Marc Zyngier wrote:

> This is the second drop of this cleanup series for the fsl-mc MSI
> infrastructure, initially posted at [1].
>
> * From v1 [1]:
>
>   - Drop the now unused DOMAIN_BUS_FSL_MC_MSI bus token
>
>   - Tidy-up fsl_mc_write_msi_msg() while removing the legacy helper
>
>   - Fix include ordering in irq-gic-its-msi-parent.c
>
>   - Various commit message cleanups
>
>   - Collected tags from Ioana and Sascha, with thanks
>
>   - Rebased on top of v7.0.rc1
>
> [1] https://lore.kernel.org/r/20260218135203.2267907-1-maz@kernel.org

Acked-by: Thomas Gleixner <tglx@kernel.org>

in case this goes through the FSL SoC tree. If not, please let me know
and I pick it up.

Thanks,

        tglx


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

* Re: [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure
  2026-02-24 10:09 [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Marc Zyngier
                   ` (6 preceding siblings ...)
  2026-02-24 16:15 ` [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Thomas Gleixner
@ 2026-02-26  9:50 ` Christophe Leroy (CS GROUP)
  2026-05-10 13:00   ` Marc Zyngier
  7 siblings, 1 reply; 13+ messages in thread
From: Christophe Leroy (CS GROUP) @ 2026-02-26  9:50 UTC (permalink / raw)
  To: Ioana Ciornei, Thomas Gleixner, Marc Zyngier
  Cc: Christophe Leroy, Sascha Bischoff, linux-kernel, linux-arm-kernel,
	linuxppc-dev


On Tue, 24 Feb 2026 10:09:30 +0000, Marc Zyngier wrote:
> This is the second drop of this cleanup series for the fsl-mc MSI
> infrastructure, initially posted at [1].
> 
> * From v1 [1]:
> 
>   - Drop the now unused DOMAIN_BUS_FSL_MC_MSI bus token
> 
> [...]

Applied, thanks!

[1/6] fsl-mc: Remove MSI domain propagation to sub-devices
      commit: 1fb7392ee3408494d4d62c09a8c3e5f5934caba7
[2/6] fsl-mc: Add minimal infrastructure to use platform MSI
      commit: 0c9f522f2d41c7e055a602a0d2c41dc7af01010b
[3/6] irqchip/gic-v3-its: Add fsl_mc device plumbing to the msi-parent handling
      commit: cf3179b4e53f527aba9f0c6c3b921619c8adf761
[4/6] fsl-mc: Switch over to per-device platform MSI
      commit: 4a958e47c246fa3fb8954f4303e0da15ab3d026d
[5/6] fsl-mc: Remove legacy MSI implementation
      commit: 14b1cbcc6cec0b02298f4adf717646cd943b7ef6
[6/6] platform-msi: Remove stale comment
      commit: f0a2eac6a597268034fd40d92c1469182438b53d

Best regards,
-- 
Christophe Leroy (CS GROUP) <chleroy@kernel.org>


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

* Re: [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure
  2026-02-26  9:50 ` Christophe Leroy (CS GROUP)
@ 2026-05-10 13:00   ` Marc Zyngier
  2026-05-18 13:51     ` Christophe Leroy (CS GROUP)
  0 siblings, 1 reply; 13+ messages in thread
From: Marc Zyngier @ 2026-05-10 13:00 UTC (permalink / raw)
  To: Christophe Leroy (CS GROUP)
  Cc: Ioana Ciornei, Thomas Gleixner, Sascha Bischoff, linux-kernel,
	linux-arm-kernel, linuxppc-dev

On Thu, 26 Feb 2026 09:50:43 +0000,
"Christophe Leroy (CS GROUP)" <chleroy@kernel.org> wrote:
> 
> 
> On Tue, 24 Feb 2026 10:09:30 +0000, Marc Zyngier wrote:
> > This is the second drop of this cleanup series for the fsl-mc MSI
> > infrastructure, initially posted at [1].
> > 
> > * From v1 [1]:
> > 
> >   - Drop the now unused DOMAIN_BUS_FSL_MC_MSI bus token
> > 
> > [...]
> 
> Applied, thanks!
> 
> [1/6] fsl-mc: Remove MSI domain propagation to sub-devices
>       commit: 1fb7392ee3408494d4d62c09a8c3e5f5934caba7
> [2/6] fsl-mc: Add minimal infrastructure to use platform MSI
>       commit: 0c9f522f2d41c7e055a602a0d2c41dc7af01010b
> [3/6] irqchip/gic-v3-its: Add fsl_mc device plumbing to the msi-parent handling
>       commit: cf3179b4e53f527aba9f0c6c3b921619c8adf761
> [4/6] fsl-mc: Switch over to per-device platform MSI
>       commit: 4a958e47c246fa3fb8954f4303e0da15ab3d026d
> [5/6] fsl-mc: Remove legacy MSI implementation
>       commit: 14b1cbcc6cec0b02298f4adf717646cd943b7ef6
> [6/6] platform-msi: Remove stale comment
>       commit: f0a2eac6a597268034fd40d92c1469182438b53d

Is there any particular reason why this didn't make it into 7.1?

I was really looking forward to some additional cleanups in the GICv3
ITS code, and this gets in the way.

Do I need to respin it?

Thanks,

	M.

-- 
Jazz isn't dead. It just smells funny.


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

* Re: [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure
  2026-05-10 13:00   ` Marc Zyngier
@ 2026-05-18 13:51     ` Christophe Leroy (CS GROUP)
  2026-05-18 14:24       ` Marc Zyngier
  0 siblings, 1 reply; 13+ messages in thread
From: Christophe Leroy (CS GROUP) @ 2026-05-18 13:51 UTC (permalink / raw)
  To: Marc Zyngier, Arnd Bergmann
  Cc: Ioana Ciornei, Thomas Gleixner, Sascha Bischoff, linux-kernel,
	linux-arm-kernel, linuxppc-dev

Hi Marc,

Le 10/05/2026 à 15:00, Marc Zyngier a écrit :
> On Thu, 26 Feb 2026 09:50:43 +0000,
> "Christophe Leroy (CS GROUP)" <chleroy@kernel.org> wrote:
>>
>>
>> On Tue, 24 Feb 2026 10:09:30 +0000, Marc Zyngier wrote:
>>> This is the second drop of this cleanup series for the fsl-mc MSI
>>> infrastructure, initially posted at [1].
>>>
>>> * From v1 [1]:
>>>
>>>    - Drop the now unused DOMAIN_BUS_FSL_MC_MSI bus token
>>>
>>> [...]
>>
>> Applied, thanks!
>>
>> [1/6] fsl-mc: Remove MSI domain propagation to sub-devices
>>        commit: 1fb7392ee3408494d4d62c09a8c3e5f5934caba7
>> [2/6] fsl-mc: Add minimal infrastructure to use platform MSI
>>        commit: 0c9f522f2d41c7e055a602a0d2c41dc7af01010b
>> [3/6] irqchip/gic-v3-its: Add fsl_mc device plumbing to the msi-parent handling
>>        commit: cf3179b4e53f527aba9f0c6c3b921619c8adf761
>> [4/6] fsl-mc: Switch over to per-device platform MSI
>>        commit: 4a958e47c246fa3fb8954f4303e0da15ab3d026d
>> [5/6] fsl-mc: Remove legacy MSI implementation
>>        commit: 14b1cbcc6cec0b02298f4adf717646cd943b7ef6
>> [6/6] platform-msi: Remove stale comment
>>        commit: f0a2eac6a597268034fd40d92c1469182438b53d
> 
> Is there any particular reason why this didn't make it into 7.1?

I sent a pull request [1] as early as possible after Easter break, but 
it was apparently too late. Or maybe that was because I did a last 
minute rebase, I'm not sure what the real reason. I tentatively sent an 
alternative pull request [2] the day after after rolling back the 
rebase, but I got no feedback.

> 
> I was really looking forward to some additional cleanups in the GICv3
> ITS code, and this gets in the way.

It is still in linux-next and finger crossed will go in 7.2

 > > Do I need to respin it?

No, I'd like to avoid having to rebase again. If you have changes to the 
series please send followup patches.

Christophe

[1] 
https://patchwork.kernel.org/project/linux-soc/patch/69cdadd6-523c-4a79-8cb3-1deff5910699@kernel.org/

[2] 
https://patchwork.kernel.org/project/linux-soc/patch/310b65ba-1d73-4ce0-b332-00cde70acc69@kernel.org/


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

* Re: [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure
  2026-05-18 13:51     ` Christophe Leroy (CS GROUP)
@ 2026-05-18 14:24       ` Marc Zyngier
  2026-05-18 15:24         ` Arnd Bergmann
  0 siblings, 1 reply; 13+ messages in thread
From: Marc Zyngier @ 2026-05-18 14:24 UTC (permalink / raw)
  To: Christophe Leroy (CS GROUP)
  Cc: Arnd Bergmann, Ioana Ciornei, Thomas Gleixner, Sascha Bischoff,
	linux-kernel, linux-arm-kernel, linuxppc-dev

On Mon, 18 May 2026 14:51:48 +0100,
"Christophe Leroy (CS GROUP)" <chleroy@kernel.org> wrote:
>
> > > Do I need to respin it?
> 
> No, I'd like to avoid having to rebase again. If you have changes to
> the series please send followup patches.

No follow-up patches for that particular series, I just wanted to find
out whether I could start posting additional changes that do not
directly involve fsl-mc, but that are prevented by the current state
of the code (such as trying to move the ITS initialisation much later
in the boot process).

I'll postpone my changes to 7.3, and keep my fingers crossed for this
to hit 7.2.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.


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

* Re: [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure
  2026-05-18 14:24       ` Marc Zyngier
@ 2026-05-18 15:24         ` Arnd Bergmann
  0 siblings, 0 replies; 13+ messages in thread
From: Arnd Bergmann @ 2026-05-18 15:24 UTC (permalink / raw)
  To: Marc Zyngier, Christophe Leroy
  Cc: Ioana Ciornei, Thomas Gleixner, Sascha Bischoff, linux-kernel,
	linux-arm-kernel, linuxppc-dev

On Mon, May 18, 2026, at 16:24, Marc Zyngier wrote:
> On Mon, 18 May 2026 14:51:48 +0100,
> "Christophe Leroy (CS GROUP)" <chleroy@kernel.org> wrote:
>>
>> > > Do I need to respin it?
>> 
>> No, I'd like to avoid having to rebase again. If you have changes to
>> the series please send followup patches.

Sorry this got held up even longer now. I meant to reply
earlier but dropped the ball on that while sending the merge
window contents.

This was indeed bad timing as the original pull request reached
me only after 7.0 was already out.

> No follow-up patches for that particular series, I just wanted to find
> out whether I could start posting additional changes that do not
> directly involve fsl-mc, but that are prevented by the current state
> of the code (such as trying to move the ITS initialisation much later
> in the boot process).
>
> I'll postpone my changes to 7.3, and keep my fingers crossed for this
> to hit 7.2.

I've merged the soc_fsl-7.1-2 tag into the soc/drivers branch
for 7.2 now. You should be able to base your other changes on top
of f0a2eac6a597 ("platform-msi: Remove stale comment") as a shared
branch.

    Arnd


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

end of thread, other threads:[~2026-05-18 15:25 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-24 10:09 [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Marc Zyngier
2026-02-24 10:09 ` [PATCH v2 1/6] fsl-mc: Remove MSI domain propagation to sub-devices Marc Zyngier
2026-02-24 10:09 ` [PATCH v2 2/6] fsl-mc: Add minimal infrastructure to use platform MSI Marc Zyngier
2026-02-24 10:09 ` [PATCH v2 3/6] irqchip/gic-v3-its: Add fsl_mc device plumbing to the msi-parent handling Marc Zyngier
2026-02-24 10:09 ` [PATCH v2 4/6] fsl-mc: Switch over to per-device platform MSI Marc Zyngier
2026-02-24 10:09 ` [PATCH v2 5/6] fsl-mc: Remove legacy MSI implementation Marc Zyngier
2026-02-24 10:09 ` [PATCH v2 6/6] platform-msi: Remove stale comment Marc Zyngier
2026-02-24 16:15 ` [PATCH v2 0/6] fsl-mc: Move over to device MSI infrastructure Thomas Gleixner
2026-02-26  9:50 ` Christophe Leroy (CS GROUP)
2026-05-10 13:00   ` Marc Zyngier
2026-05-18 13:51     ` Christophe Leroy (CS GROUP)
2026-05-18 14:24       ` Marc Zyngier
2026-05-18 15:24         ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox