From: Marc Zyngier Date: Tue, 24 Oct 2023 14:34:31 +0000 (+0100) Subject: irqchip/gic-v3-its: Don't override quirk settings with default values X-Git-Tag: v6.6.17~3676^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f199bf5bf84c19a4f488a39d7d694ab10787de35;p=platform%2Fkernel%2Flinux-rpi.git irqchip/gic-v3-its: Don't override quirk settings with default values When splitting the allocation of the ITS node from its configuration, some of the default settings were kept in the latter instead of being moved to the former. This has the side effect of negating some of the quirk detections that have happened in between, amongst which the dreaded Synquacer hack (that also affect Dominic's TI platform). Move the initialisation of these fields early, so that they can again be overriden by the Synquacer quirk. Fixes: 9585a495ac93 ("irqchip/gic-v3-its: Split allocation from initialisation of its_node") Reported by: Dominic Rath Signed-off-by: Marc Zyngier Signed-off-by: Thomas Gleixner Tested-by: Dominic Rath Link: https://lore.kernel.org/r/20231024084831.GA3788@JADEVM-DRA Link: https://lore.kernel.org/r/20231024143431.2144579-1-maz@kernel.org --- diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index 75a2dd5..a8c89df1 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -5112,8 +5112,6 @@ static int __init its_probe_one(struct its_node *its) } its->cmd_base = (void *)page_address(page); its->cmd_write = its->cmd_base; - its->get_msi_base = its_irq_get_msi_base; - its->msi_domain_flags = IRQ_DOMAIN_FLAG_ISOLATED_MSI; err = its_alloc_tables(its); if (err) @@ -5362,6 +5360,8 @@ static struct its_node __init *its_node_init(struct resource *res, its->typer = gic_read_typer(its_base + GITS_TYPER); its->base = its_base; its->phys_base = res->start; + its->get_msi_base = its_irq_get_msi_base; + its->msi_domain_flags = IRQ_DOMAIN_FLAG_ISOLATED_MSI; its->numa_node = numa_node; its->fwnode_handle = handle;