[GIT PULL] PCI changes for v4.20

From: Bjorn Helgaas
Date: Tue Oct 23 2018 - 13:39:40 EST


PCI changes:

- Fix ASPM link_state teardown on removal (Lukas Wunner)

- Fix misleading _OSC ASPM message (Sinan Kaya)

- Make _OSC optional for PCI (Sinan Kaya)

- Don't initialize ASPM link state when ACPI_FADT_NO_ASPM is set (Patrick
Talbert)

- Remove x86 and arm64 node-local allocation for host bridge structures
(Punit Agrawal)

- Pay attention to device-specific _PXM node values (Jonathan Cameron)

- Support new Immediate Readiness bit (Felipe Balbi)

- Differentiate between pciehp surprise and safe removal (Lukas Wunner)

- Remove unnecessary pciehp includes (Lukas Wunner)

- Drop pciehp hotplug_slot_ops wrappers (Lukas Wunner)

- Tolerate PCIe Slot Presence Detect being hardwired to zero to
workaround broken hardware, e.g., the Wilocity switch/wireless device
(Lukas Wunner)

- Unify pciehp controller & slot structs (Lukas Wunner)

- Constify hotplug_slot_ops (Lukas Wunner)

- Drop hotplug_slot_info (Lukas Wunner)

- Embed hotplug_slot struct into users instead of allocating it
separately (Lukas Wunner)

- Initialize PCIe port service drivers directly instead of relying on
initcall ordering (Keith Busch)

- Restore PCI config state after a slot reset (Keith Busch)

- Save/restore DPC config state along with other PCI config state (Keith
Busch)

- Reference count devices during AER handling to avoid race issue with
concurrent hot removal (Keith Busch)

- If an Upstream Port reports ERR_FATAL, don't try to read the Port's
config space because it is probably unreachable (Keith Busch)

- During error handling, use slot-specific reset instead of secondary
bus reset to avoid link up/down issues on hotplug ports (Keith Busch)

- Restore previous AER/DPC handling that does not remove and re-enumerate
devices on ERR_FATAL (Keith Busch)

- Notify all drivers that may be affected by error recovery resets (Keith
Busch)

- Always generate error recovery uevents, even if a driver doesn't have
error callbacks (Keith Busch)

- Make PCIe link active reporting detection generic (Keith Busch)

- Support D3cold in PCIe hierarchies during system sleep and runtime,
including hotplug and Thunderbolt ports (Mika Westerberg)

- Handle hpmemsize/hpiosize kernel parameters uniformly, whether slots
are empty or occupied (Jon Derrick)

- Remove duplicated include from pci/pcie/err.c and unused variable from
cpqphp (YueHaibing)

- Remove driver pci_cleanup_aer_uncorrect_error_status() calls (Oza
Pawandeep)

- Uninline PCI bus accessors for better ftracing (Keith Busch)

- Remove unused AER Root Port .error_resume method (Keith Busch)

- Use kfifo in AER instead of a local version (Keith Busch)

- Use threaded IRQ in AER bottom half (Keith Busch)

- Use managed resources in AER core (Keith Busch)

- Reuse pcie_port_find_device() for AER injection (Keith Busch)

- Abstract AER interrupt handling to disconnect error injection (Keith
Busch)

- Refactor AER injection callbacks to simplify future improvments (Keith
Busch)

- Remove unused Netronome NFP32xx Device IDs (Jakub Kicinski)

- Use bitmap_zalloc() for dma_alias_mask (Andy Shevchenko)

- Add switch fall-through annotations (Gustavo A. R. Silva)

- Remove unused Switchtec quirk variable (Joshua Abraham)

- Fix pci.c kernel-doc warning (Randy Dunlap)

- Remove trivial PCI wrappers for DMA APIs (Christoph Hellwig)

- Add Intel GPU device IDs to spurious interrupt quirk (Bin Meng)

- Run Switchtec DMA aliasing quirk only on NTB endpoints to avoid useless
dmesg errors (Logan Gunthorpe)

