]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
irqchip/sg2042-msi: Switch to msi_create_parent_irq_domain()
authorThomas Gleixner <tglx@linutronix.de>
Thu, 26 Jun 2025 14:49:03 +0000 (16:49 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 3 Jul 2025 13:49:24 +0000 (15:49 +0200)
Switch to use the concise helper to create an MSI parent domain.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Nam Cao <namcao@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Chen Wang <unicorn_wang@outlook.com>
Link: https://lore.kernel.org/all/3e901db1a4c87678af053019774d95b73bfb9ef9.1750860131.git.namcao@linutronix.de
drivers/irqchip/irq-sg2042-msi.c

index af16bc5a3c8b566d21e678dc3e36050c8aacc816..bcfddc51bc6a18037a0d8c94fd4d38b5ac3c4c4c 100644 (file)
@@ -219,20 +219,18 @@ static const struct msi_parent_ops sg2044_msi_parent_ops = {
 static int sg204x_msi_init_domains(struct sg204x_msi_chipdata *data,
                                   struct irq_domain *plic_domain, struct device *dev)
 {
-       struct fwnode_handle *fwnode = dev_fwnode(dev);
-       struct irq_domain *middle_domain;
-
-       middle_domain = irq_domain_create_hierarchy(plic_domain, 0, data->num_irqs, fwnode,
-                                                   &sg204x_msi_middle_domain_ops, data);
-       if (!middle_domain) {
+       struct irq_domain_info info = {
+               .ops            = &sg204x_msi_middle_domain_ops,
+               .parent         = plic_domain,
+               .size           = data->num_irqs,
+               .fwnode         = dev_fwnode(dev),
+               .host_data      = data,
+       };
+
+       if (!msi_create_parent_irq_domain(&info, data->chip_info->parent_ops)) {
                pr_err("Failed to create the MSI middle domain\n");
                return -ENOMEM;
        }
-
-       irq_domain_update_bus_token(middle_domain, DOMAIN_BUS_NEXUS);
-
-       middle_domain->flags |= IRQ_DOMAIN_FLAG_MSI_PARENT;
-       middle_domain->msi_parent_ops = data->chip_info->parent_ops;
        return 0;
 }