irqchip: Make irq-msi-lib.h globally available
authorMarc Zyngier <maz@kernel.org>
Tue, 13 May 2025 17:28:11 +0000 (18:28 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 16 May 2025 19:32:19 +0000 (21:32 +0200)
Move irq-msi-lib.h into include/linux/irqchip, making it available
to compilation units outside of drivers/irqchip.

This requires some churn in drivers to fetch it from the new location,
generated using this script:

git grep -l -w \"irq-msi-lib.h\" | \
xargs sed -i -e 's:"irq-msi-lib.h":\<linux/irqchip/irq-msi-lib.h\>:'

Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20250513172819.2216709-2-maz@kernel.org
17 files changed:
drivers/irqchip/irq-bcm2712-mip.c
drivers/irqchip/irq-gic-v2m.c
drivers/irqchip/irq-gic-v3-its-msi-parent.c
drivers/irqchip/irq-gic-v3-its.c
drivers/irqchip/irq-gic-v3-mbi.c
drivers/irqchip/irq-imx-mu-msi.c
drivers/irqchip/irq-loongarch-avec.c
drivers/irqchip/irq-loongson-pch-msi.c
drivers/irqchip/irq-msi-lib.c
drivers/irqchip/irq-msi-lib.h [deleted file]
drivers/irqchip/irq-mvebu-gicp.c
drivers/irqchip/irq-mvebu-icu.c
drivers/irqchip/irq-mvebu-odmi.c
drivers/irqchip/irq-mvebu-sei.c
drivers/irqchip/irq-riscv-imsic-platform.c
drivers/irqchip/irq-sg2042-msi.c
include/linux/irqchip/irq-msi-lib.h [new file with mode: 0644]

index 49a19db2d1e1b32c5384eed7ffa9e79968553ebb..f04a42b16cca0b96e3b204a1330e595c2bedf48b 100644 (file)
@@ -11,7 +11,7 @@
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 #define MIP_INT_RAISE          0x00
 #define MIP_INT_CLEAR          0x10
index c6989486186667356362d9dd321e728bf978acfc..62676994d0695efcb4f87b95d34f8756255ed24d 100644 (file)
@@ -26,7 +26,7 @@
 #include <linux/irqchip/arm-gic.h>
 #include <linux/irqchip/arm-gic-common.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 /*
 * MSI_TYPER:
index 6a5f64f120d4ae05d3ae9c22ecc873d81b652fa3..d039ec54194071915573d51f8968e3814d0fc842 100644 (file)
@@ -8,7 +8,7 @@
 #include <linux/pci.h>
 
 #include "irq-gic-common.h"
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 #define ITS_MSI_FLAGS_REQUIRED  (MSI_FLAG_USE_DEF_DOM_OPS |    \
                                 MSI_FLAG_USE_DEF_CHIP_OPS |    \
index a77f11e23ad6c0b6440b083019ba0bbf57f353ff..d651cd41e7abef85f221e1da787e2c36f6eb234f 100644 (file)
@@ -41,7 +41,7 @@
 #include <asm/exception.h>
 
 #include "irq-gic-common.h"
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 #define ITS_FLAGS_CMDQ_NEEDS_FLUSHING          (1ULL << 0)
 #define ITS_FLAGS_WORKAROUND_CAVIUM_22375      (1ULL << 1)
index 34e9ca77a8c368c84667bd3df0af7eb1a8e37a22..e562b57923229e98542c1b1f5525f7b7bd518607 100644 (file)
@@ -18,7 +18,7 @@
 
 #include <linux/irqchip/arm-gic-v3.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 struct mbi_range {
        u32                     spi_start;
index 69aacdfc8bef01278fef78f05914df80292163d1..137da1927d144403d9aec5ba1b507bfba97f07ed 100644 (file)
@@ -24,7 +24,7 @@
 #include <linux/pm_domain.h>
 #include <linux/spinlock.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 #define IMX_MU_CHANS            4
 
index 80e55955a29fa15e35523a5a27a2bcee3e1c27dd..bf52dc8345f5ffeb27494344dfd02ba8f915401c 100644 (file)
@@ -18,7 +18,7 @@
 #include <asm/loongarch.h>
 #include <asm/setup.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 #include "irq-loongson.h"
 
 #define VECTORS_PER_REG                64
index 9c62108b3ad588103f9f74f03d931fcdb67d760b..fb690c7cbcaa62bb2800b895d46b580ef77a7ef6 100644 (file)
@@ -15,7 +15,7 @@
 #include <linux/pci.h>
 #include <linux/slab.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 #include "irq-loongson.h"
 
 static int nr_pics;
index 51464c6257f37fdebbd65bc791e22b9cebd78855..2a61c06c4da07e21297ef3b00157179c5aad4d50 100644 (file)
@@ -4,7 +4,7 @@
 
 #include <linux/export.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 /**
  * msi_lib_init_dev_msi_info - Domain info setup for MSI domains
diff --git a/drivers/irqchip/irq-msi-lib.h b/drivers/irqchip/irq-msi-lib.h
deleted file mode 100644 (file)
index 681ceab..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-// Copyright (C) 2022 Linutronix GmbH
-// Copyright (C) 2022 Intel
-
-#ifndef _DRIVERS_IRQCHIP_IRQ_MSI_LIB_H
-#define _DRIVERS_IRQCHIP_IRQ_MSI_LIB_H
-
-#include <linux/bits.h>
-#include <linux/irqdomain.h>
-#include <linux/msi.h>
-
-#ifdef CONFIG_PCI_MSI
-#define MATCH_PCI_MSI          BIT(DOMAIN_BUS_PCI_MSI)
-#else
-#define MATCH_PCI_MSI          (0)
-#endif
-
-#define MATCH_PLATFORM_MSI     BIT(DOMAIN_BUS_PLATFORM_MSI)
-
-int msi_lib_irq_domain_select(struct irq_domain *d, struct irq_fwspec *fwspec,
-                             enum irq_domain_bus_token bus_token);
-
-bool msi_lib_init_dev_msi_info(struct device *dev, struct irq_domain *domain,
-                              struct irq_domain *real_parent,
-                              struct msi_domain_info *info);
-
-#endif /* _DRIVERS_IRQCHIP_IRQ_MSI_LIB_H */
index d67f93f6d750566111d3ac696b309d66d2769ceb..0b2a857b490182f364773e94cef3ec5abf23ce52 100644 (file)
@@ -17,7 +17,7 @@
 #include <linux/of_platform.h>
 #include <linux/platform_device.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
index 4eebed39880a5b82330958f8eeaad55ff5dd43f6..db5dbc6e88b05d7fcfa26b958b3fde273df3fba8 100644 (file)
@@ -20,7 +20,7 @@
 #include <linux/of_platform.h>
 #include <linux/platform_device.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 #include <dt-bindings/interrupt-controller/mvebu-icu.h>
 
index 28f7e81df94f0a34c6287555621960c2f669dcfc..306a7754e44f813de865ba6097c143a86619100a 100644 (file)
@@ -18,7 +18,7 @@
 #include <linux/of_address.h>
 #include <linux/slab.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
index ebd4a9014e8da4aff74a18cc84985566b4872e2a..a962ef4977169c87bf0b76e5b80796d3a0e04cdf 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/of_irq.h>
 #include <linux/of_platform.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 /* Cause register */
 #define GICP_SECR(idx)         (0x0  + ((idx) * 0x4))
index b8ae67c25b37a3050e05631d4f9807b4a7ddcc88..1b9fbfce95816a7f5b438c12a62c45a6743fe9de 100644 (file)
@@ -20,7 +20,7 @@
 #include <linux/spinlock.h>
 #include <linux/smp.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 #include "irq-riscv-imsic-state.h"
 
 static bool imsic_cpu_page_phys(unsigned int cpu, unsigned int guest_index,
index ee682e87eb8be2ebc7df35911c59493e2d8d5136..d641f3a5eee9ebb319e853bb2bb97020e45a01be 100644 (file)
@@ -17,7 +17,7 @@
 #include <linux/property.h>
 #include <linux/slab.h>
 
-#include "irq-msi-lib.h"
+#include <linux/irqchip/irq-msi-lib.h>
 
 #define SG2042_MAX_MSI_VECTOR  32
 
diff --git a/include/linux/irqchip/irq-msi-lib.h b/include/linux/irqchip/irq-msi-lib.h
new file mode 100644 (file)
index 0000000..dd8d1d1
--- /dev/null
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: GPL-2.0-only
+// Copyright (C) 2022 Linutronix GmbH
+// Copyright (C) 2022 Intel
+
+#ifndef _IRQCHIP_IRQ_MSI_LIB_H
+#define _IRQCHIP_IRQ_MSI_LIB_H
+
+#include <linux/bits.h>
+#include <linux/irqdomain.h>
+#include <linux/msi.h>
+
+#ifdef CONFIG_PCI_MSI
+#define MATCH_PCI_MSI          BIT(DOMAIN_BUS_PCI_MSI)
+#else
+#define MATCH_PCI_MSI          (0)
+#endif
+
+#define MATCH_PLATFORM_MSI     BIT(DOMAIN_BUS_PLATFORM_MSI)
+
+int msi_lib_irq_domain_select(struct irq_domain *d, struct irq_fwspec *fwspec,
+                             enum irq_domain_bus_token bus_token);
+
+bool msi_lib_init_dev_msi_info(struct device *dev, struct irq_domain *domain,
+                              struct irq_domain *real_parent,
+                              struct msi_domain_info *info);
+
+#endif /* _IRQCHIP_IRQ_MSI_LIB_H */