- Update Switchtec NTB documentation (Wesley Yung)

- Remove redundant "default n" from Kconfig (Bartlomiej Zolnierkiewicz)

- Avoid panic when drivers enable MSI/MSI-X twice (Tonghao Zhang)

- Add PCI support for peer-to-peer DMA (Logan Gunthorpe)

- Add sysfs group for PCI peer-to-peer memory statistics (Logan
Gunthorpe)

- Add PCI peer-to-peer DMA scatterlist mapping interface (Logan
Gunthorpe)

- Add PCI configfs/sysfs helpers for use by peer-to-peer users (Logan
Gunthorpe)

- Add PCI peer-to-peer DMA driver writer's documentation (Logan
Gunthorpe)

- Add block layer flag to indicate driver support for PCI peer-to-peer
DMA (Logan Gunthorpe)

- Map Infiniband scatterlists for peer-to-peer DMA if they contain P2P
memory (Logan Gunthorpe)

- Register nvme-pci CMB buffer as PCI peer-to-peer memory (Logan
Gunthorpe)

- Add nvme-pci support for PCI peer-to-peer memory in requests (Logan
Gunthorpe)

- Use PCI peer-to-peer memory in nvme (Stephen Bates, Steve Wise,
Christoph Hellwig, Logan Gunthorpe)

- Cache VF config space size to optimize enumeration of many VFs
(KarimAllah Ahmed)

- Remove unnecessary <linux/pci-ats.h> include (Bjorn Helgaas)

- Fix VMD AERSID quirk Device ID matching (Jon Derrick)

- Fix Cadence PHY handling during probe (Alan Douglas)

- Signal Cadence Endpoint interrupts via AXI region 0 instead of last
region (Alan Douglas)

- Write Cadence Endpoint MSI interrupts with 32 bits of data (Alan
Douglas)

- Remove redundant controller tests for "device_type == pci" (Rob
Herring)

- Document R-Car E3 (R8A77990) bindings (Tho Vu)

- Add device tree support for R-Car r8a7744 (Biju Das)

- Drop unused mvebu PCIe capability code (Thomas Petazzoni)

- Add shared PCI bridge emulation code (Thomas Petazzoni)

- Convert mvebu to use shared PCI bridge emulation (Thomas Petazzoni)

- Add aardvark Root Port emulation (Thomas Petazzoni)

- Support 100MHz/200MHz refclocks for i.MX6 (Lucas Stach)

- Add initial power management for i.MX7 (Leonard Crestez)

- Add PME_Turn_Off support for i.MX7 (Leonard Crestez)

- Fix qcom runtime power management error handling (Bjorn Andersson)

- Update TI dra7xx unaligned access errata workaround for host mode as
well as endpoint mode (Vignesh R)

- Fix kirin section mismatch warning (Nathan Chancellor)

- Remove iproc PAXC slot check to allow VF support (Jitendra Bhivare)

- Quirk Keystone K2G to limit MRRS to 256 (Kishon Vijay Abraham I)

- Update Keystone to use MRRS quirk for host bridge instead of open
coding (Kishon Vijay Abraham I)

- Refactor Keystone link establishment (Kishon Vijay Abraham I)

- Simplify and speed up Keystone link training (Kishon Vijay Abraham I)

- Remove unused Keystone host_init argument (Kishon Vijay Abraham I)

- Merge Keystone driver files into one (Kishon Vijay Abraham I)

- Remove redundant Keystone platform_set_drvdata() (Kishon Vijay Abraham
I)

- Rename Keystone functions for uniformity (Kishon Vijay Abraham I)

- Add Keystone device control module DT binding (Kishon Vijay Abraham I)

- Use SYSCON API to get Keystone control module device IDs (Kishon Vijay
Abraham I)

- Clean up Keystone PHY handling (Kishon Vijay Abraham I)

