Skip to content

Commit ac08b1c

Browse files
committed
Merge tag 'pci-v5.15-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI updates from Bjorn Helgaas: "Enumeration: - Convert controller drivers to generic_handle_domain_irq() (Marc Zyngier) - Simplify VPD (Vital Product Data) access and search (Heiner Kallweit) - Update bnx2, bnx2x, bnxt, cxgb4, cxlflash, sfc, tg3 drivers to use simplified VPD interfaces (Heiner Kallweit) - Run Max Payload Size quirks before configuring MPS; work around ASMedia ASM1062 SATA MPS issue (Marek Behún) Resource management: - Refactor pci_ioremap_bar() and pci_ioremap_wc_bar() (Krzysztof Wilczyński) - Optimize pci_resource_len() to reduce kernel size (Zhen Lei) PCI device hotplug: - Fix a double unmap in ibmphp (Vishal Aslot) PCIe port driver: - Enable Bandwidth Notification only if port supports it (Stuart Hayes) Sysfs/proc/syscalls: - Add schedule point in proc_bus_pci_read() (Krzysztof Wilczyński) - Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure (Krzysztof Wilczyński) - Return "int" from pciconfig_read() syscall (Krzysztof Wilczyński) Virtualization: - Extend "pci=noats" to also turn on Translation Blocking to protect against some DMA attacks (Alex Williamson) - Add sysfs mechanism to control the type of reset used between device assignments to VMs (Amey Narkhede) - Add support for ACPI _RST reset method (Shanker Donthineni) - Add ACS quirks for Cavium multi-function devices (George Cherian) - Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms (Wasim Khan) - Allow HiSilicon AMBA devices that appear as fake PCI devices to use PASID and SVA (Zhangfei Gao) Endpoint framework: - Add support for SR-IOV Endpoint devices (Kishon Vijay Abraham I) - Zero-initialize endpoint test tool parameters so we don't use random parameters (Shunyong Yang) APM X-Gene PCIe controller driver: - Remove redundant dev_err() call in xgene_msi_probe() (ErKun Yang) Broadcom iProc PCIe controller driver: - Don't fail devm_pci_alloc_host_bridge() on missing 'ranges' because it's optional on BCMA devices (Rob Herring) - Fix BCMA probe resource handling (Rob Herring) Cadence PCIe driver: - Work around J7200 Link training electrical issue by increasing delays in LTSSM (Nadeem Athani) Intel IXP4xx PCI controller driver: - Depend on ARCH_IXP4XX to avoid useless config questions (Geert Uytterhoeven) Intel Keembay PCIe controller driver: - Add Intel Keem Bay PCIe controller (Srikanth Thokala) Marvell Aardvark PCIe controller driver: - Work around config space completion handling issues (Evan Wang) - Increase timeout for config access completions (Pali Rohár) - Emulate CRS Software Visibility bit (Pali Rohár) - Configure resources from DT 'ranges' property to fix I/O space access (Pali Rohár) - Serialize INTx mask/unmask (Pali Rohár) MediaTek PCIe controller driver: - Add MT7629 support in DT (Chuanjia Liu) - Fix an MSI issue (Chuanjia Liu) - Get syscon regmap ("mediatek,generic-pciecfg"), IRQ number ("pci_irq"), PCI domain ("linux,pci-domain") from DT properties if present (Chuanjia Liu) Microsoft Hyper-V host bridge driver: - Add ARM64 support (Boqun Feng) - Support "Create Interrupt v3" message (Sunil Muthuswamy) NVIDIA Tegra PCIe controller driver: - Use seq_puts(), move err_msg from stack to static, fix OF node leak (Christophe JAILLET) NVIDIA Tegra194 PCIe driver: - Disable suspend when in Endpoint mode (Om Prakash Singh) - Fix MSI-X address programming error (Om Prakash Singh) - Disable interrupts during suspend to avoid spurious AER link down (Om Prakash Singh) Renesas R-Car PCIe controller driver: - Work around hardware issue that prevents Link L1->L0 transition (Marek Vasut) - Fix runtime PM refcount leak (Dinghao Liu) Rockchip DesignWare PCIe controller driver: - Add Rockchip RK356X host controller driver (Simon Xue) TI J721E PCIe driver: - Add support for J7200 and AM64 (Kishon Vijay Abraham I) Toshiba Visconti PCIe controller driver: - Add Toshiba Visconti PCIe host controller driver (Nobuhiro Iwamatsu) Xilinx NWL PCIe controller driver: - Enable PCIe reference clock via CCF (Hyun Kwon) Miscellaneous: - Convert sta2x11 from 'pci_' to 'dma_' API (Christophe JAILLET) - Fix pci_dev_str_match_path() alloc while atomic bug (used for kernel parameters that specify devices) (Dan Carpenter) - Remove pointless Precision Time Management warning when PTM is present but not enabled (Jakub Kicinski) - Remove surplus "break" statements (Krzysztof Wilczyński)" * tag 'pci-v5.15-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (132 commits) PCI: ibmphp: Fix double unmap of io_mem x86/PCI: sta2x11: switch from 'pci_' to 'dma_' API PCI/VPD: Use unaligned access helpers PCI/VPD: Clean up public VPD defines and inline functions cxgb4: Use pci_vpd_find_id_string() to find VPD ID string PCI/VPD: Add pci_vpd_find_id_string() PCI/VPD: Include post-processing in pci_vpd_find_tag() PCI/VPD: Stop exporting pci_vpd_find_info_keyword() PCI/VPD: Stop exporting pci_vpd_find_tag() PCI: Set dma-can-stall for HiSilicon chips PCI: rockchip-dwc: Add Rockchip RK356X host controller driver PCI: dwc: Remove surplus break statement after return PCI: artpec6: Remove local code block from switch statement PCI: artpec6: Remove surplus break statement after return MAINTAINERS: Add entries for Toshiba Visconti PCIe controller PCI: visconti: Add Toshiba Visconti PCIe host controller driver PCI/portdrv: Enable Bandwidth Notification only if port supports it PCI: Allow PASID on fake PCIe devices without TLP prefixes PCI: mediatek: Use PCI domain to handle ports detection PCI: mediatek: Add new method to get irq number ...
2 parents b339ec9 + 742a4c4 commit ac08b1c

