[GIT PULL] PCI changes for v4.15

From: Bjorn Helgaas
Date: Wed Nov 15 2017 - 13:59:22 EST


PCI changes:

- detach driver before tearing down procfs/sysfs (Alex Williamson)

- disable PCIe services during shutdown (Sinan Kaya)

- fix ASPM oops on systems with no Root Ports (Ard Biesheuvel)

- fix ASPM LTR_L1.2_THRESHOLD programming (Bjorn Helgaas)

- fix ASPM Common_Mode_Restore_Time computation (Bjorn Helgaas)

- fix portdrv MSI/MSI-X vector allocation (Dongdong Liu, Bjorn Helgaas)

- report non-fatal AER errors only to the affected endpoint (Gabriele
Paoloni)

- distribute bus numbers, MMIO, and I/O space among hotplug bridges to
allow more devices to be hot-added (Mika Westerberg)

- fix pciehp races during initialization and surprise link down (Mika
Westerberg)

- handle surprise-removed devices in PME handling (Qiang)

- support resizable BARs for large graphics devices (Christian König)

- expose SR-IOV offset, stride, and VF device ID via sysfs (Filippo
Sironi)

- create SR-IOV virtfn/physfn sysfs links before attaching driver (Stuart
Hayes)

- fix SR-IOV "ARI Capable Hierarchy" restore issue (Tony Nguyen)

- enforce Kconfig IOV/REALLOC dependency (Sascha El-Sharkawy)

- avoid slot reset if bridge itself is broken (Jan Glauber)

- clean up pci_reset_function() path (Jan H. Schönherr)

- make pci_map_rom() fail if the option ROM is invalid (Changbin Du)

- convert timers to timer_setup() (Kees Cook)

- move PCI_QUIRKS to PCI bus Kconfig menu (Randy Dunlap)

- constify pci_dev_type and intel_mid_pci_ops (Bhumika Goyal)

- remove unnecessary pci_dev, pci_bus, resource, pcibios_set_master()
declarations (Bjorn Helgaas)

- fix endpoint framework overflows and BUG()s (Dan Carpenter)

- fix endpoint framework issues (Kishon Vijay Abraham I)

- avoid broken Cavium CN8xxx bus reset behavior (David Daney)

- extend Cavium ACS capability quirks (Vadim Lomovtsev)

- support Synopsys DesignWare RC in ECAM mode (Ard Biesheuvel)

- turn off dra7xx clocks cleanly on shutdown (Keerthy)

- fix Faraday probe error path (Wei Yongjun)

- support HiSilicon STB SoC PCIe host controller (Jianguo Sun)

- fix Hyper-V interrupt affinity issue (Dexuan Cui)

- remove useless ACPI warning for Hyper-V pass-through devices (Vitaly
Kuznetsov)

- support multiple MSI on iProc (Sandor Bodo-Merle)

- support Layerscape LS1012a and LS1046a PCIe host controllers (Hou
Zhiqiang)

- fix Layerscape default error response (Minghuan Lian)

- support MSI on Tango host controller (Marc Gonzalez)

- support Tegra186 PCIe host controller (Manikanta Maddireddy)

- use generic accessors on Tegra when possible (Thierry Reding)

- support V3 Semiconductor PCI host controller (Linus Walleij)


There's a trivial merge conflict in drivers/pci/host/pcie-tango.c from the
SPDX changes. My resolution is at
https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/log/?h=v4.15-merge


The following changes since commit 9e66317d3c92ddaab330c125dfe9d06eee268aff:

Linux 4.14-rc3 (2017-10-01 14:54:54 -0700)

are available in the Git repository at:

ssh://git@xxxxxxxxxxxxxxxxxxx/pub/scm/linux/kernel/git/helgaas/pci.git tags/pci-v4.15-changes

for you to fetch changes up to 91f3140fdef61074515470243370d92a45f0b516:

Merge branch 'pci/host-xilinx' into next (2017-11-14 12:11:38 -0600)

----------------------------------------------------------------
pci-v4.15-changes

----------------------------------------------------------------
Alex Williamson (1):
PCI: Detach driver before procfs & sysfs teardown on device remove

Andy Shevchenko (1):
PCI: Add for_each_pci_bridge() helper

Ard Biesheuvel (3):
PCI/ASPM: Deal with missing root ports in link state handling
PCI: generic: Add support for Synopsys DesignWare RC in ECAM mode
dt-bindings: PCI: designware: Add binding for Designware PCIe in ECAM mode

