[PATCH v10 16/21] irqchip: Add GICv2 specific ACPI boot support
From: Jason Cooper <hidden>
Date: 2015-03-11 23:11:58
Also in:
linux-acpi, lkml
Hey Grant, On Wed, Mar 11, 2015 at 06:04:50PM +0000, Grant Likely wrote:
On 11 Mar 2015 12:42, "Hanjun Guo" [off-list ref] wrote:quoted
From: Tomasz Nowicki <redacted> ACPI kernel uses MADT table for proper GIC initialization. It needs to parse GIC related subtables, collect CPU interface and distributor addresses and call driver initialization function (which is hardware abstraction agnostic). In a similar way, FDT initialize GICv1/2. NOTE: This commit allow to initialize GICv1/2 basic functionality. While now simple GICv2 init call is used, any further GIC features require generic infrastructure for proper ACPI irqchip initialization. That mechanism and stacked irqdomains to support GICv2 MSI/virtualization extension, GICv3/4 and its ITS are considered as next steps. CC: Jason Cooper <redacted> CC: Marc Zyngier <redacted> CC: Thomas Gleixner <redacted>BTW, Thomas is taking a bit of a break, do he is unlikely to give an ack here in a timely manner. I've not heard from Jason. Personally, I think we can proceed without their ack if everything else is in order (heck, I used to help with the irq subsystem, use me as an ack of you want). The patch is low impact and only had effect for ARM ACPI builds.
I'm not talking much, but I am tracking and collecting everything for irqchip. We do have some other changes in this driver this time around. So it'd be nice if I could take this. I had reached out to Olof for his thoughts on this and he hasn't had enough cycles to look at it. iirc, Marc reviewed a previous version and was happy with the changes. My only question I had for Olof I'll put below:
quoted
diff --git a/drivers/irqchip/irqchip.c b/drivers/irqchip/irqchip.c index 0fe2f71..afd1af3 100644 --- a/drivers/irqchip/irqchip.c +++ b/drivers/irqchip/irqchip.c@@ -8,6 +8,7 @@ * warranty of any kind, whether express or implied. */ +#include <linux/acpi_irq.h> #include <linux/init.h> #include <linux/of_irq.h> #include <linux/irqchip.h>@@ -26,4 +27,6 @@ extern struct of_device_id __irqchip_of_table[]; void __init irqchip_init(void) { of_irq_init(__irqchip_of_table); + + acpi_irq_init(); }
Is this in line with Olof's idea that providing a dtb would override ACPI? I have no strong opinion on the matter personally. I haven't been able to follow the ACPI discussion as closely as I would have liked, what with the new job and all. Just let me know and I can pull it in with other GIC changes for this cycle. I'll do a topic branch in case other branches need to depend on this. thx, Jason.