On 07/09/2015 01:44 PM, Suravee Suthikulpanit wrote:
ACPI core patches for ARM64 are now upstreamed in 4.1. Also PCI support patches for ARM64 ACPI are in progress, I am sending out this RFC to introduce ACPI support for GICv2m. This would allow MSI to work when booting ACPI.
This patch series modify existing IRQ domain and ACPI GSI code to better support ACPI on ARM64.
Summary:
- Patch 1,2 introduce the new irq_domain_ops.init_alloc_info().
- Patch 3,4 modify the existing irq_domain_ops.match() to support ACPI.
- Patch 5,6 introduce IRQ domain for ARM64 ACPI.
- Patch 7 introduces ACPI support for GICv2m.
Due to a large number of prerequisite patches, I have put together a branch on GitHub for review and testing:
https://github.com/ssuthiku/linux.git acpi-pci-msi-rfc1
This branch has been tested on AMD Seattle Platform. Any feedback and comments are appreciated.
Hi Suravee, I updated the GICv2 code, introduced self-probe infrastructure to initialize IRQ controller (similar as IRQCHIP_DECALRE) and also supported stacked irqdomain, I think your patches needs updating, but I will look into your patch after I send out my v3 GICv2/v3 patches
Thanks Hanjun
Thank you in advance,
Suravee
Suravee Suthikulpanit (7): irqdomain: Introduce irq_domain_ops.init_alloc_info gic: Add gic_init_irq_alloc_info() irqdomain: Introduce irqdomain matching by reference Adopting the new irq_domain_ops.match() function prototype acpi: gsi: Adding irqdomain for ACPI acpi: gsi: Adding ARM64-specific acpi_register_gsi() gicv2m: Introducing ACPI support for GICv2m
arch/arm64/kernel/acpi.c | 62 ++++++++- arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 4 +- arch/powerpc/platforms/cell/interrupt.c | 4 +- arch/powerpc/platforms/powermac/pic.c | 4 +- arch/powerpc/platforms/ps3/interrupt.c | 4 +- arch/powerpc/sysdev/ehv_pic.c | 4 +- arch/powerpc/sysdev/i8259.c | 4 +- arch/powerpc/sysdev/ipic.c | 4 +- arch/powerpc/sysdev/mpic.c | 4 +- arch/powerpc/sysdev/qe_lib/qe_ic.c | 4 +- arch/powerpc/sysdev/xics/xics-common.c | 4 +- drivers/acpi/gsi.c | 23 +++- drivers/irqchip/irq-gic-v2m.c | 172 ++++++++++++++++++++----- drivers/irqchip/irq-gic.c | 98 ++++++++++++-- drivers/pci/pci-acpi.c | 52 ++++++++ drivers/pci/probe.c | 2 + include/linux/acpi.h | 4 + include/linux/irqchip/arm-gic-acpi.h | 5 +- include/linux/irqchip/arm-gic.h | 11 ++ include/linux/irqdomain.h | 17 ++- include/linux/pci-acpi.h | 2 + kernel/irq/irqdomain.c | 41 ++++-- 22 files changed, 453 insertions(+), 76 deletions(-)