The following changes since commit 40384c840ea1944d7c5a392e8975ed088ecf0b37: Linux 6.13-rc1 (2024-12-01 14:28:56 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git tags/pci-v6.14-changes for you to fetch changes up to 10ff5bbfd4b020e58fd8863e44ae59f0d4c337bf: Merge branch 'pci/misc' (2025-01-23 13:05:06 -0600) ---------------------------------------------------------------- Enumeration: - Batch sizing of multiple BARs while memory decoding is disabled instead of disabling/enabling decoding for each BAR individually; this optimizes virtualized environments where toggling decoding enable is expensive (Alex Williamson) - Add host bridge .enable_device() and .disable_device() hooks for bridges that need to configure things like Requester ID to StreamID mapping when enabling devices (Frank Li) - Extend struct pci_ecam_ops with .enable_device() and .disable_device() hooks so drivers that use pci_host_common_probe() instead of their own .probe() have a way to set the .enable_device() callbacks (Marc Zyngier) - Drop 'No bus range found' message so we don't complain when DTs don't specify the default 'bus-range = <0x00 0xff>' (Bjorn Helgaas) - Rename the drivers/pci/of_property.c struct of_pci_range to of_pci_range_entry to avoid confusion with the global of_pci_range in include/linux/of_address.h (Bjorn Helgaas) Driver binding: - Update resource request API documentation to encourage callers to supply a driver name when requesting resources (Philipp Stanner) - Export pci_intx_unmanaged() and pcim_intx() (always managed) so callers of pci_intx() (which is sometimes managed) can explicitly choose the one they need (Philipp Stanner) - Convert drivers from pci_intx() to always-managed pcim_intx() or never-managed pci_intx_unmanaged(): amd_sfh, ata (ahci, ata_piix, pata_rdc, sata_sil24, sata_sis, sata_uli, sata_vsc), bnx2x, bna, ntb, qtnfmac, rtsx, tifm_7xx1, vfio, xen-pciback (Philipp Stanner) - Remove pci_intx_unmanaged() since pci_intx() is now always unmanaged and pcim_intx() is always managed (Philipp Stanner) Error handling: - Unexport pcie_read_tlp_log() to encourage drivers to use PCI core logging rather than building their own (Ilpo Järvinen) - Move TLP Log handling to its own file (Ilpo Järvinen) - Store number of supported End-End TLP Prefixes always so we can read the correct number of DWORDs from the TLP Prefix Log (Ilpo Järvinen) - Read TLP Prefixes in addition to the Header Log in pcie_read_tlp_log() (Ilpo Järvinen) - Add pcie_print_tlp_log() to consolidate printing of TLP Header and Prefix Log (Ilpo Järvinen) - Quirk the Intel Raptor Lake-P PIO log size to accommodate vendor BIOSes that don't configure it correctly (Takashi Iwai) ASPM: - Save parent L1 PM Substates config so when we restore it along with an endpoint's config, the parent info isn't junk (Jian-Hong Pan) Power management: - Avoid D3 for Root Ports on TUXEDO Sirius Gen1 with old BIOS because the system can't wake up from suspend (Werner Sembach) Endpoint framework: - Destroy the EPC device in devm_pci_epc_destroy(), which previously didn't call devres_release() (Zijun Hu) - Finish virtual EP removal in pci_epf_remove_vepf(), which previously caused a subsequent pci_epf_add_vepf() to fail with -EBUSY (Zijun Hu) - Write BAR_MASK before iATU registers in pci_epc_set_bar() so we don't depend on the BAR_MASK reset value being larger than the requested BAR size (Niklas Cassel) - Prevent changing BAR size/flags in pci_epc_set_bar() to prevent reads from bypassing the iATU if we reduced the BAR size (Niklas Cassel) - Verify address alignment when programming iATU so we don't attempt to write bits that are read-only because of the BAR size, which could lead to directing accesses to the wrong address (Niklas Cassel) - Implement artpec6 pci_epc_features so we can rely on all drivers supporting it so we can use it in EPC core code (Niklas Cassel) - Check for BARs of fixed size to prevent endpoint drivers from trying to change their size (Niklas Cassel) - Verify that requested BAR size is a power of two when endpoint driver sets the BAR (Niklas Cassel) Endpoint framework tests: - Clear pci-epf-test dma_chan_rx, not dma_chan_tx, after freeing dma_chan_rx (Mohamed Khalfella) - Correct the DMA MEMCPY test so it doesn't fail if the Endpoint supports both DMA_PRIVATE and DMA_MEMCPY (Manivannan Sadhasivam) - Add pci-epf-test and pci_endpoint_test support for capabilities (Niklas Cassel) - Add Endpoint test for consecutive BARs (Niklas Cassel) - Remove redundant comparison from Endpoint BAR test because a > 1MB BAR can always be exactly covered by iterating with a 1MB buffer (Hans Zhang) - Move and convert PCI Endpoint tests from tools/pci to Kselftests (Manivannan Sadhasivam) Apple PCIe controller driver: - Convert StreamID mapping configuration from a bus notifier to the .enable_device() and .disable_device() callbacks (Marc Zyngier) Freescale i.MX6 PCIe controller driver: - Add Requester ID to StreamID mapping configuration when enabling devices (Frank Li) - Use DWC core suspend/resume functions for imx6 (Frank Li) - Add suspend/resume support for i.MX8MQ, i.MX8Q, and i.MX95 (Richard Zhu) - Add DT compatible string 'fsl,imx8q-pcie-ep' and driver support for i.MX8Q series (i.MX8QM, i.MX8QXP, and i.MX8DXL) Endpoints (Frank Li) - Add DT binding for optional i.MX95 Refclk and driver support to enable it if the platform hasn't enabled it (Richard Zhu) - Configure PHY based on controller being in Root Complex or Endpoint mode (Frank Li) - Rely on dbi2 and iATU base addresses from DT via dw_pcie_get_resources() instead of hardcoding them (Richard Zhu) - Deassert apps_reset in imx_pcie_deassert_core_reset() since it is asserted in imx_pcie_assert_core_reset() (Richard Zhu) - Add missing reference clock enable or disable logic for IMX6SX, IMX7D, IMX8MM (Richard Zhu) - Remove redundant imx7d_pcie_init_phy() since imx7d_pcie_enable_ref_clk() does the same thing (Richard Zhu) Freescale Layerscape PCIe controller driver: - Simplify by using syscon_regmap_lookup_by_phandle_args() instead of syscon_regmap_lookup_by_phandle() followed by of_property_read_u32_array() (Krzysztof Kozlowski) Marvell MVEBU PCIe controller driver: - Add MODULE_DEVICE_TABLE() to enable module autoloading (Liao Chen) MediaTek PCIe Gen3 controller driver: - Use clk_bulk_prepare_enable() instead of separate clk_bulk_prepare() and clk_bulk_enable() (Lorenzo Bianconi) - Rearrange reset assert/deassert so they're both done in the *_power_up() callbacks (Lorenzo Bianconi) - Document that Airoha EN7581 requires PHY init and power-on before PHY reset deassert, unlike other MediaTek Gen3 controllers (Lorenzo Bianconi) - Move Airoha EN7581 post-reset delay from the en7581 clock .enable() method to mtk_pcie_en7581_power_up() (Lorenzo Bianconi) - Sleep instead of delay during Airoha EN7581 power-up, since this is a non-atomic context (Lorenzo Bianconi) - Skip PERST# assertion on Airoha EN7581 during probe and suspend/resume to avoid a hardware defect (Lorenzo Bianconi) - Enable async probe to reduce system startup time (Douglas Anderson) Microchip PolarFlare PCIe controller driver: - Set up the inbound address translation based on whether the platform allows coherent or non-coherent DMA (Daire McNamara) - Update DT binding such that platforms are DMA-coherent by default and must specify 'dma-noncoherent' if needed (Conor Dooley) Mobiveil PCIe controller driver: - Convert mobiveil-pcie.txt to YAML and update 'interrupt-names' and 'reg-names' (Frank Li) Qualcomm PCIe controller driver: - Add DT SM8550 and SM8650 optional 'global' interrupt for link events (Neil Armstrong) - Add DT 'compatible' strings for IPQ5424 PCIe controller (Manikanta Mylavarapu) - If 'global' IRQ is supported for detection of Link Up events, tell DWC core not to wait for link up (Krishna chaitanya chundru) Renesas R-Car PCIe controller driver: - Avoid passing stack buffer as resource name (King Dix) Rockchip PCIe controller driver: - Simplify clock and reset handling by using bulk interfaces (Anand Moon) - Pass typed rockchip_pcie (not void) pointer to rockchip_pcie_disable_clocks() (Anand Moon) - Return -ENOMEM, not success, when pci_epc_mem_alloc_addr() fails (Dan Carpenter) Rockchip DesignWare PCIe controller driver: - Use dll_link_up IRQ to detect Link Up and enumerate devices so users don't have to manually rescan (Niklas Cassel) - Tell DWC core not to wait for link up since the 'sys' interrupt is required and detects Link Up events (Niklas Cassel) Synopsys DesignWare PCIe controller driver: - Don't wait for link up in DWC core if driver can detect Link Up event (Krishna chaitanya chundru) - Update ICC and OPP votes after Link Up events (Krishna chaitanya chundru) - Always stop link in dw_pcie_suspend_noirq(), which is required at least for i.MX8QM to re-establish link on resume (Richard Zhu) - Drop racy and unnecessary LTSSM state check before sending PME_TURN_OFF message in dw_pcie_suspend_noirq() (Richard Zhu) - Add struct of_pci_range.parent_bus_addr for devices that need their immediate parent bus address, not the CPU address, e.g., to program an internal Address Translation Unit (iATU) (Frank Li) TI DRA7xx PCIe controller driver: - Simplify by using syscon_regmap_lookup_by_phandle_args() instead of syscon_regmap_lookup_by_phandle() followed by of_parse_phandle_with_fixed_args() or of_property_read_u32_index() (Krzysztof Kozlowski) Xilinx Versal CPM PCIe controller driver: - Add DT binding and driver support for Xilinx Versal CPM5 (Thippeswamy Havalige) MicroSemi Switchtec management driver: - Add Microchip PCI100X device IDs (Rakesh Babu Saladi) Miscellaneous: - Move reset related sysfs code from pci.c to pci-sysfs.c where other similar code lives (Ilpo Järvinen) - Simplify reset_method_store() memory management by using __free() instead of explicit kfree() cleanup (Ilpo Järvinen) - Constify struct bin_attribute for sysfs, VPD, P2PDMA, and the IBM ACPI hotplug driver (Thomas Weißschuh) - Remove redundant PCI_VSEC_HDR and PCI_VSEC_HDR_LEN_SHIFT (Dongdong Zhang) - Correct documentation of the 'config_acs=' kernel parameter (Akihiko Odaki) ---------------------------------------------------------------- Akihiko Odaki (1): Documentation: Fix pci=config_acs= example Alex Williamson (1): PCI: Batch BAR sizing operations Anand Moon (3): PCI: rockchip: Simplify clock handling by using clk_bulk*() functions PCI: rockchip: Simplify reset control handling by using reset_control_bulk*() function PCI: rockchip: Refactor rockchip_pcie_disable_clocks() signature Bjorn Helgaas (32): PCI: Unexport of_pci_parse_bus_range() PCI: of: Drop 'No bus range found' message PCI: of: Simplify devm_of_pci_get_host_bridge_resources() interface sparc/PCI: Update reference to devm_of_pci_get_host_bridge_resources() PCI: dwc: Add dw_pcie_suspend_noirq(), dw_pcie_resume_noirq() stubs for !CONFIG_PCIE_DW_HOST PCI: of_property: Rename struct of_pci_range to of_pci_range_entry PCI: imx6: Clean up comments and whitespace PCI: dwc: Simplify config resource lookup Merge branch 'pci/aspm' Merge branch 'pci/devres' Merge branch 'pci/dpc' Merge branch 'pci/enumeration' Merge branch 'pci/err' Merge branch 'pci/of' Merge branch 'pci/pci-sysfs' Merge branch 'pci/pm' Merge branch 'pci/switchtec' Merge branch 'pci/endpoint' Merge branch 'pci/endpoint-test' Merge branch 'pci/dt-bindings' Merge branch 'pci/controller/iommu-map' Merge branch 'pci/controller/dra7xx' Merge branch 'pci/controller/dwc' Merge branch 'pci/controller/imx6' Merge branch 'pci/controller/layerscape' Merge branch 'pci/controller/mediatek' Merge branch 'pci/controller/microchip' Merge branch 'pci/controller/mvebu' Merge branch 'pci/controller/rcar-ep' Merge branch 'pci/controller/rockchip' Merge branch 'pci/controller/xilinx-cpm' Merge branch 'pci/misc' Conor Dooley (1): dt-bindings: PCI: microchip,pcie-host: Allow dma-noncoherent Daire McNamara (1): PCI: microchip: Set inbound address translation for coherent or non-coherent mode Damien Le Moal (1): PCI: rockchip: Add missing fields descriptions for struct rockchip_pcie_ep Dan Carpenter (1): PCI: rockchip-ep: Fix error code in rockchip_pcie_ep_init_ob_mem() Dongdong Zhang (1): PCI: Remove redundant PCI_VSEC_HDR and PCI_VSEC_HDR_LEN_SHIFT Douglas Anderson (1): PCI: mediatek-gen3: Enable async probe by default Frank Li (8): PCI: Add enable_device() and disable_device() callbacks for bridges PCI: imx6: Add IOMMU and ITS MSI support for i.MX95 dt-bindings: PCI: fsl,imx6q-pcie-ep: Add compatible string fsl,imx8q-pcie-ep PCI: imx6: Add i.MX8Q PCIe Endpoint (EP) support PCI: imx6: Configure PHY based on Root Complex or Endpoint mode PCI: imx6: Use DWC common suspend resume method of: address: Add parent_bus_addr to struct of_pci_range dt-bindings: PCI: mobiveil: Convert mobiveil-pcie.txt to YAML Hans Zhang (1): misc: pci_endpoint_test: Remove redundant 'remainder' test Ilpo Järvinen (11): PCI: Don't expose pcie_read_tlp_log() outside PCI subsystem PCI: Move TLP Log handling to its own file PCI: Add defines for TLP Header/Prefix log sizes PCI: Use same names in pcie_read_tlp_log() prototype and definition PCI: Use unsigned int i in pcie_read_tlp_log() PCI: Store number of supported End-End TLP Prefixes PCI/sysfs: Move reset related sysfs code to correct file PCI/sysfs: Use __free() in reset_method_store() PCI/sysfs: Remove unnecessary zero in initializer PCI: Add TLP Prefix reading to pcie_read_tlp_log() PCI: Add pcie_print_tlp_log() to print TLP Header and Prefix Log Jian-Hong Pan (1): PCI/ASPM: Save parent L1SS config in pci_save_aspm_l1ss_state() King Dix (1): PCI: rcar-ep: Fix incorrect variable used when calling devm_request_mem_region() Krishna chaitanya chundru (3): PCI: dwc: Don't wait for link up if driver can detect Link Up event PCI: qcom: Don't wait for link if we can detect Link Up PCI: qcom: Update ICC and OPP values after Link Up event Krzysztof Kozlowski (2): PCI: layerscape: Use syscon_regmap_lookup_by_phandle_args PCI: dra7xx: Use syscon_regmap_lookup_by_phandle_args Liao Chen (1): PCI: mvebu: Enable module autoloading Lorenzo Bianconi (6): PCI: mediatek-gen3: Rely on clk_bulk_prepare_enable() in mtk_pcie_en7581_power_up() PCI: mediatek-gen3: Move reset/assert callbacks in .power_up() PCI: mediatek-gen3: Add comment about initialization order in mtk_pcie_en7581_power_up() PCI: mediatek-gen3: Move reset delay in mtk_pcie_en7581_power_up() PCI: mediatek-gen3: Rely on msleep() in mtk_pcie_en7581_power_up() PCI: mediatek-gen3: Avoid PCIe resetting via PERST# for Airoha EN7581 SoC Lukas Wunner (1): PCI: Update code comment on PCI_EXP_LNKCAP_SLS for PCIe r3.0 Manikanta Mylavarapu (1): dt-bindings: PCI: qcom: Document the IPQ5424 PCIe controller Manivannan Sadhasivam (4): PCI: endpoint: pci-epf-test: Fix check for DMA MEMCPY test misc: pci_endpoint_test: Fix IOCTL return value selftests: Move PCI Endpoint tests from tools/pci to Kselftests selftests: pci_endpoint: Migrate to Kselftest framework Marc Zyngier (2): PCI: host-generic: Allow {en,dis}able_device() to be provided via pci_ecam_ops PCI: apple: Convert to {en,dis}able_device() callbacks Mohamed Khalfella (1): PCI: endpoint: pci-epf-test: Set dma_chan_rx pointer to NULL on error Neil Armstrong (1): dt-bindings: PCI: qcom,pcie-sm8550: Document 'global' interrupt Niklas Cassel (12): PCI: dwc: ep: Write BAR_MASK before iATU registers in pci_epc_set_bar() PCI: dwc: ep: Prevent changing BAR size/flags in pci_epc_set_bar() PCI: dwc: ep: Add 'address' alignment to 'size' check in dw_pcie_prog_ep_inbound_atu() PCI: artpec6: Implement dw_pcie_ep operation get_features PCI: endpoint: Add size check for fixed size BARs in pci_epc_set_bar() PCI: endpoint: Verify that requested BAR size is a power of two PCI: dwc: Fix potential truncation in dw_pcie_edma_irq_verify() PCI: dw-rockchip: Enumerate endpoints based on dll_link_up IRQ PCI: dw-rockchip: Don't wait for link since we can detect Link Up PCI: endpoint: pci-epf-test: Add support for capabilities misc: pci_endpoint_test: Add support for capabilities misc: pci_endpoint_test: Add consecutive BAR test Philipp Stanner (12): PCI: Encourage resource request API users to supply driver name PCI: Export pci_intx_unmanaged() and pcim_intx() drivers/xen: Use never-managed version of pci_intx() ntb: Use never-managed version of pci_intx() misc: Use never-managed version of pci_intx() vfio/pci: Use never-managed version of pci_intx() PCI/MSI: Use never-managed version of pci_intx() ata: Use always-managed version of pci_intx() wifi: qtnfmac: use always-managed version of pcim_intx() HID: amd_sfh: Use always-managed version of pcim_intx() net/ethernet: Use never-managed version of pci_intx() PCI: Remove devres from pci_intx() Rakesh Babu Saladi (1): PCI: switchtec: Add Microchip PCI100X device IDs Richard Zhu (10): dt-bindings: PCI: fsl,imx6q-pcie: Add Refclk for i.MX95 RC PCI: imx6: Add Refclk for i.MX95 PCIe PCI: imx6: Fetch dbi2 and iATU base addesses from DT PCI: imx6: Skip controller_id generation logic for i.MX7D PCI: imx6: Deassert apps_reset in imx_pcie_deassert_core_reset() PCI: imx6: Add missing reference clock disable logic PCI: imx6: Remove surplus imx7d_pcie_init_phy() function PCI: dwc: Always stop link in the dw_pcie_suspend_noirq PCI: dwc: Remove LTSSM state test in dw_pcie_suspend_noirq() PCI: imx6: Add i.MX8MQ, i.MX8Q and i.MX95 PM support Rick Wertenbroek (1): PCI: endpoint: Replace magic number '6' by PCI_STD_NUM_BARS Takashi Iwai (1): PCI/DPC: Quirk PIO log size for Intel Raptor Lake-P Thippeswamy Havalige (2): dt-bindings: PCI: xilinx-cpm: Add compatible string for CPM5 host1 PCI: xilinx-cpm: Add support for Versal CPM5 Root Port Controller 1 Thomas Weißschuh (4): PCI/sysfs: Constify 'struct bin_attribute' PCI/VPD: Constify 'struct bin_attribute' PCI/P2PDMA: Constify 'struct bin_attribute' PCI/ACPI: Constify 'struct bin_attribute' Werner Sembach (1): PCI: Avoid putting some root ports into D3 on TUXEDO Sirius Gen1 Wolfram Sang (1): PCI: Don't include 'pm_wakeup.h' directly Zijun Hu (3): PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy() PCI: endpoint: Simplify pci_epc_get() PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf() Documentation/PCI/endpoint/pci-test-howto.rst | 168 ++++---- Documentation/admin-guide/kernel-parameters.txt | 2 +- .../bindings/pci/fsl,imx6q-pcie-common.yaml | 4 +- .../devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml | 39 +- .../devicetree/bindings/pci/fsl,imx6q-pcie.yaml | 25 +- .../bindings/pci/layerscape-pcie-gen4.txt | 52 --- .../devicetree/bindings/pci/mbvl,gpex40-pcie.yaml | 173 ++++++++ .../bindings/pci/microchip,pcie-host.yaml | 2 + .../devicetree/bindings/pci/mobiveil-pcie.txt | 72 ---- .../devicetree/bindings/pci/qcom,pcie-sm8550.yaml | 9 +- .../devicetree/bindings/pci/qcom,pcie.yaml | 4 + .../devicetree/bindings/pci/xilinx-versal-cpm.yaml | 1 + MAINTAINERS | 5 +- arch/sparc/kernel/pci_common.c | 2 +- arch/x86/pci/fixup.c | 30 ++ drivers/ata/ahci.c | 2 +- drivers/ata/ata_piix.c | 2 +- drivers/ata/pata_rdc.c | 2 +- drivers/ata/sata_sil24.c | 2 +- drivers/ata/sata_sis.c | 2 +- drivers/ata/sata_uli.c | 2 +- drivers/ata/sata_vsc.c | 2 +- drivers/clk/clk-en7523.c | 1 - drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 4 +- drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c | 2 +- drivers/misc/pci_endpoint_test.c | 354 ++++++++++------ drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c | 2 +- drivers/of/address.c | 2 + drivers/pci/ats.c | 2 +- drivers/pci/controller/dwc/pci-dra7xx.c | 27 +- drivers/pci/controller/dwc/pci-imx6.c | 449 +++++++++++++++------ drivers/pci/controller/dwc/pci-layerscape.c | 10 +- drivers/pci/controller/dwc/pcie-artpec6.c | 13 + drivers/pci/controller/dwc/pcie-designware-ep.c | 54 ++- drivers/pci/controller/dwc/pcie-designware-host.c | 56 ++- drivers/pci/controller/dwc/pcie-designware.c | 7 +- drivers/pci/controller/dwc/pcie-designware.h | 19 +- drivers/pci/controller/dwc/pcie-dw-rockchip.c | 69 +++- drivers/pci/controller/dwc/pcie-qcom.c | 7 +- drivers/pci/controller/pci-host-common.c | 2 + drivers/pci/controller/pci-mvebu.c | 1 + drivers/pci/controller/pcie-apple.c | 75 +--- drivers/pci/controller/pcie-mediatek-gen3.c | 115 ++++-- drivers/pci/controller/pcie-rcar-ep.c | 2 +- drivers/pci/controller/pcie-rockchip-ep.c | 5 + drivers/pci/controller/pcie-rockchip.c | 219 ++-------- drivers/pci/controller/pcie-rockchip.h | 35 +- drivers/pci/controller/pcie-xilinx-cpm.c | 50 ++- drivers/pci/controller/plda/pcie-microchip-host.c | 96 +++++ drivers/pci/controller/plda/pcie-plda-host.c | 17 +- drivers/pci/controller/plda/pcie-plda.h | 6 +- drivers/pci/devres.c | 40 +- drivers/pci/endpoint/functions/pci-epf-test.c | 25 +- drivers/pci/endpoint/pci-epc-core.c | 37 +- drivers/pci/endpoint/pci-epf-core.c | 1 + drivers/pci/hotplug/acpiphp_ibm.c | 6 +- drivers/pci/iov.c | 8 +- drivers/pci/of.c | 22 +- drivers/pci/of_property.c | 4 +- drivers/pci/p2pdma.c | 6 +- drivers/pci/pci-sysfs.c | 150 ++++++- drivers/pci/pci.c | 275 ++++--------- drivers/pci/pci.h | 23 +- drivers/pci/pcie/Makefile | 2 +- drivers/pci/pcie/aer.c | 15 +- drivers/pci/pcie/aspm.c | 35 +- drivers/pci/pcie/dpc.c | 22 +- drivers/pci/pcie/tlp.c | 115 ++++++ drivers/pci/probe.c | 107 +++-- drivers/pci/quirks.c | 18 +- drivers/pci/switch/switchtec.c | 26 ++ drivers/pci/vpd.c | 14 +- drivers/vfio/pci/vfio_pci_config.c | 5 +- include/linux/aer.h | 12 +- include/linux/of_address.h | 1 + include/linux/pci-ecam.h | 4 + include/linux/pci-epf.h | 4 +- include/linux/pci.h | 5 +- include/uapi/linux/pci_regs.h | 16 +- include/uapi/linux/pcitest.h | 1 + tools/pci/Build | 1 - tools/pci/Makefile | 58 --- tools/pci/pcitest.c | 250 ------------ tools/pci/pcitest.sh | 72 ---- tools/testing/selftests/Makefile | 1 + tools/testing/selftests/pci_endpoint/.gitignore | 2 + tools/testing/selftests/pci_endpoint/Makefile | 7 + tools/testing/selftests/pci_endpoint/config | 4 + .../selftests/pci_endpoint/pci_endpoint_test.c | 221 ++++++++++ 89 files changed, 2248 insertions(+), 1670 deletions(-) delete mode 100644 Documentation/devicetree/bindings/pci/layerscape-pcie-gen4.txt create mode 100644 Documentation/devicetree/bindings/pci/mbvl,gpex40-pcie.yaml delete mode 100644 Documentation/devicetree/bindings/pci/mobiveil-pcie.txt create mode 100644 drivers/pci/pcie/tlp.c delete mode 100644 tools/pci/Build delete mode 100644 tools/pci/Makefile delete mode 100644 tools/pci/pcitest.c delete mode 100644 tools/pci/pcitest.sh create mode 100644 tools/testing/selftests/pci_endpoint/.gitignore create mode 100644 tools/testing/selftests/pci_endpoint/Makefile create mode 100644 tools/testing/selftests/pci_endpoint/config create mode 100644 tools/testing/selftests/pci_endpoint/pci_endpoint_test.c