By the way, the branch on my GitHub still has the V2 of "Introducing per-device MSI domain" from Marc. I noticed that Marc sent out V3 yesterday.
https://lkml.org/lkml/2015/7/7/712
I'll update my branch in the next revision.
Thanks, Suravee
On 7/9/15 12:44, 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.
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(-)