Subject: [PATCH 00/11] ARM64 PCI hostbridge init based on ACPI

From: [email-masked] (Bjorn Helgaas)
Date: Mon, 7 Dec 2015 14:29:42 -0600

On Tue, May 26, 2015 at 08:49:13PM +0800, Hanjun Guo wrote:
> This patch set is introducing ARM64 PCI hostbridge init based on ACPI,
> which based on Jiang Liu's patch set "Consolidate ACPI PCI root common
> code into ACPI core":
> 
> https://lkml.org/lkml/2015/5/14/98
> 
> This patch set including three parts:
> 
>   - the first part is PATCH 1, which should be merged into Jiang Liu's 
>     patch set to fix the compile error on ARM64 when ACPI enabled.
> 
>   - the senconed part is the refactoring of mmconfig to let that mechanism
>     can be used for ARM64 too, it's Tomasz's work but he is moving to other
>     work and pretty busy for now, so I will take care of those patches, 
>     Tomasz will show up when some comments need to be addressed :)
> 
>     In this version of mmconfig refactor patches, I removed the rename
>     of mmconfig -> ecam patch, because mmconfig is in multi places, and need
>     much more effort to convert them all to ecam, Bjorn, if you don't
>     like it, I can add them back.
> 
>   - The third part is about the ARM64 PCI hostbridge init based on ACPI,
>     first I fixed a compile error for XEN PCI on ARM64 when PCI_MMCONFIG=y,
>     and then introduce PCI init based on Jiang Liu and Tomasz's patch set.
> 
> patch for ARM64 ACPI PCI still reserve the bus sysdata to get the domain
> number, because Yijing's patch set is still under review, will be removed
> when Yijing's patch set hits upstream.
> 
> This patch set was tested by Suravee on Seattle board with legacy interrupt
> (not MSI), and it works, also tested on qemu by Graeme.
> 
> You can get the code from:
> git://git.linaro.org/leg/acpi/acpi.git, devel branch
> 
> Comments are welcomed.
> 
> Thanks
> Hanjun
> 
> 
> Hanjun Guo (3):
>   ARM64 / PCI: introduce struct pci_controller for ACPI
>   XEN / PCI: Remove the dependence on arch x86 when PCI_MMCONFIG=y
>   ARM64 / PCI / ACPI: support for ACPI based PCI hostbridge init
> 
> Tomasz Nowicki (8):
>   x86, pci: Clean up comment about buggy MMIO config space access for
>     AMD Fam10h CPUs.
>   x86, pci: Abstract PCI config accessors and use AMD Fam10h workaround
>     exclusively.
>   x86, pci: Reorder logic of pci_mmconfig_insert() function
>   x86, pci, acpi: Move arch-agnostic MMCONFIG (aka ECAM) and ACPI code
>     out of arch/x86/ directory
>   pci, acpi, mcfg: Provide generic implementation of MCFG code
>     initialization.
>   x86, pci: mmconfig_{32,64}.c code refactoring - remove code
>     duplication.
>   x86, pci, ecam: mmconfig_64.c becomes default implementation for ECAM
>     driver.
>   pci, acpi, mcfg: Share ACPI PCI config space accessors.
> 
>  arch/arm64/Kconfig             |   7 +
>  arch/arm64/include/asm/pci.h   |  10 ++
>  arch/arm64/kernel/pci.c        | 245 ++++++++++++++++++++++++++--
>  arch/x86/Kconfig               |   4 +
>  arch/x86/include/asm/pci_x86.h |  34 +---
>  arch/x86/pci/Makefile          |   4 +-
>  arch/x86/pci/acpi.c            |   1 +
>  arch/x86/pci/mmconfig-shared.c | 301 +++++++++++-----------------------
>  arch/x86/pci/mmconfig_32.c     |  35 +---
>  arch/x86/pci/mmconfig_64.c     | 153 ------------------
>  arch/x86/pci/numachip.c        |  25 +--
>  drivers/acpi/Makefile          |   1 +
>  drivers/acpi/mcfg.c            | 103 ++++++++++++
>  drivers/pci/Kconfig            |  10 ++
>  drivers/pci/Makefile           |   5 +
>  drivers/pci/ecam.c             | 358 +++++++++++++++++++++++++++++++++++++++++
>  drivers/pci/pci.c              |  26 +--
>  drivers/xen/pci.c              |   7 +-
>  include/linux/acpi.h           |   2 +
>  include/linux/ecam.h           |  56 +++++++
>  20 files changed, 923 insertions(+), 464 deletions(-)
>  delete mode 100644 arch/x86/pci/mmconfig_64.c
>  create mode 100644 drivers/acpi/mcfg.c
>  create mode 100644 drivers/pci/ecam.c
>  create mode 100644 include/linux/ecam.h

There was a fair amount of unresolved discussion about this series,
so I'm going to wait for an update.

Bjorn