Subject: [PATCH 00/11] Add self-probe infrastructure and stacked irqdomain support for ACPI based GICv2/3 init

From: [email-masked] (Hanjun Guo)
Date: Tue, 02 Jun 2015 20:24:24 +0800

Hi Marc,

Ping, could you comment on if we are on the right direction
for this patch set? much appreciated.

Thanks
Hanjun

On 2015?05?18? 20:59, Hanjun Guo wrote:
> This patch set introduce self-probe infrastructure to init IRQ
> controllers and stacked irqdomain support for ACPI based GICv2/3
> init.
>
> The self-probe infrastructure for ACPI GIC init is similar as
> IRQCHIP_DECLARE() and based on the GIC version support in ACPI
> MADT table.
>
> We introduce acpi_irq_domain for GICv2/3 core domain to support
> stacked irqdomain, and pass the gsi (global system interrupt) as
> the agument (void *arg) for gic_irq_domain_alloc(), then we can
> alloc virqs via acpi_register_gsi() with stacked irqdomain.
>
> In order to make ACPI related GIC init code slef-contained, I
> consolidated all the GIC init code into drivers/irqchip/irq-gic-acpi.c.
>
> update from RFC version:
>   - Consolidate all the GIC init code into drivers/irqchip/irq-gic-acpi.c
>
> Hanjun Guo (8):
>    irqchip / GIC: Add GIC version support in ACPI MADT
>    irqchip / GIC / ACPI: Use IRQCHIP_ACPI_DECLARE to simplify GICv2 init
>      code
>    irqchip / gic: Add stacked irqdomain support for ACPI based GICv2 init
>    ACPI / gsi: Add gsi_mutex to synchronize
>      acpi_register_gsi()/acpi_unregister_gsi()
>    irqchip / GICv3: Add ACPI support for GICv3+ initialization
>    irqchip / GICv3: Add stacked irqdomain support for ACPI based init
>    irqchip / GICv2 / ACPI: Consolidate GICv2 ACPI related init code
>    irqchip / GICv3 / ACPI: Consolidate GICv3 ACPI related init code
>
> Tomasz Nowicki (3):
>    ACPICA: Introduce GIC version for arm based system
>    ACPI / irqchip: Add self-probe infrastructure to initialize IRQ
>      controller
>    irqchip / GICv3: Refactor gic_of_init() for GICv3 driver
>
>   arch/arm64/Kconfig                   |   1 +
>   arch/arm64/include/asm/irq.h         |  13 --
>   arch/arm64/kernel/acpi.c             |  25 ---
>   drivers/acpi/Makefile                |   1 +
>   drivers/acpi/gsi.c                   |  41 +++--
>   drivers/acpi/irq.c                   |  40 +++++
>   drivers/irqchip/Kconfig              |   3 +
>   drivers/irqchip/Makefile             |   1 +
>   drivers/irqchip/irq-gic-acpi.c       | 318 +++++++++++++++++++++++++++++++++++
>   drivers/irqchip/irq-gic-v3.c         | 149 +++++++++-------
>   drivers/irqchip/irq-gic.c            | 129 ++------------
>   drivers/irqchip/irqchip.h            |  12 ++
>   include/acpi/actbl1.h                |  17 +-
>   include/asm-generic/vmlinux.lds.h    |  13 ++
>   include/linux/acpi.h                 |  14 ++
>   include/linux/acpi_irq.h             |   4 +-
>   include/linux/irqchip/arm-gic-acpi.h |  13 +-
>   include/linux/irqchip/arm-gic-v3.h   |  10 ++
>   include/linux/mod_devicetable.h      |   7 +
>   19 files changed, 577 insertions(+), 234 deletions(-)
>   create mode 100644 drivers/acpi/irq.c
>   create mode 100644 drivers/irqchip/irq-gic-acpi.c
>