- Use runtime PM APIs to enable Keystone clock (Kishon Vijay Abraham I)

- Clean up Keystone config space access checks (Kishon Vijay Abraham I)

- Get Keystone outbound window count from DT (Kishon Vijay Abraham I)

- Clean up Keystone outbound window configuration (Kishon Vijay Abraham
I)

- Clean up Keystone DBI setup (Kishon Vijay Abraham I)

- Clean up Keystone ks_pcie_link_up() (Kishon Vijay Abraham I)

- Fix Keystone IRQ status checking (Kishon Vijay Abraham I)

- Add debug messages for all Keystone errors (Kishon Vijay Abraham I)

- Clean up Keystone includes and macros (Kishon Vijay Abraham I)

- Fix Mediatek unchecked return value from devm_pci_remap_iospace()
(Gustavo A. R. Silva)

- Fix Mediatek endpoint/port matching logic (Honghui Zhang)

- Change Mediatek Root Port Class Code to PCI_CLASS_BRIDGE_PCI (Honghui
Zhang)

- Remove redundant Mediatek PM domain check (Honghui Zhang)

- Convert Mediatek to pci_host_probe() (Honghui Zhang)

- Fix Mediatek MSI enablement (Honghui Zhang)

- Add Mediatek system PM support for MT2712 and MT7622 (Honghui Zhang)

- Add Mediatek loadable module support (Honghui Zhang)

- Detach VMD resources after stopping root bus to prevent orphan
resources (Jon Derrick)

- Convert pcitest build process to that used by other tools (iio, perf,
etc) (Gustavo Pimentel)


