Skip to content

Commit 0bd0a41

Browse files
committed
Merge tag 'pci-v6.17-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
Pull PCI updates from Bjorn Helgaas: "Enumeration: - Allow built-in drivers, not just modular drivers, to use async initial probing (Lukas Wunner) - Support Immediate Readiness even on devices with no PM Capability (Sean Christopherson) - Consolidate definition of PCIE_RESET_CONFIG_WAIT_MS (100ms), the required delay between a reset and sending config requests to a device (Niklas Cassel) - Add pci_is_display() to check for "Display" base class and use it in ALSA hda, vfio, vga_switcheroo, vt-d (Mario Limonciello) - Allow 'isolated PCI functions' (multi-function devices without a function 0) for LoongArch, similar to s390 and jailhouse (Huacai Chen) Power control: - Add ability to enable optional slot clock for cases where the PCIe host controller and the slot are supplied by different clocks (Marek Vasut) PCIe native device hotplug: - Fix runtime PM ref imbalance on Hot-Plug Capable ports caused by misinterpreting a config read failure after a device has been removed (Lukas Wunner) - Avoid creating a useless PCIe port service device for pciehp if the slot is handled by the ACPI hotplug driver (Lukas Wunner) - Ignore ACPI hotplug slots when calculating depth of pciehp hotplug ports (Lukas Wunner) Virtualization: - Save VF resizable BAR state and restore it after reset (Michał Winiarski) - Allow IOV resources (VF BARs) to be resized (Michał Winiarski) - Add pci_iov_vf_bar_set_size() so drivers can control VF BAR size (Michał Winiarski) Endpoint framework: - Add RC-to-EP doorbell support using platform MSI controller, including a test case (Frank Li) - Allow BAR assignment via configfs so platforms have flexibility in determining BAR usage (Jerome Brunet) Native PCIe controller drivers: - Convert amazon,al-alpine-v[23]-pcie, apm,xgene-pcie, axis,artpec6-pcie, marvell,armada-3700-pcie, st,spear1340-pcie to DT schema format (Rob Herring) - Use dev_fwnode() instead of of_fwnode_handle() to remove OF dependency in altera (fixes an unused variable), designware-host, mediatek, mediatek-gen3, mobiveil, plda, xilinx, xilinx-dma, xilinx-nwl (Jiri Slaby, Arnd Bergmann) - Convert aardvark, altera, brcmstb, designware-host, iproc, mediatek, mediatek-gen3, mobiveil, plda, rcar-host, vmd, xilinx, xilinx-dma, xilinx-nwl from using pci_msi_create_irq_domain() to using msi_create_parent_irq_domain() instead; this makes the interrupt controller per-PCI device, allows dynamic allocation of vectors after initialization, and allows support of IMS (Nam Cao) APM X-Gene PCIe controller driver: - Rewrite MSI handling to MSI CPU affinity, drop useless CPU hotplug bits, use device-managed memory allocations, and clean things up (Marc Zyngier) - Probe xgene-msi as a standard platform driver rather than a subsys_initcall (Marc Zyngier) Broadcom STB PCIe controller driver: - Add optional DT 'num-lanes' property and if present, use it to override the Maximum Link Width advertised in Link Capabilities (Jim Quinlan) Cadence PCIe controller driver: - Use PCIe Message routing types from the PCI core rather than defining private ones (Hans Zhang) Freescale i.MX6 PCIe controller driver: - Add IMX8MQ_EP third 64-bit BAR in epc_features (Richard Zhu) - Add IMX8MM_EP and IMX8MP_EP fixed 256-byte BAR 4 in epc_features (Richard Zhu) - Configure LUT for MSI/IOMMU in Endpoint mode so Root Complex can trigger doorbel on Endpoint (Frank Li) - Remove apps_reset (LTSSM_EN) from imx_pcie_{assert,deassert}_core_reset(), which fixes a hotplug regression on i.MX8MM (Richard Zhu) - Delay Endpoint link start until configfs 'start' written (Richard Zhu) Intel VMD host bridge driver: - Add Intel Panther Lake (PTL)-H/P/U Vendor ID (George D Sworo) Qualcomm PCIe controller driver: - Add DT binding and driver support for SA8255p, which supports ECAM for Configuration Space access (Mayank Rana) - Update DT binding and driver to describe PHYs and per-Root Port resets in a Root Port stanza and deprecate describing them in the host bridge; this makes it possible to support multiple Root Ports in the future (Krishna Chaitanya Chundru) - Add Qualcomm QCS615 to SM8150 DT binding (Ziyue Zhang) - Add Qualcomm QCS8300 to SA8775p DT binding (Ziyue Zhang) - Drop TBU and ref clocks from Qualcomm SM8150 and SC8180x DT bindings (Konrad Dybcio) - Document 'link_down' reset in Qualcomm SA8775P DT binding (Ziyue Zhang) - Add required PCIE_RESET_CONFIG_WAIT_MS delay after Link up IRQ (Niklas Cassel) Rockchip PCIe controller driver: - Drop unused PCIe Message routing and code definitions (Hans Zhang) - Remove several unused header includes (Hans Zhang) - Use standard PCIe config register definitions instead of rockchip-specific redefinitions (Geraldo Nascimento) - Set Target Link Speed to 5.0 GT/s before retraining so we have a chance to train at a higher speed (Geraldo Nascimento) Rockchip DesignWare PCIe controller driver: - Prevent race between link training and register update via DBI by inhibiting link training after hot reset and link down (Wilfred Mallawa) - Add required PCIE_RESET_CONFIG_WAIT_MS delay after Link up IRQ (Niklas Cassel) Sophgo PCIe controller driver: - Add DT binding and driver for Sophgo SG2044 PCIe controller driver in Root Complex mode (Inochi Amaoto) Synopsys DesignWare PCIe controller driver: - Add required PCIE_RESET_CONFIG_WAIT_MS after waiting for Link up on Ports that support > 5.0 GT/s. Slower Ports still rely on the not-quite-correct PCIE_LINK_WAIT_SLEEP_MS 90ms default delay while waiting for the Link (Niklas Cassel)" * tag 'pci-v6.17-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (116 commits) dt-bindings: PCI: qcom,pcie-sa8775p: Document 'link_down' reset dt-bindings: PCI: Remove 83xx-512x-pci.txt dt-bindings: PCI: Convert amazon,al-alpine-v[23]-pcie to DT schema dt-bindings: PCI: Convert marvell,armada-3700-pcie to DT schema dt-bindings: PCI: Convert apm,xgene-pcie to DT schema dt-bindings: PCI: Convert axis,artpec6-pcie to DT schema dt-bindings: PCI: Convert st,spear1340-pcie to DT schema PCI: Move is_pciehp check out of pciehp_is_native() PCI: pciehp: Use is_pciehp instead of is_hotplug_bridge PCI/portdrv: Use is_pciehp instead of is_hotplug_bridge PCI/ACPI: Fix runtime PM ref imbalance on Hot-Plug Capable ports selftests: pci_endpoint: Add doorbell test case misc: pci_endpoint_test: Add doorbell test case PCI: endpoint: pci-epf-test: Add doorbell test support PCI: endpoint: Add pci_epf_align_inbound_addr() helper for inbound address alignment PCI: endpoint: pci-ep-msi: Add checks for MSI parent and mutability PCI: endpoint: Add RC-to-EP doorbell support using platform MSI controller PCI: dwc: Add Sophgo SG2044 PCIe controller driver in Root Complex mode PCI: vmd: Switch to msi_create_parent_irq_domain() PCI: vmd: Convert to lock guards ...
2 parents 877d94c + 58d2b6b commit 0bd0a41

