The following changes since commit bb6d3fb354c5ee8d6bde2d576eb7220ea09862b9: Linux 5.6-rc1 (2020-02-09 16:08:48 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git tags/pci-v5.7-changes for you to fetch changes up to 86ce3c90c910110540ac25cae5d9b90b268542bd: Merge branch 'remotes/lorenzo/pci/vmd' (2020-04-02 14:27:09 -0500) ---------------------------------------------------------------- Enumeration: - Revert sysfs "rescan" renames that broke apps (Kelsey Skunberg) - Add more 32 GT/s link speed decoding and improve the implementation (Yicong Yang) Resource management: - Add support for sizing programmable host bridge apertures and fix a related alpha Nautilus regression (Ivan Kokshaysky) Interrupts: - Add boot interrupt quirk mechanism for Xeon chipsets and document boot interrupts (Sean V Kelley) PCIe native device hotplug: - When possible, disable in-band presence detect and use PDS (Alexandru Gagniuc) - Add DMI table for devices that don't use in-band presence detection but don't advertise that correctly (Stuart Hayes) - Fix hang when powering slots up/down via sysfs (Lukas Wunner) - Fix an MSI interrupt race (Stuart Hayes) Virtualization: - Add ACS quirks for Zhaoxin devices (Raymond Pang) Error handling: - Add Error Disconnect Recover (EDR) support so firmware can report devices disconnected via DPC and we can try to recover (Kuppuswamy Sathyanarayanan) Peer-to-peer DMA: - Add Intel Sky Lake-E Root Ports B, C, D to the whitelist (Andrew Maier) ASPM: - Reduce severity of common clock config message (Chris Packham) - Clear the correct bits when enabling L1 substates, so we don't go to the wrong state (Yicong Yang) Endpoint framework: - Replace EPF linkup ops with notifier call chain and improve locking (Kishon Vijay Abraham I) - Fix concurrent memory allocation in OB address region (Kishon Vijay Abraham I) - Move PF function number assignment to EPC core to support multiple function creation methods (Kishon Vijay Abraham I) - Fix issue with clearing configfs "start" entry (Kunihiko Hayashi) - Fix issue with endpoint MSI-X ignoring BAR Indicator and Table Offset (Kishon Vijay Abraham I) - Add support for testing DMA transfers (Kishon Vijay Abraham I) - Add support for testing > 10 endpoint devices (Kishon Vijay Abraham I) - Add support for tests to clear IRQ (Kishon Vijay Abraham I) - Add common DT schema for endpoint controllers (Kishon Vijay Abraham I) Amlogic Meson PCIe controller driver: - Add DT bindings for AXG PCIe PHY, shared MIPI/PCIe analog PHY (Remi Pommarel) - Add Amlogic AXG PCIe PHY, AXG MIPI/PCIe analog PHY drivers (Remi Pommarel) Cadence PCIe controller driver: - Add Root Complex/Endpoint DT schema for Cadence PCIe (Kishon Vijay Abraham I) Intel VMD host bridge driver: - Add two VMD Device IDs that require bus restriction mode (Sushma Kalakota) Mobiveil PCIe controller driver: - Refactor and modularize mobiveil driver (Hou Zhiqiang) - Add support for Mobiveil GPEX Gen4 host (Hou Zhiqiang) Microsoft Hyper-V host bridge driver: - Add support for Hyper-V PCI protocol version 1.3 and PCI_BUS_RELATIONS2 (Long Li) - Refactor to prepare for virtual PCI on non-x86 architectures (Boqun Feng) - Fix memory leak in hv_pci_probe()'s error path (Dexuan Cui) NVIDIA Tegra PCIe controller driver: - Use pci_parse_request_of_pci_ranges() (Rob Herring) - Add support for endpoint mode and related DT updates (Vidya Sagar) - Reduce -EPROBE_DEFER error message log level (Thierry Reding) Qualcomm PCIe controller driver: - Restrict class fixup to specific Qualcomm devices (Bjorn Andersson) Synopsys DesignWare PCIe controller driver: - Refactor core initialization code for endpoint mode (Vidya Sagar) - Fix endpoint MSI-X to use correct table address (Kishon Vijay Abraham I) TI DRA7xx PCIe controller driver: - Fix MSI IRQ handling (Vignesh Raghavendra) TI Keystone PCIe controller driver: - Allow AM654 endpoint to raise MSI-X interrupt (Kishon Vijay Abraham I) Miscellaneous: - Quirk ASMedia XHCI USB to avoid "PME# from D0" defect (Kai-Heng Feng) - Use ioremap(), not phys_to_virt(), for platform ROM to fix video ROM mapping with CONFIG_HIGHMEM (Mikel Rychliski) ---------------------------------------------------------------- Alexandru Gagniuc (2): PCI: pciehp: Disable in-band presence detect when possible PCI: pciehp: Wait for PDS if in-band presence is disabled Andrew Maier (1): PCI/P2PDMA: Add Intel Sky Lake-E Root Ports B, C, D to the whitelist Bjorn Andersson (1): PCI: qcom: Fix the fixup of PCI_VENDOR_ID_QCOM Bjorn Helgaas (21): PCI: Add pci_speed_string() PCI: Use pci_speed_string() for all PCI/PCI-X/PCIe strings PCI/DPC: Move DPC data into struct pci_dev Merge branch 'pci/aspm' Merge branch 'pci/edr' Merge branch 'pci/enumeration' Merge branch 'pci/hotplug' Merge branch 'pci/interrupts' Merge branch 'pci/misc' Merge branch 'pci/p2pdma' Merge branch 'pci/resource' Merge branch 'pci/virtualization' Merge branch 'remotes/lorenzo/pci/amlogic' Merge branch 'remotes/lorenzo/pci/dt' Merge branch 'remotes/lorenzo/pci/dwc' Merge branch 'remotes/lorenzo/pci/endpoint' Merge branch 'remotes/lorenzo/pci/hv' Merge branch 'remotes/lorenzo/pci/mobiveil' Merge branch 'remotes/lorenzo/pci/qcom' Merge branch 'remotes/lorenzo/pci/tegra' Merge branch 'remotes/lorenzo/pci/vmd' Boqun Feng (3): PCI: hv: Move hypercall related definitions into tlfs header PCI: hv: Move retarget related structures into tlfs header PCI: hv: Introduce hv_msi_entry Chris Packham (1): PCI/ASPM: Reduce severity of common clock config message Colin Ian King (1): PCI/ACPI: Move pcie_to_hpx3_type[] from stack to static data Dexuan Cui (2): PCI: hv: Remove unnecessary type casting from kzalloc PCI: hv: Add missing kfree(hbus) in hv_pci_probe()'s error handling path Gustavo A. R. Silva (1): PCI: hv: Replace zero-length array with flexible-array member Hou Zhiqiang (13): PCI: mobiveil: Introduce a new structure mobiveil_root_port PCI: mobiveil: Move the host initialization into a function PCI: mobiveil: Collect the interrupt related operations into a function PCI: mobiveil: Modularize the Mobiveil PCIe Host Bridge IP driver PCI: mobiveil: Add callback function for interrupt initialization PCI: mobiveil: Add callback function for link up check PCI: mobiveil: Allow mobiveil_host_init() to be used to re-init host PCI: mobiveil: Add 8-bit and 16-bit CSR register accessors PCI: mobiveil: Add Header Type field check dt-bindings: PCI: Add NXP Layerscape SoCs PCIe Gen4 controller PCI: mobiveil: Add PCIe Gen4 RC driver for Layerscape SoCs PCI: mobiveil: Fix sparse different address space warnings PCI: mobiveil: Fix unmet dependency warning for PCIE_MOBIVEIL_PLAT Ivan Kokshaysky (2): PCI: Add support for root bus sizing alpha: Fix nautilus PCI setup Kai-Heng Feng (1): PCI: Avoid ASMedia XHCI USB PME# from D0 defect Kelsey Skunberg (1): PCI: sysfs: Revert "rescan" file renames Kishon Vijay Abraham I (21): PCI: endpoint: Use notification chain mechanism to notify EPC events to EPF PCI: endpoint: Replace spinlock with mutex PCI: endpoint: Fix for concurrent memory allocation in OB address region PCI: endpoint: Protect concurrent access to pci_epf_ops with mutex PCI: endpoint: Assign function number for each PF in EPC core dt-bindings: PCI: Add PCI Endpoint Controller Schema dt-bindings: PCI: cadence: Add PCIe RC/EP DT schema for Cadence PCIe dt-bindings: PCI: Convert PCIe Host/Endpoint in Cadence platform to DT schema PCI: endpoint: functions/pci-epf-test: Add DMA support to transfer data PCI: endpoint: functions/pci-epf-test: Print throughput information misc: pci_endpoint_test: Use streaming DMA APIs for buffer allocation tools: PCI: Add 'd' command line option to support DMA misc: pci_endpoint_test: Add support to get DMA option from userspace PCI: endpoint: Fix ->set_msix() to take BIR and offset as arguments PCI: dwc: Fix dw_pcie_ep_raise_msix_irq() to get correct MSI-X table address PCI: keystone: Allow AM654 PCIe Endpoint to raise MSI-X interrupt misc: pci_endpoint_test: Avoid using module parameter to determine irqtype misc: pci_endpoint_test: Add ioctl to clear IRQ tools: PCI: Add 'e' to clear IRQ misc: pci_endpoint_test: Fix to support > 10 pci-endpoint-test devices misc: pci_endpoint_test: Use full pci-endpoint-test name in request_irq() Kunihiko Hayashi (1): PCI: endpoint: Fix clearing start entry in configfs Kuppuswamy Sathyanarayanan (9): PCI/ERR: Combine pci_channel_io_frozen cases PCI/ERR: Update error status after reset_link() PCI/ERR: Remove service dependency in pcie_do_recovery() PCI/ERR: Return status of pcie_do_recovery() PCI/DPC: Cache DPC capabilities in pci_init_capabilities() PCI/AER: Add pci_aer_raw_clear_status() to unconditionally clear Error Status PCI/DPC: Expose dpc_process_error(), dpc_reset_link() for use by EDR PCI/DPC: Add Error Disconnect Recover (EDR) support PCI/AER: Rationalize error status register clearing Lad Prabhakar (1): misc: pci_endpoint_test: remove duplicate macro PCI_ENDPOINT_TEST_STATUS Long Li (2): PCI: hv: Decouple the func definition in hv_dr_state from VSP message PCI: hv: Add support for protocol 1.3 and support PCI_BUS_RELATIONS2 Lukas Wunner (1): PCI: pciehp: Fix indefinite wait on sysfs requests Mikel Rychliski (1): PCI: Use ioremap(), not phys_to_virt() for platform ROM Raymond Pang (3): PCI: Add Zhaoxin Vendor ID PCI: Add ACS quirk for Zhaoxin multi-function devices PCI: Add ACS quirk for Zhaoxin Root/Downstream Ports Remi Pommarel (6): dt-bindings: Add AXG PCIE PHY bindings dt-bindings: Add AXG shared MIPI/PCIE analog PHY bindings dt-bindings: PCI: meson: Update PCIE bindings documentation phy: amlogic: Add Amlogic AXG MIPI/PCIE analog PHY Driver phy: amlogic: Add Amlogic AXG PCIE PHY Driver PCI: amlogic: Use AXG PCIE Rob Herring (1): PCI: tegra: Use pci_parse_request_of_pci_ranges() Sean V Kelley (2): PCI: Add boot interrupt quirk mechanism for Xeon chipsets Documentation: PCI: Add background on Boot Interrupts Stuart Hayes (2): PCI: pciehp: Add DMI table for in-band presence detection disabled PCI: pciehp: Fix MSI interrupt race Sushma Kalakota (1): PCI: vmd: Add two VMD Device IDs Thierry Reding (1): PCI: tegra: Print -EPROBE_DEFER error message at debug level Vidya Sagar (8): PCI: endpoint: Add core init notifying feature PCI: dwc: Refactor core initialization code for EP mode PCI: endpoint: Add notification for core init completion PCI: dwc: Add API to notify core initialization completion PCI: pci-epf-test: Add support to defer core initialization soc/tegra: bpmp: Update ABI header dt-bindings: PCI: tegra: Add DT support for PCIe EP nodes in Tegra194 PCI: tegra: Add support for PCIe endpoint mode in Tegra194 Vignesh Raghavendra (1): PCI: dwc: pci-dra7xx: Fix MSI IRQ handling Yicong Yang (3): PCI: Add 32 GT/s decoding in some macros PCI: Add PCIE_LNKCAP2_SLS2SPEED() macro PCI/ASPM: Clear the correct bits when enabling L1 substates Documentation/PCI/boot-interrupts.rst | 155 +++++ Documentation/PCI/index.rst | 1 + Documentation/PCI/pcieaer-howto.rst | 23 +- .../devicetree/bindings/pci/amlogic,meson-pcie.txt | 22 +- .../devicetree/bindings/pci/cdns,cdns-pcie-ep.txt | 27 - .../devicetree/bindings/pci/cdns,cdns-pcie-ep.yaml | 49 ++ .../bindings/pci/cdns,cdns-pcie-host.txt | 66 -- .../bindings/pci/cdns,cdns-pcie-host.yaml | 76 +++ .../devicetree/bindings/pci/cdns-pcie-host.yaml | 27 + .../devicetree/bindings/pci/cdns-pcie.yaml | 31 + .../bindings/pci/layerscape-pcie-gen4.txt | 52 ++ .../bindings/pci/nvidia,tegra194-pcie.txt | 125 +++- Documentation/devicetree/bindings/pci/pci-ep.yaml | 41 ++ .../phy/amlogic,meson-axg-mipi-pcie-analog.yaml | 35 + .../bindings/phy/amlogic,meson-axg-pcie.yaml | 52 ++ MAINTAINERS | 12 +- arch/alpha/kernel/sys_nautilus.c | 52 +- arch/x86/include/asm/hyperv-tlfs.h | 41 ++ arch/x86/include/asm/mshyperv.h | 8 + drivers/acpi/pci_root.c | 15 + drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 31 +- .../gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.c | 17 +- drivers/gpu/drm/radeon/radeon_bios.c | 30 +- drivers/misc/pci_endpoint_test.c | 213 +++++- drivers/net/ethernet/intel/ice/ice_main.c | 4 +- drivers/ntb/hw/idt/ntb_hw_idt.c | 4 +- drivers/pci/controller/Kconfig | 11 +- drivers/pci/controller/Makefile | 2 +- drivers/pci/controller/dwc/Kconfig | 29 +- drivers/pci/controller/dwc/pci-dra7xx.c | 231 +++++-- drivers/pci/controller/dwc/pci-keystone.c | 5 +- drivers/pci/controller/dwc/pci-meson.c | 116 +--- drivers/pci/controller/dwc/pcie-designware-ep.c | 144 +++-- drivers/pci/controller/dwc/pcie-designware.h | 12 + drivers/pci/controller/dwc/pcie-qcom.c | 8 +- drivers/pci/controller/dwc/pcie-tegra194.c | 712 ++++++++++++++++++++- drivers/pci/controller/mobiveil/Kconfig | 34 + drivers/pci/controller/mobiveil/Makefile | 5 + .../pci/controller/mobiveil/pcie-layerscape-gen4.c | 267 ++++++++ .../pcie-mobiveil-host.c} | 564 ++++------------ .../pci/controller/mobiveil/pcie-mobiveil-plat.c | 61 ++ drivers/pci/controller/mobiveil/pcie-mobiveil.c | 231 +++++++ drivers/pci/controller/mobiveil/pcie-mobiveil.h | 226 +++++++ drivers/pci/controller/pci-hyperv.c | 260 +++++--- drivers/pci/controller/pci-tegra.c | 187 ++---- drivers/pci/controller/pcie-brcmstb.c | 4 +- drivers/pci/endpoint/functions/pci-epf-test.c | 402 ++++++++++-- drivers/pci/endpoint/pci-ep-cfs.c | 28 +- drivers/pci/endpoint/pci-epc-core.c | 137 ++-- drivers/pci/endpoint/pci-epc-mem.c | 10 +- drivers/pci/endpoint/pci-epf-core.c | 35 +- drivers/pci/hotplug/pciehp.h | 1 + drivers/pci/hotplug/pciehp_hpc.c | 93 ++- drivers/pci/p2pdma.c | 3 + drivers/pci/pci-acpi.c | 4 +- drivers/pci/pci-sysfs.c | 33 +- drivers/pci/pci.c | 25 +- drivers/pci/pci.h | 32 +- drivers/pci/pcie/Kconfig | 10 + drivers/pci/pcie/Makefile | 1 + drivers/pci/pcie/aer.c | 40 +- drivers/pci/pcie/aspm.c | 6 +- drivers/pci/pcie/dpc.c | 137 ++-- drivers/pci/pcie/edr.c | 239 +++++++ drivers/pci/pcie/err.c | 66 +- drivers/pci/pcie/portdrv.h | 5 - drivers/pci/pcie/portdrv_core.c | 21 - drivers/pci/probe.c | 42 ++ drivers/pci/quirks.c | 120 +++- drivers/pci/rom.c | 17 - drivers/pci/setup-bus.c | 34 +- drivers/pci/slot.c | 38 +- drivers/phy/amlogic/Kconfig | 22 + drivers/phy/amlogic/Makefile | 12 +- .../phy/amlogic/phy-meson-axg-mipi-pcie-analog.c | 188 ++++++ drivers/phy/amlogic/phy-meson-axg-pcie.c | 192 ++++++ drivers/scsi/lpfc/lpfc_attr.c | 4 +- include/linux/acpi.h | 6 +- include/linux/aer.h | 9 +- include/linux/pci-acpi.h | 8 + include/linux/pci-epc.h | 27 +- include/linux/pci-epf.h | 29 +- include/linux/pci.h | 10 +- include/linux/pci_ids.h | 2 + include/soc/tegra/bpmp-abi.h | 10 +- include/uapi/linux/pci_regs.h | 2 + include/uapi/linux/pcitest.h | 8 + tools/pci/pcitest.c | 37 +- 88 files changed, 4832 insertions(+), 1631 deletions(-) create mode 100644 Documentation/PCI/boot-interrupts.rst delete mode 100644 Documentation/devicetree/bindings/pci/cdns,cdns-pcie-ep.txt create mode 100644 Documentation/devicetree/bindings/pci/cdns,cdns-pcie-ep.yaml delete mode 100644 Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.txt create mode 100644 Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml create mode 100644 Documentation/devicetree/bindings/pci/cdns-pcie-host.yaml create mode 100644 Documentation/devicetree/bindings/pci/cdns-pcie.yaml create mode 100644 Documentation/devicetree/bindings/pci/layerscape-pcie-gen4.txt create mode 100644 Documentation/devicetree/bindings/pci/pci-ep.yaml create mode 100644 Documentation/devicetree/bindings/phy/amlogic,meson-axg-mipi-pcie-analog.yaml create mode 100644 Documentation/devicetree/bindings/phy/amlogic,meson-axg-pcie.yaml create mode 100644 drivers/pci/controller/mobiveil/Kconfig create mode 100644 drivers/pci/controller/mobiveil/Makefile create mode 100644 drivers/pci/controller/mobiveil/pcie-layerscape-gen4.c rename drivers/pci/controller/{pcie-mobiveil.c => mobiveil/pcie-mobiveil-host.c} (54%) create mode 100644 drivers/pci/controller/mobiveil/pcie-mobiveil-plat.c create mode 100644 drivers/pci/controller/mobiveil/pcie-mobiveil.c create mode 100644 drivers/pci/controller/mobiveil/pcie-mobiveil.h create mode 100644 drivers/pci/pcie/edr.c create mode 100644 drivers/phy/amlogic/phy-meson-axg-mipi-pcie-analog.c create mode 100644 drivers/phy/amlogic/phy-meson-axg-pcie.c