File tree

100 files changed

+3860
-1555
lines changed

Some content is hidden

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

100 files changed

+3860
-1555
lines changed

Documentation/ABI/testing/sysfs-bus-pci

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,23 @@ Description:
121121
child buses, and re-discover devices removed earlier
122122
from this part of the device tree.
123123

124+
What: /sys/bus/pci/devices/.../reset_method
125+
Date: August 2021
126+
Contact: Amey Narkhede <[email protected]>
127+
Description:
128+
Some devices allow an individual function to be reset
129+
without affecting other functions in the same slot.
130+
131+
For devices that have this support, a file named
132+
reset_method is present in sysfs. Reading this file
133+
gives names of the supported and enabled reset methods and
134+
their ordering. Writing a space-separated list of names of
135+
reset methods sets the reset methods and ordering to be
136+
used when resetting the device. Writing an empty string
137+
disables the ability to reset the device. Writing
138+
"default" enables all supported reset methods in the
139+
default ordering.
140+
124141
What: /sys/bus/pci/devices/.../reset
125142
Date: July 2009
126143
Contact: Michael S. Tsirkin <[email protected]>

Documentation/PCI/endpoint/pci-endpoint-cfs.rst

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ entries corresponding to EPF driver will be created by the EPF core.
4343
.. <EPF Driver1>/
4444
... <EPF Device 11>/
4545
... <EPF Device 21>/
46+
... <EPF Device 31>/
4647
.. <EPF Driver2>/
4748
... <EPF Device 12>/
4849
... <EPF Device 22>/
@@ -68,6 +69,7 @@ created)
6869
... subsys_vendor_id
6970
... subsys_id
7071
... interrupt_pin
72+
... <Symlink EPF Device 31>/
7173
... primary/
7274
... <Symlink EPC Device1>/
7375
... secondary/
@@ -79,6 +81,13 @@ interface should be added in 'primary' directory and symlink of endpoint
7981
controller connected to secondary interface should be added in 'secondary'
8082
directory.
8183

84+
The <EPF Device> directory can have a list of symbolic links
85+
(<Symlink EPF Device 31>) to other <EPF Device>. These symbolic links should
86+
be created by the user to represent the virtual functions that are bound to
87+
the physical function. In the above directory structure <EPF Device 11> is a
88+
physical function and <EPF Device 31> is a virtual function. An EPF device once
89+
it's linked to another EPF device, cannot be linked to a EPC device.
90+
8291
EPC Device
8392
==========
8493

@@ -98,7 +107,8 @@ entries corresponding to EPC device will be created by the EPC core.
98107

99108
The <EPC Device> directory will have a list of symbolic links to
100109
<EPF Device>. These symbolic links should be created by the user to
101-
represent the functions present in the endpoint device.
110+
represent the functions present in the endpoint device. Only <EPF Device>
111+
that represents a physical function can be linked to a EPC device.
102112