File tree

104 files changed

+3005
-1384
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+3005
-1384
lines changed

Documentation/PCI/endpoint/pci-test-howto.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,3 +203,18 @@ controllers, it is advisable to skip this testcase using this
203203
command::
204204

205205
# pci_endpoint_test -f pci_ep_bar -f pci_ep_basic -v memcpy -T COPY_TEST -v dma
206+
207+
Kselftest EP Doorbell
208+
~~~~~~~~~~~~~~~~~~~~~
209+
210+
If the Endpoint MSI controller is used for the doorbell usecase, run below
211+
command for testing it:
212+
213+
# pci_endpoint_test -f pcie_ep_doorbell
214+
215+
# Starting 1 tests from 1 test cases.
216+
# RUN pcie_ep_doorbell.DOORBELL_TEST ...
217+
# OK pcie_ep_doorbell.DOORBELL_TEST
218+
ok 1 pcie_ep_doorbell.DOORBELL_TEST
219+
# PASSED: 1 / 1 tests passed.
220+
# Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0

Documentation/devicetree/bindings/pci/83xx-512x-pci.txt

Lines changed: 0 additions & 39 deletions
This file was deleted.

Documentation/devicetree/bindings/pci/aardvark-pci.txt

Lines changed: 0 additions & 59 deletions
This file was deleted.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/amazon,al-alpine-v3-pcie.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Amazon Annapurna Labs Alpine v3 PCIe Host Bridge
8+
9+
maintainers:
10+
- Jonathan Chocron <[email protected]>
11+
12+
description:
13+
Amazon's Annapurna Labs PCIe Host Controller is based on the Synopsys
14+
DesignWare PCI controller.
15+
16+
allOf:
17+
- $ref: snps,dw-pcie.yaml#
18+
19+
properties:
20+
compatible:
21+
enum:
22+
- amazon,al-alpine-v2-pcie
23+
- amazon,al-alpine-v3-pcie
24+
25+
reg:
26+
items:
27+
- description: PCIe ECAM space
28+
- description: AL proprietary registers
29+
- description: Designware PCIe registers
30+
31+
reg-names:
32+
items:
33+
- const: config
34+
- const: controller
35+
- const: dbi
36+
37+
interrupts:
38+
maxItems: 1
39+
40+
unevaluatedProperties: false
41+
42+
required:
43+
- compatible
44+
- reg
45+
- reg-names
46+
47+
examples:
48+
- |
49+
#include <dt-bindings/interrupt-controller/arm-gic.h>
50+
51+
bus {
52+
#address-cells = <2>;
53+
#size-cells = <2>;
54+
55+
pcie@fb600000 {
56+
compatible = "amazon,al-alpine-v3-pcie";
57+
reg = <0x0 0xfb600000 0x0 0x00100000
58+
0x0 0xfd800000 0x0 0x00010000
59+
0x0 0xfd810000 0x0 0x00001000>;
60+
reg-names = "config", "controller", "dbi";
61+
bus-range = <0 255>;
62+
device_type = "pci";
63+
#address-cells = <3>;
64+
#size-cells = <2>;
65+
#interrupt-cells = <1>;
66+
interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
67+
interrupt-map-mask = <0x00 0 0 7>;
68+
interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; /* INTa */
69+
ranges = <0x02000000 0x0 0xc0010000 0x0 0xc0010000 0x0 0x07ff0000>;
70+
};
71+
};
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/apm,xgene-pcie.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: AppliedMicro X-Gene PCIe interface
8+
9+
maintainers:
10+
- Toan Le <[email protected]>
11+
12+
allOf:
13+
- $ref: /schemas/pci/pci-host-bridge.yaml#
14+
15+
properties:
16+
compatible:
17+
oneOf:
18+
- items:
19+
- const: apm,xgene-storm-pcie
20+
- const: apm,xgene-pcie
21+
- items:
22+
- const: apm,xgene-pcie
23+
24+
reg:
25+
items:
26+
- description: Controller configuration registers
27+
- description: PCI configuration space registers
28+
29+
reg-names:
30+
items:
31+
- const: csr
32+
- const: cfg
33+
34+
clocks:
35+
maxItems: 1
36+
37+
clock-names:
38+
items:
39+
- const: pcie
40+
41+
dma-coherent: true
42+
43+
msi-parent:
44+
maxItems: 1
45+
46+
required:
47+
- compatible
48+
- reg
49+
- reg-names
50+
- '#interrupt-cells'
51+
- interrupt-map-mask
52+
- interrupt-map
53+
- clocks
54+
55+
unevaluatedProperties: false
56+
57+
examples:
58+
- |
59+
bus {
60+
#address-cells = <2>;
61+
#size-cells = <2>;
62+
63+
pcie@1f2b0000 {
64+
compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
65+
device_type = "pci";
66+
#interrupt-cells = <1>;
67+
#size-cells = <2>;
68+
#address-cells = <3>;
69+
reg = <0x00 0x1f2b0000 0x0 0x00010000>, /* Controller registers */
70+
<0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
71+
reg-names = "csr", "cfg";
72+
ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000>, /* io */
73+
<0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000>; /* mem */
74+
dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000>,
75+
<0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
76+
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
77+
interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1>,
78+
<0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1>,
79+
<0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1>,
80+
<0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>;
81+
dma-coherent;
82+
clocks = <&pcie0clk 0>;
83+
};
84+
};

Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)