Bhumika Goyal (2):
PCI: Constify pci_dev_type structure
x86/pci/intel_mid_pci: Constify intel_mid_pci_ops and make it __initconst

Bjorn Helgaas (41):
PCI/portdrv: Consolidate comments
PCI/portdrv: Factor out Interrupt Message Number lookup
PCI/portdrv: Compute MSI/MSI-X IRQ vectors after final allocation
PCI: Document reset method return values
PCI: Remove redundant pcibios_set_master() declarations
PCI: Remove redundant pci_dev, pci_bus, resource declarations
PCI: Remove unused declarations
alpha/PCI: Make pdev_save_srm_config() static
PCI: altera: Rename altera_pcie_link_is_up() to altera_pcie_link_up()
PCI: xilinx: Rename xilinx_pcie_link_is_up() to xilinx_pcie_link_up()
PCI: xgene: Rename xgene_pcie_probe_bridge() to xgene_pcie_probe()
PCI/ASPM: Account for downstream device's Port Common_Mode_Restore_Time
PCI/ASPM: Use correct capability pointer to program LTR_L1.2_THRESHOLD
PCI/ASPM: Reformat ASPM register definitions
PCI/ASPM: Add L1 Substates definitions
Merge branch 'pci/acpi' into next
Merge branch 'pci/aer' into next
Merge branch 'pci/aspm' into next
Merge branch 'pci/endpoint' into next
Merge branch 'pci/hotplug' into next
Merge branch 'pci/misc' into next
Merge branch 'pci/msi' into next
Merge branch 'pci/portdrv' into next
Merge branch 'pci/resource' into next
Merge branch 'pci/switchtec' into next
Merge branch 'pci/virtualization' into next
Merge branch 'pci/host-altera' into next
Merge branch 'pci/host-dra7xx' into next
Merge branch 'pci/host-faraday' into next
Merge branch 'pci/host-generic' into next
Merge branch 'pci/host-hisi' into next
Merge branch 'pci/host-hv' into next
Merge branch 'pci/host-iproc' into next
Merge branch 'pci/host-layerscape' into next
Merge branch 'pci/host-rcar' into next
Merge branch 'pci/host-tango' into next
Merge branch 'pci/host-tegra' into next
Merge branch 'pci/host-thunder' into next
Merge branch 'pci/host-v3-semi' into next
Merge branch 'pci/host-xgene' into next
Merge branch 'pci/host-xilinx' into next

Changbin Du (2):
PCI: Move pci_map_rom() error path
PCI: Fail pci_map_rom() if the option ROM is invalid

Christian König (4):
PCI: Add PCI resource type mask #define
PCI: Add resizable BAR infrastructure
PCI: Add pci_resize_resource() for resizing BARs
x86/PCI: Enable a 64bit BAR on AMD Family 15h (Models 00-1f, 30-3f, 60-7f)

Colin Ian King (1):
switchtec: Make struct event_regs static

Dan Carpenter (2):
misc: pci_endpoint_test: Prevent some integer overflows
misc: pci_endpoint_test: Avoid triggering a BUG()

David Daney (2):
PCI: Mark Cavium CN8xxx to avoid bus reset
PCI: Avoid bus reset if bridge itself is broken

Dexuan Cui (1):
PCI: hv: Use effective affinity mask

Dongdong Liu (1):
PCI/portdrv: Add #defines for AER and DPC Interrupt Message Number masks

Filippo Sironi (2):
PCI: Cache the VF device ID in the SR-IOV structure
PCI: Expose SR-IOV offset, stride, and VF device ID via sysfs

Gabriele Paoloni (1):
PCI/AER: Report non-fatal errors only to the affected endpoint

Geert Uytterhoeven (1):
dt-bindings: PCI: rcar: Correct example to match reality

Hou Zhiqiang (6):
irqchip/ls-scfg-msi: Add LS1012a MSI support
arm64: dts: ls1012a: Add MSI controller DT node
PCI: layerscape: Add support for ls1012a
arm64: dts: ls1012a: Add PCIe controller DT node
arm64: dts: ls1046a: Add PCIe controller DT nodes
PCI: Disable MSI for Freescale Layerscape PCIe RC mode

Jan Glauber (1):
PCI: Avoid slot reset if bridge itself is broken

