summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Zyngier <maz@kernel.org>2023-02-01 16:40:56 +0000
committerOliver Upton <oliver.upton@linux.dev>2023-02-02 21:55:43 +0000
commitad818e6010ef1c561e0f11ccdbd4ab843f699993 (patch)
tree2736e7588133a7feb92139eaaaad9ce783c0d369
parent13aad0c00bb1c44b49b7480f129bb95b40e7f71a (diff)
irqchip/apple-aic: Correctly map the vgic maintenance interrupt
We currently allocate the vgic maintenance interrupt by calling into the low-level irqdomain code. Not only this is unnecessary, but this is also pretty wrong: we end-up skipping a bunch of irqdesc state setup A simple "cat /proc/interrupt" shows how wrong we are, as the interrupt appears as "Edge" instead of "Level". Instead, just call the standard irq_create_fwspec_mapping(), which is the right tool for the job. Duh. Signed-off-by: Marc Zyngier <maz@kernel.org> Reviewed-by: Hector Martin <marcan@marcan.st> Link: https://lore.kernel.org/r/20230201164056.669509-1-maz@kernel.org Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
-rw-r--r--drivers/irqchip/irq-apple-aic.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/irqchip/irq-apple-aic.c b/drivers/irqchip/irq-apple-aic.c
index 09fd52d91e45..76ee7c5e7b7e 100644
--- a/drivers/irqchip/irq-apple-aic.c
+++ b/drivers/irqchip/irq-apple-aic.c
@@ -1201,9 +1201,7 @@ static int __init aic_of_ic_init(struct device_node *node, struct device_node *p
},
};
- vgic_info.maint_irq = irq_domain_alloc_irqs(irqc->hw_domain,
- 1, NUMA_NO_NODE,
- &mi);
+ vgic_info.maint_irq = irq_create_fwspec_mapping(&mi);
WARN_ON(!vgic_info.maint_irq);
}