Hi Marc,
Tomasz and I reworked this patch set to address your comments, mainly about the self-probe infrastructure and the way to init GIC redistributor in GICC structures.
For the self-probe infrastructure, we introduce a new file in drivers/acpi/ which can be reused for ioapic in the future;
For init GIC redistributor in GICC structures, I introduced a flag in struct redist_region just as you suggested, and get the redist base from GICC strucutes if no redistributor regions are available from GICR strucutes. I think the naming of the flag and functions are not good, please comment on them :)
For the proper namespace of domain token for ACPI, I think we can use the Interrupt Controller Structure Types as the token, (just some ideas, not implemented in the patch, trying to discuss with you that if it makes sense to you), for Structure Types, we got: 1 - I/O APIC 0xB - GICC CPU Interface Structure 0xC - GICD GIC Distributor Structure 0xD - GICv2m MSI Frame 0xE - GICR Redistributor Structure 0xF - ITS Structure
so except the GICD 0xC both for GICv2/3, others can used as proper namespace for different domain tokens, what do you think?
Please comments on if we are on right direction, thanks.
Hanjun
Hanjun Guo (4): irqchip / GIC / ACPI: Use IRQCHIP_ACPI_DECLARE to simplify GICv2 init code irqchip / GICv3: remove the useless comparision of device node in xlate irqchip / GICv3: Add ACPI support for GICv3+ initialization irqchip / GICv3 / ACPI: Add GICR support via GICC structures
Tomasz Nowicki (2): acpi, irqchip: Add self-probe infrastructure to initialize IRQ controller irqchip / GICv3: Refactor gic_of_init() for GICv3 driver
arch/arm64/include/asm/irq.h | 13 -- arch/arm64/kernel/acpi.c | 25 --- drivers/acpi/Makefile | 2 + drivers/acpi/irq.c | 136 +++++++++++++ drivers/irqchip/irq-gic-v3.c | 360 ++++++++++++++++++++++++++++++----- drivers/irqchip/irq-gic.c | 4 +- include/asm-generic/vmlinux.lds.h | 13 ++ include/linux/acpi.h | 18 ++ include/linux/acpi_irq.h | 4 +- include/linux/irqchip.h | 13 ++ include/linux/irqchip/arm-gic-acpi.h | 9 +- include/linux/mod_devicetable.h | 9 + 12 files changed, 512 insertions(+), 94 deletions(-) create mode 100644 drivers/acpi/irq.c