Jan H. Schönherr (2):
PCI: Remove reset argument from pci_iov_{add,remove}_virtfn()
PCI: Remove unused function __pci_reset_function()

Jianguo Sun (1):
PCI: hisi: Add HiSilicon STB SoC PCIe controller driver

Keerthy (1):
PCI: dra7xx: Add shutdown handler to cleanly turn off clocks

Kees Cook (3):
PCI: pciehp: Convert timers to use timer_setup()
PCI: cpqphp: Convert timers to use timer_setup()
PCI: shpchp: Convert timers to use timer_setup()

Kishon Vijay Abraham I (3):
misc: pci_endpoint_test: Fix failure path return values in probe
misc: pci_endpoint_test: Fix pci_endpoint_test not releasing resources on remove
misc: pci_endpoint_test: Fix BUG_ON error during pci_disable_msi()

Linus Walleij (2):
PCI: v3: Update the device tree bindings
PCI: v3-semi: Add V3 Semiconductor PCI host driver

Manikanta Maddireddy (2):
dt-bindings: pci: tegra: Document Tegra186 PCIe DT
PCI: tegra: Add Tegra186 PCIe support

Marc Gonzalez (3):
of/pci: Add of_pci_dma_range_parser_init() for dma-ranges parsing support
PCI: Use of_pci_dma_range_parser_init() to reduce duplication
PCI: tango: Add MSI controller support

Markus Elfring (1):
PCI: ibmphp: Use common error handling code in unconfigure_boot_device()

Mika Westerberg (7):
PCI: Move pci_hp_add_bridge() to drivers/pci/probe.c
PCI: Open-code the two pass loop when scanning bridges
PCI: Do not allocate more buses than available in parent
PCI: Distribute available buses to hotplug-capable bridges
PCI: Distribute available resources to hotplug-capable bridges
PCI: pciehp: Fix race condition handling surprise link down
PCI: pciehp: Do not clear Presence Detect Changed during initialization

Minghuan Lian (1):
PCI: layerscape: Change default error response behavior

Qiang (1):
PCI/PME: Handle invalid data when reading Root Status

Randy Dunlap (2):
PCI: Move PCI_QUIRKS to the PCI bus menu
PCI: Fix kernel-doc build warning

Sandor Bodo-Merle (1):
PCI: iproc: Allow allocation of multiple MSIs

Sascha El-Sharkawy (1):
PCI: Add Kconfig PCI_IOV dependency for PCI_REALLOC_ENABLE_AUTO

Sinan Kaya (1):
PCI/portdrv: Turn off PCIe services during shutdown

Stuart Hayes (1):
PCI: Create SR-IOV virtfn/physfn links before attaching driver

Thierry Reding (1):
PCI: tegra: Use generic accessors where possible

Tony Nguyen (1):
PCI: Restore ARI Capable Hierarchy before setting numVFs

Vadim Lomovtsev (2):
PCI: Set Cavium ACS capability quirk flags to assert RR/CR/SV/UF
PCI: Apply Cavium ThunderX ACS quirk to more Root Ports

Vitaly Kuznetsov (1):
ACPI / PCI: Bail early in acpi_pci_add_bus() if there is no ACPI handle

Wei Yongjun (1):
PCI: faraday: Fix wrong pointer passed to PTR_ERR()

