Re: [PATCH 06/12] irqchip/sg2042-msi: Switch to msi_create_parent_irq_domain()
From: Chen Wang <hidden>
Date: 2025-06-28 02:01:23
Also in:
imx, linux-mips, linux-riscv, lkml
On 2025/6/26 22:49, Nam Cao wrote:
From: Thomas Gleixner <redacted> Switch to use the concise helper to create an MSI parent domain. Signed-off-by: Thomas Gleixner <redacted> Signed-off-by: Nam Cao <redacted>
Reviewed-by: Chen Wang <redacted> Adding Inochi and cc sophgo maillist Hi, Inocho, can you please review the same and have a test with SG2044 board? Thanks. Chen
quoted hunk ↗ jump to hunk
--- drivers/irqchip/irq-sg2042-msi.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-)diff --git a/drivers/irqchip/irq-sg2042-msi.c b/drivers/irqchip/irq-sg2042-msi.c index af16bc5a3c8b5..bcfddc51bc6a1 100644 --- a/drivers/irqchip/irq-sg2042-msi.c +++ b/drivers/irqchip/irq-sg2042-msi.c@@ -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; }