103113
The <EPC Device> directory will also have a *start* field. Once
104114
"1" is written to this field, the endpoint device will be ready to
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: "http://devicetree.org/schemas/pci/intel,keembay-pcie-ep.yaml#"
5+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+
title: Intel Keem Bay PCIe controller Endpoint mode
8+
9+
maintainers:
10+
- Wan Ahmad Zainie <[email protected]>
11+
- Srikanth Thokala <[email protected]>
12+
13+
properties:
14+
compatible:
15+
const: intel,keembay-pcie-ep
16+
17+
reg:
18+
maxItems: 5
19+
20+
reg-names:
21+
items:
22+
- const: dbi
23+
- const: dbi2
24+
- const: atu
25+
- const: addr_space
26+
- const: apb
27+
28+
interrupts:
29+
maxItems: 4
30+
31+
interrupt-names:
32+
items:
33+
- const: pcie
34+
- const: pcie_ev
35+
- const: pcie_err
36+
- const: pcie_mem_access
37+
38+
num-lanes:
39+
description: Number of lanes to use.
40+
enum: [ 1, 2 ]
41+
42+
required:
43+
- compatible
44+
- reg
45+
- reg-names
46+
- interrupts
47+
- interrupt-names
48+
49+
additionalProperties: false
50+
51+
examples:
52+
- |
53+
#include <dt-bindings/interrupt-controller/arm-gic.h>
54+
#include <dt-bindings/interrupt-controller/irq.h>
55+
pcie-ep@37000000 {
56+
compatible = "intel,keembay-pcie-ep";
57+
reg = <0x37000000 0x00001000>,
58+
<0x37100000 0x00001000>,
59+
<0x37300000 0x00001000>,
60+
<0x36000000 0x01000000>,
61+
<0x37800000 0x00000200>;
62+
reg-names = "dbi", "dbi2", "atu", "addr_space", "apb";
63+
interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
64+
<GIC_SPI 108 IRQ_TYPE_EDGE_RISING>,
65+
<GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
66+
<GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
67+
interrupt-names = "pcie", "pcie_ev", "pcie_err", "pcie_mem_access";
68+
num-lanes = <2>;
69+
};
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: "http://devicetree.org/schemas/pci/intel,keembay-pcie.yaml#"
5+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+
title: Intel Keem Bay PCIe controller Root Complex mode
8+
9+
maintainers:
10+
- Wan Ahmad Zainie <[email protected]>
11+
- Srikanth Thokala <[email protected]>
12+
13+
allOf:
14+
- $ref: /schemas/pci/pci-bus.yaml#
15+
16+
properties:
17+
compatible:
18+
const: intel,keembay-pcie
19+
20+
ranges:
21+
maxItems: 1
22+
23+
reset-gpios:
24+
maxItems: 1
25+
26+
reg:
27+
maxItems: 4
28+
29+
reg-names:
30+
items:
31+
- const: dbi
32+
- const: atu
33+
- const: config
34+
- const: apb
35+
36+
clocks:
37+
maxItems: 2
38+
39+
clock-names:
40+
items:
41+
- const: master
42+
- const: aux
43+
44+
interrupts:
45+
maxItems: 3
46+
47+
interrupt-names:
48+
items:
49+
- const: pcie
50+
- const: pcie_ev
51+
- const: pcie_err
52+
53+
num-lanes:
54+
description: Number of lanes to use.
55+
enum: [ 1, 2 ]
56+
57+
required:
58+
- compatible
59+
- reg
60+
- reg-names
61+
- ranges
62+
- clocks
63+
- clock-names
64+
- interrupts
65+
- interrupt-names
66+
- reset-gpios
67+
68+
unevaluatedProperties: false
69+
70+
examples:
71+
- |
72+
#include <dt-bindings/interrupt-controller/arm-gic.h>
73+
#include <dt-bindings/interrupt-controller/irq.h>
74+
#include <dt-bindings/gpio/gpio.h>
75+
#define KEEM_BAY_A53_PCIE
76+
#define KEEM_BAY_A53_AUX_PCIE
77+
pcie@37000000 {
78+
compatible = "intel,keembay-pcie";
79+
reg = <0x37000000 0x00001000>,
80+
<0x37300000 0x00001000>,
81+
<0x36e00000 0x00200000>,
82+
<0x37800000 0x00000200>;
83+
reg-names = "dbi", "atu", "config", "apb";
84+
#address-cells = <3>;
85+
#size-cells = <2>;
86+
device_type = "pci";
87+
ranges = <0x02000000 0 0x36000000 0x36000000 0 0x00e00000>;
88+
interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
89+
<GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
90+
<GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
91+
interrupt-names = "pcie", "pcie_ev", "pcie_err";
92+
clocks = <&scmi_clk KEEM_BAY_A53_PCIE>,
93+
<&scmi_clk KEEM_BAY_A53_AUX_PCIE>;
94+
clock-names = "master", "aux";
95+
reset-gpios = <&pca2 9 GPIO_ACTIVE_LOW>;
96+
num-lanes = <2>;
97+
};
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/mediatek-pcie-cfg.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: MediaTek PCIECFG controller
8+
9+
maintainers:
10+
- Chuanjia Liu <[email protected]>
11+
- Jianjun Wang <[email protected]>
12+
13+
description: |
14+
The MediaTek PCIECFG controller controls some feature about
15+
LTSSM, ASPM and so on.
16+
17+
properties:
18+
compatible:
19+
items:
20+
- enum:
21+
- mediatek,generic-pciecfg
22+
- const: syscon
23+
24+
reg:
25+
maxItems: 1
26+
27+
required:
28+
- compatible
29+
- reg
30+
31+
additionalProperties: false
32+
33+
examples:
34+
- |
35+
pciecfg: pciecfg@1a140000 {
36+
compatible = "mediatek,generic-pciecfg", "syscon";
37+
reg = <0x1a140000 0x1000>;
38+
};
39+
...

0 commit comments

Comments
 (0)