.../interrupt-controller/fsl,ls-scfg-msi.txt | 1 +
.../bindings/pci/designware-pcie-ecam.txt | 42 +
.../bindings/pci/hisilicon-histb-pcie.txt | 68 ++
.../devicetree/bindings/pci/layerscape-pci.txt | 1 +
.../bindings/pci/nvidia,tegra20-pcie.txt | 134 ++-
.../devicetree/bindings/pci/pci-rcar-gen2.txt | 10 +-
.../devicetree/bindings/pci/v3-v360epc-pci.txt | 75 +-
MAINTAINERS | 15 +
arch/alpha/include/asm/pci.h | 5 -
arch/alpha/kernel/pci.c | 11 +-
arch/alpha/kernel/pci_impl.h | 8 -
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 31 +
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 75 ++
arch/cris/include/asm/pci.h | 9 -
arch/frv/include/asm/pci.h | 4 -
arch/ia64/include/asm/pci.h | 4 -
arch/mips/include/asm/pci.h | 4 -
arch/mn10300/include/asm/pci.h | 4 -
arch/mn10300/unit-asb2305/pci-asb2305.h | 3 -
arch/parisc/include/asm/pci.h | 8 -
arch/powerpc/include/asm/pci.h | 2 -
arch/powerpc/kernel/eeh_driver.c | 4 +-
arch/sh/include/asm/pci.h | 4 -
arch/sparc/include/asm/pci_32.h | 2 -
arch/x86/include/asm/pci.h | 2 -
arch/x86/pci/fixup.c | 85 ++
arch/x86/pci/intel_mid_pci.c | 2 +-
arch/xtensa/include/asm/pci.h | 2 -
drivers/irqchip/irq-ls-scfg-msi.c | 1 +
drivers/misc/pci_endpoint_test.c | 33 +-
drivers/of/address.c | 19 +-
drivers/pci/Kconfig | 17 +-
drivers/pci/Makefile | 3 -
drivers/pci/dwc/Kconfig | 10 +
drivers/pci/dwc/Makefile | 1 +
drivers/pci/dwc/pci-dra7xx.c | 17 +
drivers/pci/dwc/pci-layerscape.c | 12 +
drivers/pci/dwc/pcie-histb.c | 470 ++++++++++
drivers/pci/host/Kconfig | 6 +
drivers/pci/host/Makefile | 1 +
drivers/pci/host/pci-ftpci100.c | 22 +-
drivers/pci/host/pci-host-generic.c | 43 +
drivers/pci/host/pci-hyperv.c | 8 +-
drivers/pci/host/pci-rcar-gen2.c | 20 +-
drivers/pci/host/pci-tegra.c | 158 +++-
drivers/pci/host/pci-v3-semi.c | 959 +++++++++++++++++++++
drivers/pci/host/pci-xgene.c | 24 +-
drivers/pci/host/pcie-altera.c | 8 +-
drivers/pci/host/pcie-iproc-msi.c | 19 +-
drivers/pci/host/pcie-iproc.c | 20 +-
drivers/pci/host/pcie-rcar.c | 20 +-
drivers/pci/host/pcie-tango.c | 205 ++++-
drivers/pci/host/pcie-xilinx.c | 6 +-
drivers/pci/hotplug-pci.c | 29 -
drivers/pci/hotplug/acpiphp_glue.c | 15 +-
drivers/pci/hotplug/cpci_hotplug_pci.c | 7 +-
drivers/pci/hotplug/cpqphp.h | 2 +-
drivers/pci/hotplug/cpqphp_core.c | 3 +-
drivers/pci/hotplug/cpqphp_ctrl.c | 19 +-
drivers/pci/hotplug/ibmphp_pci.c | 19 +-
drivers/pci/hotplug/pciehp_ctrl.c | 7 +-
drivers/pci/hotplug/pciehp_hpc.c | 25 +-
drivers/pci/hotplug/pciehp_pci.c | 11 +-
drivers/pci/hotplug/shpchp_hpc.c | 9 +-
drivers/pci/hotplug/shpchp_pci.c | 6 +-
drivers/pci/iov.c | 34 +-
drivers/pci/pci-acpi.c | 2 +-
drivers/pci/pci-sysfs.c | 35 +-
drivers/pci/pci.c | 154 +++-
drivers/pci/pci.h | 11 +-
drivers/pci/pcie/aer/aerdrv_core.c | 9 +-
drivers/pci/pcie/aspm.c | 46 +-
drivers/pci/pcie/pme.c | 5 +-
drivers/pci/pcie/portdrv_core.c | 171 ++--
drivers/pci/pcie/portdrv_pci.c | 1 +
drivers/pci/probe.c | 187 +++-
drivers/pci/quirks.c | 42 +-
drivers/pci/remove.c | 2 +-
drivers/pci/rom.c | 19 +-
drivers/pci/setup-bus.c | 299 ++++++-
drivers/pci/setup-res.c | 58 ++
drivers/pci/switch/switchtec.c | 2 +-
drivers/pcmcia/cardbus.c | 5 +-
include/linux/of_address.h | 10 +-
include/linux/pci.h | 16 +-
include/uapi/linux/pci_regs.h | 44 +-
init/Kconfig | 9 -
87 files changed, 3456 insertions(+), 574 deletions(-)
create mode 100644 Documentation/devicetree/bindings/pci/designware-pcie-ecam.txt
create mode 100644 Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt
create mode 100644 drivers/pci/dwc/pcie-histb.c
create mode 100644 drivers/pci/host/pci-v3-semi.c
delete mode 100644 drivers/pci/hotplug-pci.c