You should see a minor include/linux/blkdev.h conflict with cd84a62e0078
("block, scsi: Change the preempt-only flag into a counter") which removed
QUEUE_FLAG_PREEMPT_ONLY, while 49d92c0dd64a ("block: Add PCI P2P flag for
request queue") added QUEUE_FLAG_PCI_P2PDMA.


The following changes since commit 7876320f88802b22d4e2daf7eb027dd14175a0f8:

Linux 4.19-rc4 (2018-09-16 11:52:37 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 663569db6476795c7955289529ea0154e3d768bf:

Merge branch 'remotes/lorenzo/pci/tools' (2018-10-20 11:45:56 -0500)

----------------------------------------------------------------
pci-v4.20-changes

----------------------------------------------------------------
Alan Douglas (3):
PCI: cadence: Correct probe behaviour when failing to get PHY
PCI: cadence: Use AXI region 0 to signal interrupts from EP
PCI: cadence: Write MSI data with 32bits

Andy Shevchenko (1):
PCI: Allocate dma_alias_mask with bitmap_zalloc()

Bartlomiej Zolnierkiewicz (1):
PCI: pcie: Remove redundant 'default n' from Kconfig

Biju Das (2):
dt-bindings: PCI: rcar: Add device tree support for r8a7744
dt-bindings: PCI: rcar: Add device tree support for r8a7744

Bin Meng (1):
PCI: Add Device IDs for Intel GPU "spurious interrupt" quirk

Bjorn Andersson (1):
PCI: qcom: Fix error handling in runtime PM support

Bjorn Helgaas (17):
PCI/IOV: Remove unnecessary include of <linux/pci-ats.h>
Merge branch 'pci/aspm'
Merge branch 'pci/enumeration'
Merge branch 'pci/hotplug'
Merge branch 'pci/misc'
Merge branch 'pci/msi'
Merge branch 'pci/peer-to-peer'
Merge branch 'pci/virtualization'
Merge branch 'pci/host-vmd'
Merge branch 'remotes/lorenzo/pci/cadence'
Merge branch 'remotes/lorenzo/pci/controller-misc'
Merge branch 'remotes/lorenzo/pci/dwc'
Merge branch 'remotes/lorenzo/pci/iproc'
Merge branch 'remotes/lorenzo/pci/keystone'
Merge branch 'remotes/lorenzo/pci/mediatek'
Merge branch 'remotes/lorenzo/pci/vmd'
Merge branch 'remotes/lorenzo/pci/tools'

Christoph Hellwig (3):
PCI: Remove pci_unmap_addr() wrappers for DMA API
PCI: Remove pci_set_dma_seg_boundary()
PCI: Remove pci_set_dma_max_seg_size()

Felipe Balbi (1):
PCI: Add support for Immediate Readiness

Gustavo A. R. Silva (2):
PCI: mediatek: Fix unchecked return value
PCI / ACPI: Mark expected switch fall-through

Gustavo Pimentel (2):
tools: PCI: Fix compilation warnings
tools: PCI: Change pcitest compiling process

Honghui Zhang (7):
PCI: mediatek: Fix mtk_pcie_find_port() endpoint/port matching logic
PCI: mediatek: Fix class type for MT7622 to PCI_CLASS_BRIDGE_PCI
PCI: mediatek: Remove the redundant dev->pm_domain check
PCI: mediatek: Convert to use pci_host_probe()
PCI: mediatek: Fixup MSI enablement logic by enabling MSI before clocks
PCI: mediatek: Add system PM support for MT2712 and MT7622
PCI: mediatek: Add loadable kernel module support

Jakub Kicinski (1):
PCI: Remove unused NFP32xx IDs

Jitendra Bhivare (1):
PCI: iproc: Remove PAXC slot check to allow VF support

Jon Derrick (3):
PCI: Equalize hotplug memory and io for occupied and empty slots
x86/PCI: Apply VMD's AERSID fixup generically
PCI: vmd: Detach resources after stopping root bus

Jonathan Cameron (1):
ACPI/PCI: Pay attention to device-specific _PXM node values

Joshua Abraham (1):
PCI: Remove set but unused variable

KarimAllah Ahmed (1):
PCI/IOV: Use VF0 cached config space size for other VFs

Keith Busch (22):
PCI: portdrv: Initialize service drivers directly
PCI: portdrv: Restore PCI config state on slot reset
PCI/DPC: Save and restore config state
PCI/AER: Take reference on error devices
PCI/AER: Don't read upstream ports below fatal errors
PCI/ERR: Use slot reset if available
PCI/ERR: Handle fatal error recovery
PCI/ERR: Run error recovery callbacks for all affected devices
PCI/ERR: Simplify broadcast callouts
PCI/ERR: Always report current recovery status for udev
PCI: Unify device inaccessible
PCI: Make link active reporting detection generic
PCI: Uninline PCI bus accessors for better ftracing
PCI/AER: Remove unused aer_error_resume()
PCI/AER: Remove error source from AER struct aer_rpc
PCI/AER: Use kfifo for tracking events instead of reimplementing it
PCI/AER: Use kfifo_in_spinlocked() to insert locked elements
PCI/AER: Use threaded IRQ for bottom half
PCI/AER: Use managed resource allocations
PCI/AER: Reuse existing pcie_port_find_device() interface
PCI/AER: Abstract AER interrupt handling
PCI/AER: Refactor error injection fallbacks

Kishon Vijay Abraham I (21):
PCI: keystone: Use quirk to limit MRRS for K2G
PCI: keystone: Use quirk to set MRRS for PCI host bridge
PCI: keystone: Move dw_pcie_setup_rc() out of ks_pcie_establish_link()
PCI: keystone: Do not initiate link training multiple times
PCI: keystone: Remove unused argument from ks_dw_pcie_host_init()
PCI: keystone: Merge pci-keystone-dw.c and pci-keystone.c
PCI: keystone: Remove redundant platform_set_drvdata() invocation
PCI: keystone: Use uniform function naming convention
dt-bindings: PCI: keystone: Add bindings to get device control module
PCI: keystone: Use SYSCON APIs to get device ID from control module
PCI: keystone: Cleanup PHY handling
PCI: keystone: Invoke runtime PM APIs to enable clock
PCI: keystone: Cleanup configuration space access
PCI: keystone: Get number of outbound windows from DT
PCI: keystone: Cleanup outbound window configuration
PCI: keystone: Cleanup set_dbi_mode() and get_dbi_mode()
PCI: keystone: Cleanup ks_pcie_link_up()
PCI: keystone: Use ERR_IRQ_STATUS instead of ERR_IRQ_STATUS_RAW to get interrupt status
PCI: keystone: Add debug error message for all errors
PCI: keystone: Reorder header file in alphabetical order
PCI: keystone: Cleanup macros defined in pci-keystone.c

Leonard Crestez (5):
PCI: imx: Initial imx7d pm support
reset: imx7: Add PCIE_CTRL_APPS_TURNOFF
dt-bindings: imx6q-pcie: Add turnoff reset for imx7d
ARM: dts: imx7d: Add turnoff reset
PCI: imx: Add PME_Turn_Off support

Logan Gunthorpe (14):
PCI/P2PDMA: Support peer-to-peer memory
PCI: Add macro for Switchtec quirk declarations
PCI: Fix Switchtec DMA aliasing quirk dmesg noise
PCI/P2PDMA: Add sysfs group to display p2pmem stats
PCI/P2PDMA: Add PCI p2pmem DMA mappings to adjust the bus offset
PCI/P2PDMA: Introduce configfs/sysfs enable attribute helpers
docs-rst: Add a new directory for PCI documentation
PCI/P2PDMA: Add P2P DMA driver writer's documentation
block: Add PCI P2P flag for request queue
IB/core: Ensure we map P2P memory correctly in rdma_rw_ctx_[init|destroy]()
nvme-pci: Use PCI p2pmem subsystem to manage the CMB
nvme-pci: Add support for P2P memory in requests
nvmet: Introduce helper functions to allocate and free request SGLs
nvmet: Optionally use PCI P2P memory

Lucas Stach (1):
PCI: imx6: Support MPLL reconfiguration for 100MHz and 200MHz refclock

Lukas Wunner (13):
PCI/ASPM: Fix link_state teardown on device removal
PCI: Simplify disconnected marking
PCI: pciehp: Differentiate between surprise and safe removal
PCI: pciehp: Drop unnecessary includes
PCI: pciehp: Drop hotplug_slot_ops wrappers
PCI: pciehp: Tolerate Presence Detect hardwired to zero
PCI: pciehp: Unify controller and slot structs
PCI: pciehp: Rename controller struct members for clarity
PCI: pciehp: Reshuffle controller struct for clarity
PCI: hotplug: Constify hotplug_slot_ops
PCI: hotplug: Drop hotplug_slot_info
PCI: hotplug: Embed hotplug_slot
PCI: hotplug: Document TODOs

Mika Westerberg (10):
PCI: Do not skip power-managed bridges in pci_enable_wake()
PCI / ACPI: Enable wake automatically for power managed bridges
PCI: pciehp: Disable hotplug interrupt during suspend
PCI: pciehp: Do not handle events if interrupts are masked
PCI/portdrv: Resume upon exit from system suspend if left runtime suspended
PCI/portdrv: Add runtime PM hooks for port service drivers
PCI: pciehp: Implement runtime PM callbacks
PCI/PME: Implement runtime PM callbacks
ACPI / property: Allow multiple property compatible _DSD entries
PCI / ACPI: Whitelist D3 for more PCIe hotplug ports

Nathan Chancellor (1):
PCI: kirin: Fix section mismatch warning

Oza Pawandeep (1):
PCI/AER: Remove pci_cleanup_aer_uncorrect_error_status() calls

Patrick Talbert (1):
PCI/ASPM: Do not initialize link state when aspm_disabled is set

Punit Agrawal (2):
arm64: PCI: Remove node-local allocations when initialising host controller
x86/PCI: Remove node-local allocation when initialising host controller

Randy Dunlap (1):
PCI: Fix pci.c kernel-doc parameter warning

Rob Herring (1):
PCI: Remove unnecessary check of device_type == pci

Sinan Kaya (2):
PCI/ACPI: Correct error message for ASPM disabling
PCI/ACPI: Allow _OSC presence to be optional for PCI

Tho Vu (1):
DT: pci: rcar-pci: document R8A77990 bindings

Thomas Petazzoni (3):
PCI: Introduce PCI bridge emulated config space common logic
PCI: mvebu: Drop unused PCI express capability code
PCI: mvebu: Convert to PCI emulated bridge config space

Tonghao Zhang (1):
PCI/MSI: Warn and return error if driver enables MSI/MSI-X twice

Vignesh R (2):
dt-bindings: PCI: dra7xx: Add bindings for unaligned access in host mode
PCI: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode

Wesley Yung (1):
NTB: switchtec_ntb: Update switchtec documentation with prerequisites for NTB

YueHaibing (3):
PCI/ERR: Remove duplicated include from err.c
PCI: cpqphp: Remove set but not used variable 'physical_slot'
PCI: pnv_php: Use kmemdup()

Zachary Zhang (1):
PCI: aardvark: Implement emulated root PCI bridge config space

Documentation/ABI/testing/sysfs-bus-pci | 24 +
Documentation/PCI/endpoint/pci-test-howto.txt | 19 +-
Documentation/PCI/pci-error-recovery.txt | 35 +-
.../devicetree/bindings/pci/fsl,imx6q-pcie.txt | 1 +
.../devicetree/bindings/pci/pci-keystone.txt | 3 +
.../devicetree/bindings/pci/pci-rcar-gen2.txt | 1 +
Documentation/devicetree/bindings/pci/rcar-pci.txt | 2 +
Documentation/devicetree/bindings/pci/ti-pci.txt | 5 +
Documentation/driver-api/index.rst | 2 +-
Documentation/driver-api/pci/index.rst | 22 +
Documentation/driver-api/pci/p2pdma.rst | 145 ++++
Documentation/driver-api/{ => pci}/pci.rst | 0
Documentation/switchtec.txt | 30 +-
MAINTAINERS | 2 +-
arch/arm/boot/dts/imx7d.dtsi | 5 +-
arch/arm64/kernel/pci.c | 5 +-
arch/powerpc/include/asm/pnv-pci.h | 2 +-
arch/x86/pci/acpi.c | 2 +-
arch/x86/pci/fixup.c | 12 +-
drivers/acpi/pci_root.c | 17 +-
drivers/acpi/property.c | 97 ++-
drivers/acpi/x86/apple.c | 2 +-
drivers/ata/sata_inic162x.c | 2 +-
drivers/block/rsxx/core.c | 2 +-
drivers/crypto/qat/qat_common/adf_aer.c | 1 -
drivers/dma/ioat/init.c | 7 -
drivers/gpio/gpiolib-acpi.c | 2 +-
drivers/infiniband/core/rw.c | 11 +-
drivers/infiniband/hw/cxgb4/qp.c | 10 +-
drivers/infiniband/hw/cxgb4/t4.h | 2 +-
drivers/infiniband/hw/hfi1/pcie.c | 1 -
drivers/infiniband/hw/qib/qib_pcie.c | 1 -
drivers/net/ethernet/atheros/alx/main.c | 2 -
drivers/net/ethernet/broadcom/bnx2.c | 7 -
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 8 -
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 7 -
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 1 -
drivers/net/ethernet/emulex/benet/be_main.c | 1 -
drivers/net/ethernet/intel/e1000e/netdev.c | 2 -
drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 2 -
drivers/net/ethernet/intel/i40e/i40e_main.c | 9 -
drivers/net/ethernet/intel/igb/igb_main.c | 9 -
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 10 -
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 6 -
.../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 1 -
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 1 -
drivers/net/ethernet/sfc/efx.c | 8 -
drivers/net/ethernet/sfc/falcon/efx.c | 8 -
drivers/nvme/host/core.c | 4 +
drivers/nvme/host/nvme.h | 1 +
drivers/nvme/host/pci.c | 98 ++-
drivers/nvme/target/configfs.c | 47 ++
drivers/nvme/target/core.c | 180 +++++
drivers/nvme/target/io-cmd-bdev.c | 3 +
drivers/nvme/target/nvmet.h | 17 +
drivers/nvme/target/rdma.c | 22 +-
drivers/pci/Kconfig | 20 +
drivers/pci/Makefile | 2 +
drivers/pci/access.c | 4 +-
drivers/pci/controller/Kconfig | 4 +-
drivers/pci/controller/dwc/Makefile | 2 +-
drivers/pci/controller/dwc/pci-dra7xx.c | 11 +-
drivers/pci/controller/dwc/pci-imx6.c | 176 ++++-
drivers/pci/controller/dwc/pci-keystone-dw.c | 484 -------------
drivers/pci/controller/dwc/pci-keystone.c | 788 +++++++++++++++++---
drivers/pci/controller/dwc/pci-keystone.h | 57 --
drivers/pci/controller/dwc/pcie-designware.h | 4 +
drivers/pci/controller/dwc/pcie-kirin.c | 4 +-
drivers/pci/controller/dwc/pcie-qcom.c | 56 +-
drivers/pci/controller/pci-aardvark.c | 129 +++-
drivers/pci/controller/pci-host-common.c | 8 -
drivers/pci/controller/pci-mvebu.c | 384 +++-------
drivers/pci/controller/pcie-cadence-ep.c | 13 +-
drivers/pci/controller/pcie-cadence-host.c | 7 -
drivers/pci/controller/pcie-cadence.c | 20 +-
drivers/pci/controller/pcie-iproc.c | 8 -
drivers/pci/controller/pcie-mediatek.c | 321 +++++---
drivers/pci/controller/pcie-mobiveil.c | 7 -
drivers/pci/controller/pcie-xilinx-nwl.c | 9 -
drivers/pci/controller/pcie-xilinx.c | 7 -
drivers/pci/controller/vmd.c | 2 +-
drivers/pci/hotplug/TODO | 74 ++
drivers/pci/hotplug/acpiphp.h | 10 +-
drivers/pci/hotplug/acpiphp_core.c | 36 +-
drivers/pci/hotplug/acpiphp_ibm.c | 2 +-
drivers/pci/hotplug/cpci_hotplug.h | 11 +-
drivers/pci/hotplug/cpci_hotplug_core.c | 105 +--
drivers/pci/hotplug/cpci_hotplug_pci.c | 6 +-
drivers/pci/hotplug/cpqphp.h | 9 +-
drivers/pci/hotplug/cpqphp_core.c | 61 +-
drivers/pci/hotplug/cpqphp_ctrl.c | 31 +-
drivers/pci/hotplug/ibmphp.h | 9 +-
drivers/pci/hotplug/ibmphp_core.c | 121 ++--
drivers/pci/hotplug/ibmphp_ebda.c | 70 +-
drivers/pci/hotplug/pci_hotplug_core.c | 53 +-
drivers/pci/hotplug/pciehp.h | 133 ++--
drivers/pci/hotplug/pciehp_core.c | 168 ++---
drivers/pci/hotplug/pciehp_ctrl.c | 263 ++++---
drivers/pci/hotplug/pciehp_hpc.c | 184 ++---
drivers/pci/hotplug/pciehp_pci.c | 41 +-
drivers/pci/hotplug/pnv_php.c | 38 +-
drivers/pci/hotplug/rpaphp.h | 10 +-
drivers/pci/hotplug/rpaphp_core.c | 20 +-
drivers/pci/hotplug/rpaphp_pci.c | 11 +-
drivers/pci/hotplug/rpaphp_slot.c | 22 +-
drivers/pci/hotplug/s390_pci_hpc.c | 44 +-
drivers/pci/hotplug/sgi_hotplug.c | 63 +-
drivers/pci/hotplug/shpchp.h | 8 +-
drivers/pci/hotplug/shpchp_core.c | 48 +-
drivers/pci/hotplug/shpchp_ctrl.c | 21 +-
drivers/pci/iov.c | 3 +-
drivers/pci/msi.c | 9 +-
drivers/pci/p2pdma.c | 805 +++++++++++++++++++++
drivers/pci/pci-acpi.c | 63 +-
drivers/pci/pci-bridge-emul.c | 408 +++++++++++
drivers/pci/pci-bridge-emul.h | 124 ++++
drivers/pci/pci.c | 112 ++-
drivers/pci/pci.h | 78 +-
drivers/pci/pcie/Kconfig | 4 -
drivers/pci/pcie/aer.c | 239 ++----
drivers/pci/pcie/aer_inject.c | 96 ++-
drivers/pci/pcie/aspm.c | 4 +-
drivers/pci/pcie/dpc.c | 72 +-
drivers/pci/pcie/err.c | 281 ++-----
drivers/pci/pcie/pme.c | 30 +-
drivers/pci/pcie/portdrv.h | 32 +-
drivers/pci/pcie/portdrv_core.c | 21 +
drivers/pci/pcie/portdrv_pci.c | 31 +-
drivers/pci/probe.c | 24 +-
drivers/pci/quirks.c | 96 +--
drivers/pci/remove.c | 4 +-
drivers/pci/setup-bus.c | 28 +-
drivers/pci/slot.c | 3 +-
drivers/platform/x86/asus-wmi.c | 39 +-
drivers/platform/x86/eeepc-laptop.c | 43 +-
drivers/reset/reset-imx7.c | 1 +
drivers/s390/net/ism_drv.c | 4 +-
drivers/scsi/aacraid/linit.c | 4 +-
drivers/scsi/be2iscsi/be_main.c | 1 -
drivers/scsi/bfa/bfad.c | 2 -
drivers/scsi/csiostor/csio_init.c | 1 -
drivers/scsi/lpfc/lpfc_init.c | 8 -
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 1 -
drivers/scsi/qla2xxx/qla_os.c | 2 -
drivers/scsi/qla4xxx/ql4_os.c | 1 -
include/acpi/acpi_bus.h | 8 +-
include/dt-bindings/reset/imx7-reset.h | 4 +-
include/linux/acpi.h | 9 +
include/linux/blkdev.h | 3 +
include/linux/memremap.h | 6 +
include/linux/mm.h | 18 +
include/linux/pci-dma-compat.h | 18 -
include/linux/pci-dma.h | 12 -
include/linux/pci-p2pdma.h | 114 +++
include/linux/pci.h | 7 +-
include/linux/pci_hotplug.h | 43 +-
include/linux/pci_ids.h | 2 -
include/uapi/linux/pci_regs.h | 1 +
tools/Makefile | 13 +-
tools/pci/Build | 1 +
tools/pci/Makefile | 53 ++
tools/pci/pcitest.c | 7 +-
162 files changed, 5004 insertions(+), 3114 deletions(-)
create mode 100644 Documentation/driver-api/pci/index.rst
create mode 100644 Documentation/driver-api/pci/p2pdma.rst
rename Documentation/driver-api/{ => pci}/pci.rst (100%)
delete mode 100644 drivers/pci/controller/dwc/pci-keystone-dw.c
delete mode 100644 drivers/pci/controller/dwc/pci-keystone.h
create mode 100644 drivers/pci/hotplug/TODO
create mode 100644 drivers/pci/p2pdma.c
create mode 100644 drivers/pci/pci-bridge-emul.c
create mode 100644 drivers/pci/pci-bridge-emul.h
delete mode 100644 include/linux/pci-dma.h
create mode 100644 include/linux/pci-p2pdma.h
create mode 100644 tools/pci/Build
create mode 100644 tools/pci/Makefile