Skip to content

Commit 57151b5

Browse files
committed
Merge tag 'pci-v5.13-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull pci updates from Bjorn Helgaas: "Enumeration: - Release OF node when pci_scan_device() fails (Dmitry Baryshkov) - Add pci_disable_parity() (Bjorn Helgaas) - Disable Mellanox Tavor parity reporting (Heiner Kallweit) - Disable N2100 r8169 parity reporting (Heiner Kallweit) - Fix RCiEP device to RCEC association (Qiuxu Zhuo) - Convert sysfs "config", "rom", "reset", "label", "index", "acpi_index" to static attributes to help fix races in device enumeration (Krzysztof Wilczyński) - Convert sysfs "vpd" to static attribute (Heiner Kallweit, Krzysztof Wilczyński) - Use sysfs_emit() in "show" functions (Krzysztof Wilczyński) - Remove unused alloc_pci_root_info() return value (Krzysztof Wilczyński) PCI device hotplug: - Fix acpiphp reference count leak (Feilong Lin) Power management: - Fix acpi_pci_set_power_state() debug message (Rafael J. Wysocki) - Fix runtime PM imbalance (Dinghao Liu) Virtualization: - Increase delay after FLR to work around Intel DC P4510 NVMe erratum (Raphael Norwitz) MSI: - Convert rcar, tegra, xilinx to MSI domains (Marc Zyngier) - For rcar, xilinx, use controller address as MSI doorbell (Marc Zyngier) - Remove unused hv msi_controller struct (Marc Zyngier) - Remove unused PCI core msi_controller support (Marc Zyngier) - Remove struct msi_controller altogether (Marc Zyngier) - Remove unused default_teardown_msi_irqs() (Marc Zyngier) - Let host bridges declare their reliance on MSI domains (Marc Zyngier) - Make pci_host_common_probe() declare its reliance on MSI domains (Marc Zyngier) - Advertise mediatek lack of built-in MSI handling (Thomas Gleixner) - Document ways of ending up with NO_MSI (Marc Zyngier) - Refactor HT advertising of NO_MSI flag (Marc Zyngier) VPD: - Remove obsolete Broadcom NIC VPD length-limiting quirk (Heiner Kallweit) - Remove sysfs VPD size checking dead code (Heiner Kallweit) - Convert VPF sysfs file to static attribute (Heiner Kallweit) - Remove unnecessary pci_set_vpd_size() (Heiner Kallweit) - Tone down "missing VPD" message (Heiner Kallweit) Endpoint framework: - Fix NULL pointer dereference when epc_features not implemented (Shradha Todi) - Add missing destroy_workqueue() in endpoint test (Yang Yingliang) Amazon Annapurna Labs PCIe controller driver: - Fix compile testing without CONFIG_PCI_ECAM (Arnd Bergmann) - Fix "no symbols" warnings when compile testing with CONFIG_TRIM_UNUSED_KSYMS (Arnd Bergmann) APM X-Gene PCIe controller driver: - Fix cfg resource mapping regression (Dejin Zheng) Broadcom iProc PCIe controller driver: - Return zero for success of iproc_msi_irq_domain_alloc() (Pali Rohár) Broadcom STB PCIe controller driver: - Add reset_control_rearm() stub for !CONFIG_RESET_CONTROLLER (Jim Quinlan) - Fix use of BCM7216 reset controller (Jim Quinlan) - Use reset/rearm for Broadcom STB pulse reset instead of deassert/assert (Jim Quinlan) - Fix brcm_pcie_probe() error return for unsupported revision (Wei Yongjun) Cavium ThunderX PCIe controller driver: - Fix compile testing (Arnd Bergmann) - Fix "no symbols" warnings when compile testing with CONFIG_TRIM_UNUSED_KSYMS (Arnd Bergmann) Freescale Layerscape PCIe controller driver: - Fix ls_pcie_ep_probe() syntax error (comma for semicolon) (Krzysztof Wilczyński) - Remove layerscape-gen4 dependencies on OF and ARM64, add dependency on ARCH_LAYERSCAPE (Geert Uytterhoeven) HiSilicon HIP PCIe controller driver: - Remove obsolete HiSilicon PCIe DT description (Dongdong Liu) Intel Gateway PCIe controller driver: - Remove unused pcie_app_rd() (Jiapeng Chong) Intel VMD host bridge driver: - Program IRTE with Requester ID of VMD endpoint, not child device (Jon Derrick) - Disable VMD MSI-X remapping when possible so children can use more MSI-X vectors (Jon Derrick) MediaTek PCIe controller driver: - Configure FC and FTS for functions other than 0 (Ryder Lee) - Add YAML schema for MediaTek (Jianjun Wang) - Export pci_pio_to_address() for module use (Jianjun Wang) - Add MediaTek MT8192 PCIe controller driver (Jianjun Wang) - Add MediaTek MT8192 INTx support (Jianjun Wang) - Add MediaTek MT8192 MSI support (Jianjun Wang) - Add MediaTek MT8192 system power management support (Jianjun Wang) - Add missing MODULE_DEVICE_TABLE (Qiheng Lin) Microchip PolarFlare PCIe controller driver: - Make several symbols static (Wei Yongjun) NVIDIA Tegra PCIe controller driver: - Add MCFG quirks for Tegra194 ECAM errata (Vidya Sagar) - Make several symbols const (Rikard Falkeborn) - Fix Kconfig host/endpoint typo (Wesley Sheng) SiFive FU740 PCIe controller driver: - Add pcie_aux clock to prci driver (Greentime Hu) - Use reset-simple in prci driver for PCIe (Greentime Hu) - Add SiFive FU740 PCIe host controller driver and DT binding (Paul Walmsley, Greentime Hu) Synopsys DesignWare PCIe controller driver: - Move MSI Receiver init to dw_pcie_host_init() so it is re-initialized along with the RC in resume (Jisheng Zhang) - Move iATU detection earlier to fix regression (Hou Zhiqiang) TI J721E PCIe driver: - Add DT binding and TI j721e support for refclk to PCIe connector (Kishon Vijay Abraham I) - Add host mode and endpoint mode DT bindings for TI AM64 SoC (Kishon Vijay Abraham I) TI Keystone PCIe controller driver: - Use generic config accessors for TI AM65x (K3) to fix regression (Kishon Vijay Abraham I) Xilinx NWL PCIe controller driver: - Add support for coherent PCIe DMA traffic using CCI (Bharat Kumar Gogada) - Add optional "dma-coherent" DT property (Bharat Kumar Gogada) Miscellaneous: - Fix kernel-doc warnings (Krzysztof Wilczyński) - Remove unused MicroGate SyncLink device IDs (Jiri Slaby) - Remove redundant dev_err() for devm_ioremap_resource() failure (Chen Hui) - Remove redundant initialization (Colin Ian King) - Drop redundant dev_err() for platform_get_irq() errors (Krzysztof Wilczyński)" * tag 'pci-v5.13-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (98 commits) riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC PCI: fu740: Add SiFive FU740 PCIe host controller driver dt-bindings: PCI: Add SiFive FU740 PCIe host controller MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver clk: sifive: Use reset-simple in prci driver for PCIe driver clk: sifive: Add pcie_aux clock in prci driver for PCIe driver PCI: brcmstb: Use reset/rearm instead of deassert/assert ata: ahci_brcm: Fix use of BCM7216 reset controller reset: add missing empty function reset_control_rearm() PCI: Allow VPD access for QLogic ISP2722 PCI/VPD: Add helper pci_get_func0_dev() PCI/VPD: Remove pci_vpd_find_tag() SRDT handling PCI/VPD: Remove pci_vpd_find_tag() 'offset' argument PCI/VPD: Change pci_vpd_init() return type to void PCI/VPD: Make missing VPD message less alarming PCI/VPD: Remove pci_set_vpd_size() x86/PCI: Remove unused alloc_pci_root_info() return value MAINTAINERS: Add Jianjun Wang as MediaTek PCI co-maintainer PCI: mediatek-gen3: Add system PM support PCI: mediatek-gen3: Add MSI support ...
2 parents 7b9df26 + 882862a commit 57151b5

