]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI/MSI: Delete pci_msi_create_irq_domain()
authorNam Cao <namcao@linutronix.de>
Mon, 21 Jul 2025 06:36:26 +0000 (08:36 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 16 Oct 2025 19:09:52 +0000 (21:09 +0200)
pci_msi_create_irq_domain() is now unused. Delete it.

Signed-off-by: Nam Cao <namcao@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/msi/irqdomain.c
include/linux/msi.h

index ce741ed9dc3fc2f4584d1d4e6e055aef7eb5f4c3..a329060287b5b71e1d25bcb53dd05d12a73f79ed 100644 (file)
@@ -49,96 +49,6 @@ static void pci_msi_domain_write_msg(struct irq_data *irq_data, struct msi_msg *
                __pci_write_msi_msg(desc, msg);
 }
 
-/**
- * pci_msi_domain_calc_hwirq - Generate a unique ID for an MSI source
- * @desc:      Pointer to the MSI descriptor
- *
- * The ID number is only used within the irqdomain.
- */
-static irq_hw_number_t pci_msi_domain_calc_hwirq(struct msi_desc *desc)
-{
-       struct pci_dev *dev = msi_desc_to_pci_dev(desc);
-
-       return (irq_hw_number_t)desc->msi_index |
-               pci_dev_id(dev) << 11 |
-               ((irq_hw_number_t)(pci_domain_nr(dev->bus) & 0xFFFFFFFF)) << 27;
-}
-
-static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
-                                   struct msi_desc *desc)
-{
-       arg->desc = desc;
-       arg->hwirq = pci_msi_domain_calc_hwirq(desc);
-}
-
-static struct msi_domain_ops pci_msi_domain_ops_default = {
-       .set_desc       = pci_msi_domain_set_desc,
-};
-
-static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
-{
-       struct msi_domain_ops *ops = info->ops;
-
-       if (ops == NULL) {
-               info->ops = &pci_msi_domain_ops_default;
-       } else {
-               if (ops->set_desc == NULL)
-                       ops->set_desc = pci_msi_domain_set_desc;
-       }
-}
-
-static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
-{
-       struct irq_chip *chip = info->chip;
-
-       BUG_ON(!chip);
-       if (!chip->irq_write_msi_msg)
-               chip->irq_write_msi_msg = pci_msi_domain_write_msg;
-       if (!chip->irq_mask)
-               chip->irq_mask = pci_msi_mask_irq;
-       if (!chip->irq_unmask)
-               chip->irq_unmask = pci_msi_unmask_irq;
-}
-
-/**
- * pci_msi_create_irq_domain - Create a MSI interrupt domain
- * @fwnode:    Optional fwnode of the interrupt controller
- * @info:      MSI domain info
- * @parent:    Parent irq domain
- *
- * Updates the domain and chip ops and creates a MSI interrupt domain.
- *
- * Returns:
- * A domain pointer or NULL in case of failure.
- */
-struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
-                                            struct msi_domain_info *info,
-                                            struct irq_domain *parent)
-{
-       if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE))
-               info->flags &= ~MSI_FLAG_LEVEL_CAPABLE;
-
-       if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
-               pci_msi_domain_update_dom_ops(info);
-       if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
-               pci_msi_domain_update_chip_ops(info);
-
-       /* Let the core code free MSI descriptors when freeing interrupts */
-       info->flags |= MSI_FLAG_FREE_MSI_DESCS;
-
-       info->flags |= MSI_FLAG_ACTIVATE_EARLY | MSI_FLAG_DEV_SYSFS;
-       if (IS_ENABLED(CONFIG_GENERIC_IRQ_RESERVATION_MODE))
-               info->flags |= MSI_FLAG_MUST_REACTIVATE;
-
-       /* PCI-MSI is oneshot-safe */
-       info->chip->flags |= IRQCHIP_ONESHOT_SAFE;
-       /* Let the core update the bus token */
-       info->bus_token = DOMAIN_BUS_PCI_MSI;
-
-       return msi_create_irq_domain(fwnode, info, parent);
-}
-EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
-
 /*
  * Per device MSI[-X] domain functionality
  */
index d415dd15a0a905a1ac2e1705e5e38daf4c521f49..8003e3218c46bc2e54da525b7a7871eef97b4e6f 100644 (file)
@@ -701,9 +701,6 @@ void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
 void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
 void pci_msi_mask_irq(struct irq_data *data);
 void pci_msi_unmask_irq(struct irq_data *data);
-struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
-                                            struct msi_domain_info *info,
-                                            struct irq_domain *parent);
 u32 pci_msi_domain_get_msi_rid(struct irq_domain *domain, struct pci_dev *pdev);
 u32 pci_msi_map_rid_ctlr_node(struct pci_dev *pdev, struct device_node **node);
 struct irq_domain *pci_msi_get_device_domain(struct pci_dev *pdev);