irqchip/loongson-pch-msi: Use irq_domain_create_hierarchy()
authorJohan Hovold <johan+linaro@kernel.org>
Mon, 13 Feb 2023 10:43:00 +0000 (11:43 +0100)
committerMarc Zyngier <maz@kernel.org>
Mon, 13 Feb 2023 19:31:25 +0000 (19:31 +0000)
Use the irq_domain_create_hierarchy() helper to create the hierarchical
domain, which both serves as documentation and avoids poking at
irqdomain internals.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Hsin-Yi Wang <hsinyi@chromium.org>
Tested-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230213104302.17307-19-johan+linaro@kernel.org
drivers/irqchip/irq-loongson-pch-msi.c

index a72ede9..6e1e1f0 100644 (file)
@@ -163,16 +163,15 @@ static int pch_msi_init_domains(struct pch_msi_data *priv,
 {
        struct irq_domain *middle_domain, *msi_domain;
 
-       middle_domain = irq_domain_create_linear(domain_handle,
-                                               priv->num_irqs,
-                                               &pch_msi_middle_domain_ops,
-                                               priv);
+       middle_domain = irq_domain_create_hierarchy(parent, 0, priv->num_irqs,
+                                                   domain_handle,
+                                                   &pch_msi_middle_domain_ops,
+                                                   priv);
        if (!middle_domain) {
                pr_err("Failed to create the MSI middle domain\n");
                return -ENOMEM;
        }
 
-       middle_domain->parent = parent;
        irq_domain_update_bus_token(middle_domain, DOMAIN_BUS_NEXUS);
 
        msi_domain = pci_msi_create_irq_domain(domain_handle,