Some content is hidden

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

88 files changed

+2930
-1269
lines changed

Documentation/devicetree/bindings/pci/hisilicon-pcie.txt

Lines changed: 0 additions & 43 deletions
This file was deleted.
Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/mediatek-pcie-gen3.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Gen3 PCIe controller on MediaTek SoCs
8+
9+
maintainers:
10+
- Jianjun Wang <[email protected]>
11+
12+
description: |+
13+
PCIe Gen3 MAC controller for MediaTek SoCs, it supports Gen3 speed
14+
and compatible with Gen2, Gen1 speed.
15+
16+
This PCIe controller supports up to 256 MSI vectors, the MSI hardware
17+
block diagram is as follows:
18+
19+
+-----+
20+
| GIC |
21+
+-----+
22+
^
23+
|
24+
port->irq
25+
|
26+
+-+-+-+-+-+-+-+-+
27+
|0|1|2|3|4|5|6|7| (PCIe intc)
28+
+-+-+-+-+-+-+-+-+
29+
^ ^ ^
30+
| | ... |
31+
+-------+ +------+ +-----------+
32+
| | |
33+
+-+-+---+--+--+ +-+-+---+--+--+ +-+-+---+--+--+
34+
|0|1|...|30|31| |0|1|...|30|31| |0|1|...|30|31| (MSI sets)
35+
+-+-+---+--+--+ +-+-+---+--+--+ +-+-+---+--+--+
36+
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
37+
| | | | | | | | | | | | (MSI vectors)
38+
| | | | | | | | | | | |
39+
40+
(MSI SET0) (MSI SET1) ... (MSI SET7)
41+
42+
With 256 MSI vectors supported, the MSI vectors are composed of 8 sets,
43+
each set has its own address for MSI message, and supports 32 MSI vectors
44+
to generate interrupt.
45+
46+
allOf:
47+
- $ref: /schemas/pci/pci-bus.yaml#
48+
49+
properties:
50+
compatible:
51+
const: mediatek,mt8192-pcie
52+
53+
reg:
54+
maxItems: 1
55+
56+
reg-names:
57+
items:
58+
- const: pcie-mac
59+
60+
interrupts:
61+
maxItems: 1
62+
63+
ranges:
64+
minItems: 1
65+
maxItems: 8
66+
67+
resets:
68+
minItems: 1
69+
maxItems: 2
70+
71+
reset-names:
72+
minItems: 1
73+
maxItems: 2
74+
items:
75+
- const: phy
76+
- const: mac
77+
78+
clocks:
79+
maxItems: 6
80+
81+
clock-names:
82+
items:
83+
- const: pl_250m
84+
- const: tl_26m
85+
- const: tl_96m
86+
- const: tl_32k
87+
- const: peri_26m
88+
- const: top_133m
89+
90+
assigned-clocks:
91+
maxItems: 1
92+
93+
assigned-clock-parents:
94+
maxItems: 1
95+
96+
phys:
97+
maxItems: 1
98+
99+
'#interrupt-cells':
100+
const: 1
101+
102+
interrupt-controller:
103+
description: Interrupt controller node for handling legacy PCI interrupts.
104+
type: object
105+
properties:
106+
'#address-cells':
107+
const: 0
108+
'#interrupt-cells':
109+
const: 1
110+
interrupt-controller: true
111+
112+
required:
113+
- '#address-cells'
114+
- '#interrupt-cells'
115+
- interrupt-controller
116+
117+
additionalProperties: false
118+
119+
required:
120+
- compatible
121+
- reg
122+
- reg-names
123+
- interrupts
124+
- ranges
125+
- clocks
126+
- '#interrupt-cells'
127+
- interrupt-controller
128+
129+
unevaluatedProperties: false
130+
131+
examples:
132+
- |
133+
#include <dt-bindings/interrupt-controller/arm-gic.h>
134+
#include <dt-bindings/interrupt-controller/irq.h>
135+
136+
bus {
137+
#address-cells = <2>;
138+
#size-cells = <2>;
139+
140+
pcie: pcie@11230000 {
141+
compatible = "mediatek,mt8192-pcie";
142+
device_type = "pci";
143+
#address-cells = <3>;
144+
#size-cells = <2>;
145+
reg = <0x00 0x11230000 0x00 0x4000>;
146+
reg-names = "pcie-mac";
147+
interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>;
148+
bus-range = <0x00 0xff>;
149+
ranges = <0x82000000 0x00 0x12000000 0x00
150+
0x12000000 0x00 0x1000000>;
151+
clocks = <&infracfg 44>,
152+
<&infracfg 40>,
153+
<&infracfg 43>,
154+
<&infracfg 97>,
155+
<&infracfg 99>,
156+
<&infracfg 111>;
157+
clock-names = "pl_250m", "tl_26m", "tl_96m",
158+
"tl_32k", "peri_26m", "top_133m";
159+
assigned-clocks = <&topckgen 50>;
160+
assigned-clock-parents = <&topckgen 91>;
161+
162+
phys = <&pciephy>;
163+
phy-names = "pcie-phy";
164+
165+
resets = <&infracfg_rst 2>,
166+
<&infracfg_rst 3>;
167+
reset-names = "phy", "mac";
168+
169+
#interrupt-cells = <1>;
170+
interrupt-map-mask = <0 0 0 0x7>;
171+
interrupt-map = <0 0 0 1 &pcie_intc 0>,
172+
<0 0 0 2 &pcie_intc 1>,
173+
<0 0 0 3 &pcie_intc 2>,
174+
<0 0 0 4 &pcie_intc 3>;
175+
pcie_intc: interrupt-controller {
176+
#address-cells = <0>;
177+
#interrupt-cells = <1>;
178+
interrupt-controller;
179+
};
180+
};
181+
};
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/sifive,fu740-pcie.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: SiFive FU740 PCIe host controller
8+
9+
description: |+
10+
SiFive FU740 PCIe host controller is based on the Synopsys DesignWare
11+
PCI core. It shares common features with the PCIe DesignWare core and
12+
inherits common properties defined in
13+
Documentation/devicetree/bindings/pci/designware-pcie.txt.
14+
15+
maintainers:
16+
- Paul Walmsley <[email protected]>
17+
- Greentime Hu <[email protected]>
18+
19+
allOf:
20+
- $ref: /schemas/pci/pci-bus.yaml#
21+
22+
properties:
23+
compatible:
24+
const: sifive,fu740-pcie
25+
26+
reg:
27+
maxItems: 3
28+
29+
reg-names:
30+
items:
31+
- const: dbi
32+
- const: config
33+
- const: mgmt
34+
35+
num-lanes:
36+
const: 8
37+
38+
msi-parent: true
39+
40+
interrupt-names:
41+
items:
42+
- const: msi
43+
- const: inta
44+
- const: intb
45+
- const: intc
46+
- const: intd
47+
48+
resets:
49+
description: A phandle to the PCIe power up reset line.
50+
maxItems: 1
51+
52+
pwren-gpios:
53+
description: Should specify the GPIO for controlling the PCI bus device power on.
54+
maxItems: 1
55+
56+
reset-gpios:
57+
maxItems: 1
58+
59+
required:
60+
- dma-coherent
61+
- num-lanes
62+
- interrupts
63+
- interrupt-names
64+
- interrupt-parent
65+
- interrupt-map-mask
66+
- interrupt-map
67+
- clock-names
68+
- clocks
69+
- resets
70+
- pwren-gpios
71+
- reset-gpios
72+
73+
unevaluatedProperties: false
74+
75+
examples:
76+
- |
77+
bus {
78+
#address-cells = <2>;
79+
#size-cells = <2>;
80+
#include <dt-bindings/clock/sifive-fu740-prci.h>
81+
82+
pcie@e00000000 {
83+
compatible = "sifive,fu740-pcie";
84+
#address-cells = <3>;
85+
#size-cells = <2>;
86+
#interrupt-cells = <1>;
87+
reg = <0xe 0x00000000 0x0 0x80000000>,
88+
<0xd 0xf0000000 0x0 0x10000000>,
89+
<0x0 0x100d0000 0x0 0x1000>;
90+
reg-names = "dbi", "config", "mgmt";
91+
device_type = "pci";
92+
dma-coherent;
93+
bus-range = <0x0 0xff>;
94+
ranges = <0x81000000 0x0 0x60080000 0x0 0x60080000 0x0 0x10000>, /* I/O */
95+
<0x82000000 0x0 0x60090000 0x0 0x60090000 0x0 0xff70000>, /* mem */
96+
<0x82000000 0x0 0x70000000 0x0 0x70000000 0x0 0x1000000>, /* mem */
97+
<0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>; /* mem prefetchable */
98+
num-lanes = <0x8>;
99+
interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>;
100+
interrupt-names = "msi", "inta", "intb", "intc", "intd";
101+
interrupt-parent = <&plic0>;
102+
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
103+
interrupt-map = <0x0 0x0 0x0 0x1 &plic0 57>,
104+
<0x0 0x0 0x0 0x2 &plic0 58>,
105+
<0x0 0x0 0x0 0x3 &plic0 59>,
106+
<0x0 0x0 0x0 0x4 &plic0 60>;
107+
clock-names = "pcie_aux";
108+
clocks = <&prci PRCI_CLK_PCIE_AUX>;
109+
resets = <&prci 4>;
110+
pwren-gpios = <&gpio 5 0>;
111+
reset-gpios = <&gpio 8 0>;
112+
};
113+
};

Documentation/devicetree/bindings/pci/ti,j721e-pci-ep.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@ allOf:
1616
properties:
1717
compatible:
1818
oneOf:
19-
- description: PCIe EP controller in J7200
19+
- const: ti,j721e-pcie-ep
20+
- description: PCIe EP controller in AM64
2021
items:
21-
- const: ti,j7200-pcie-ep
22+
- const: ti,am64-pcie-ep
2223
- const: ti,j721e-pcie-ep
23-
- description: PCIe EP controller in J721E
24+
- description: PCIe EP controller in J7200
2425
items:
26+
- const: ti,j7200-pcie-ep
2527
- const: ti,j721e-pcie-ep
2628

2729
reg:
@@ -66,7 +68,6 @@ required:
6668
- power-domains
6769
- clocks
6870
- clock-names
69-
- dma-coherent
7071
- max-functions
7172
- phys
7273
- phy-names

0 commit comments

Comments
 (0)