Skip to content

Commit 1c2b4a4

Browse files
committed
Merge tag 'pci-v7.0-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
Pull PCI updates from Bjorn Helgaas: "Enumeration: - Don't try to enable Extended Tags on VFs since that bit is Reserved and causes misleading log messages (Håkon Bugge) - Initialize Endpoint Read Completion Boundary to match Root Port, regardless of ACPI _HPX (Håkon Bugge) - Apply _HPX PCIe Setting Record only to AER configuration, and only when OS owns PCIe hotplug but not AER, to avoid clobbering Extended Tag and Relaxed Ordering settings (Håkon Bugge) Resource management: - Move CardBus code to setup-cardbus.c and only build it when CONFIG_CARDBUS is set (Ilpo Järvinen) - Fix bridge window alignment with optional resources, where additional alignment requirement was previously lost (Ilpo Järvinen) - Stop over-estimating bridge window size since they are now assigned without any gaps between them (Ilpo Järvinen) - Increase resource MAX_IORES_LEVEL to avoid /proc/iomem flattening for nested bridges and endpoints (Ilpo Järvinen) - Add pbus_mem_size_optional() to handle sizes of optional resources (SR-IOV VF BARs, expansion ROMs, bridge windows) (Ilpo Järvinen) - Don't claim disabled bridge windows to avoid spurious claim failures (Ilpo Järvinen) Driver binding: - Fix device reference leak in pcie_port_remove_service() (Uwe Kleine-König) - Move pcie_port_bus_match() and pcie_port_bus_type to PCIe-specific portdrv.c (Uwe Kleine-König) - Convert portdrv to use pcie_port_bus_type.probe() and .remove() callbacks so .probe() and .remove() can eventually be removed from struct device_driver (Uwe Kleine-König) Error handling: - Clear stale errors on reporting agents upon probe so they don't look like recent errors (Lukas Wunner) - Add generic RAS tracepoint for hotplug events (Shuai Xue) - Add RAS tracepoint for link speed changes (Shuai Xue) Power management: - Avoid redundant delay on transition from D3hot to D3cold if the device was already in D3hot (Brian Norris) - Prevent runtime suspend until devices are fully initialized to avoid saving incompletely configured device state (Brian Norris) Power control: - Add power_on/off callbacks with generic signature to pwrseq, tc9563, and slot drivers so they can be used by pwrctrl core (Manivannan Sadhasivam) - Add PCIe M.2 connector support to the slot pwrctrl driver (Manivannan Sadhasivam) - Switch to pwrctrl interfaces to create, destroy, and power on/off devices, calling them from host controller drivers instead of the PCI core (Manivannan Sadhasivam) - Drop qcom .assert_perst() callbacks since this is now done by the controller driver instead of the pwrctrl driver (Manivannan Sadhasivam) Virtualization: - Remove an incorrect unlock in pci_slot_trylock() error handling (Jinhui Guo) - Lock the bridge device for slot reset (Keith Busch) - Enable ACS after IOMMU configuration on OF platforms so ACS is enabled an all devices; previously the first device enumerated (typically a Root Port) didn't have ACS enabled (Manivannan Sadhasivam) - Disable ACS Source Validation for IDT 0x80b5 and 0x8090 switches to work around hardware erratum; previously ACS SV was only temporarily disabled, which worked for enumeration but not after reset (Manivannan Sadhasivam) Peer-to-peer DMA: - Release per-CPU pgmap ref when vm_insert_page() fails to avoid hang when removing the PCI device (Hou Tao) - Remove incorrect p2pmem_alloc_mmap() warning about page refcount (Hou Tao) Endpoint framework: - Add configfs sub-groups synchronously to avoid NULL pointer dereference when racing with removal (Liu Song) - Fix swapped parameters in pci_{primary/secondary}_epc_epf_unlink() functions (Manikanta Maddireddy) ASPEED PCIe controller driver: - Add ASPEED Root Complex DT binding and driver (Jacky Chou) Freescale i.MX6 PCIe controller driver: - Add DT binding and driver support for an optional external refclock in addition to the refclock from the internal PLL (Richard Zhu) - Fix CLKREQ# control so host asserts it during enumeration and Endpoints can use it afterwards to exit the L1.2 link state (Richard Zhu) NVIDIA Tegra PCIe controller driver: - Export irq_domain_free_irqs() to allow PCI/MSI drivers that tear down MSI domains to be built as modules (Aaron Kling) - Allow pci-tegra to be built as a module (Aaron Kling) NVIDIA Tegra194 PCIe controller driver: - Relax Kconfig so tegra194 can be built for platforms beyond Tegra194 (Vidya Sagar) Qualcomm PCIe controller driver: - Merge SC8180x DT binding into SM8150 (Krzysztof Kozlowski) - Move SDX55, SDM845, QCS404, IPQ5018, IPQ6018, IPQ8074 Gen3, IPQ8074, IPQ4019, IPQ9574, APQ8064, MSM8996, APQ8084 to dedicated schema (Krzysztof Kozlowski) - Add DT binding and driver support for SA8255p Endpoint being configured by firmware (Mrinmay Sarkar) - Parse PERST# from all PCIe bridge nodes for future platforms that will have PERST# in Switch Downstream Ports as well as in Root Ports (Manivannan Sadhasivam) Renesas RZ/G3S PCIe controller driver: - Use pci_generic_config_write() since the writability provided by the custom wrapper is unnecessary (Claudiu Beznea) SOPHGO PCIe controller driver: - Disable ASPM L0s and L1 on Sophgo 2044 PCIe Root Ports (Inochi Amaoto) Synopsys DesignWare PCIe controller driver: - Extend PCI_FIND_NEXT_CAP() and PCI_FIND_NEXT_EXT_CAP() to return a pointer to the preceding Capability, to allow removal of Capabilities that are advertised but not fully implemented (Qiang Yu) - Remove MSI and MSI-X Capabilities in platforms that can't support them, so the PCI core automatically falls back to INTx (Qiang Yu) - Add ASPM L1.1 and L1.2 Substates context to debugfs ltssm_status for drivers that support this (Shawn Lin) - Skip PME_Turn_Off broadcast and L2/L3 transition during suspend if link is not up to avoid an unnecessary timeout (Manivannan Sadhasivam) - Revert dw-rockchip, qcom, and DWC core changes that used link-up IRQs to trigger enumeration instead of waiting for link to be up because the PCI core doesn't allocate bus number space for hierarchies that might be attached (Niklas Cassel) - Make endpoint iATU entry for MSI permanent instead of programming it dynamically, which is slow and racy with respect to other concurrent traffic, e.g., eDMA (Koichiro Den) - Use iMSI-RX MSI target address when possible to fix endpoints using 32-bit MSI (Shawn Lin) - Allow DWC host controller driver probe to continue if device is not found or found but inactive; only fail when there's an error with the link (Manivannan Sadhasivam) - For controllers like NXP i.MX6QP and i.MX7D, where LTSSM registers are not accessible after PME_Turn_Off, simply wait 10ms instead of polling for L2/L3 Ready (Richard Zhu) - Use multiple iATU entries to map large bridge windows and DMA ranges when necessary instead of failing (Samuel Holland) - Add EPC dynamic_inbound_mapping feature bit for Endpoint Controllers that can update BAR inbound address translation without requiring EPF driver to clear/reset the BAR first, and advertise it for DWC-based Endpoints (Koichiro Den) - Add EPC subrange_mapping feature bit for Endpoint Controllers that can map multiple independent inbound regions in a single BAR, implement subrange mapping, advertise it for DWC-based Endpoints, and add Endpoint selftests for it (Koichiro Den) - Make resizable BARs work for Endpoint multi-PF configurations; previously it only worked for PF 0 (Aksh Garg) - Fix Endpoint non-PF 0 support for BAR configuration, ATU mappings, and Address Match Mode (Aksh Garg) - Set up iATU when ECAM is enabled; previously IO and MEM outbound windows weren't programmed, and ECAM-related iATU entries weren't restored after suspend/resume, so config accesses failed (Krishna Chaitanya Chundru) Miscellaneous: - Use system_percpu_wq and WQ_PERCPU to explicitly request per-CPU work so WQ_UNBOUND can eventually be removed (Marco Crivellari)" * tag 'pci-v7.0-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (176 commits) PCI/bwctrl: Disable BW controller on Intel P45 using a quirk PCI: Disable ACS SV for IDT 0x8090 switch PCI: Disable ACS SV for IDT 0x80b5 switch PCI: Cache ACS Capabilities register PCI: Enable ACS after configuring IOMMU for OF platforms PCI: Add ACS quirk for Pericom PI7C9X2G404 switches [12d8:b404] PCI: Add ACS quirk for Qualcomm Hamoa & Glymur PCI: Use device_lock_assert() to verify device lock is held PCI: Use lockdep_assert_held(pci_bus_sem) to verify lock is held PCI: Fix pci_slot_lock () device locking PCI: Fix pci_slot_trylock() error handling PCI: Mark Nvidia GB10 to avoid bus reset PCI: Mark ASM1164 SATA controller to avoid bus reset PCI: host-generic: Avoid reporting incorrect 'missing reg property' error PCI/PME: Replace RMW of Root Status register with direct write PCI/AER: Clear stale errors on reporting agents upon probe PCI: Don't claim disabled bridge windows PCI: rzg3s-host: Fix device node reference leak in rzg3s_pcie_host_parse_port() PCI: dwc: Fix missing iATU setup when ECAM is enabled PCI: dwc: Clean up iATU index usage in dw_pcie_iatu_setup() ...
2 parents 61e6295 + dff645f commit 1c2b4a4

118 files changed

Lines changed: 6649 additions & 2512 deletions

File tree

Some content is hidden

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

Documentation/PCI/endpoint/pci-endpoint.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,30 @@ by the PCI endpoint function driver.
9595
Register space of the function driver is usually configured
9696
using this API.
9797

98+
Some endpoint controllers also support calling pci_epc_set_bar() again
99+
for the same BAR (without calling pci_epc_clear_bar()) to update inbound
100+
address translations after the host has programmed the BAR base address.
101+
Endpoint function drivers can check this capability via the
102+
dynamic_inbound_mapping EPC feature bit.
103+
104+
When pci_epf_bar.num_submap is non-zero, the endpoint function driver is
105+
requesting BAR subrange mapping using pci_epf_bar.submap. This requires
106+
the EPC to advertise support via the subrange_mapping EPC feature bit.
107+
108+
When an EPF driver wants to make use of the inbound subrange mapping
109+
feature, it requires that the BAR base address has been programmed by
110+
the host during enumeration. Thus, it needs to call pci_epc_set_bar()
111+
twice for the same BAR (requires dynamic_inbound_mapping): first with
112+
num_submap set to zero and configuring the BAR size, then after the PCIe
113+
link is up and the host enumerates the endpoint and programs the BAR
114+
base address, again with num_submap set to non-zero value.
115+
116+
Note that when making use of the inbound subrange mapping feature, the
117+
EPF driver must not call pci_epc_clear_bar() between the two
118+
pci_epc_set_bar() calls, because clearing the BAR can clear/disable the
119+
BAR register or BAR decode on the endpoint while the host still expects
120+
the assigned BAR address to remain valid.
121+
98122
* pci_epc_clear_bar()
99123

100124
The PCI endpoint function driver should use pci_epc_clear_bar() to reset

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,25 @@ device, the following commands can be used::
8484
# echo 32 > functions/pci_epf_test/func1/msi_interrupts
8585
# echo 2048 > functions/pci_epf_test/func1/msix_interrupts
8686

87+
By default, pci-epf-test uses the following BAR sizes::
88+
89+
# grep . functions/pci_epf_test/func1/pci_epf_test.0/bar?_size
90+
functions/pci_epf_test/func1/pci_epf_test.0/bar0_size:131072
91+
functions/pci_epf_test/func1/pci_epf_test.0/bar1_size:131072
92+
functions/pci_epf_test/func1/pci_epf_test.0/bar2_size:131072
93+
functions/pci_epf_test/func1/pci_epf_test.0/bar3_size:131072
94+
functions/pci_epf_test/func1/pci_epf_test.0/bar4_size:131072
95+
functions/pci_epf_test/func1/pci_epf_test.0/bar5_size:1048576
96+
97+
The user can override a default value using e.g.::
98+
# echo 1048576 > functions/pci_epf_test/func1/pci_epf_test.0/bar1_size
99+
100+
Overriding the default BAR sizes can only be done before binding the
101+
pci-epf-test device to a PCI endpoint controller driver.
102+
103+
Note: Some endpoint controllers might have fixed-size BARs or reserved BARs;
104+
for such controllers, the corresponding BAR size in configfs will be ignored.
105+
87106

88107
Binding pci-epf-test Device to EP Controller
89108
--------------------------------------------

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,14 @@ pci-epf-vntb device, the following commands can be used::
5252
# cd /sys/kernel/config/pci_ep/
5353
# mkdir functions/pci_epf_vntb/func1
5454

55-
The "mkdir func1" above creates the pci-epf-ntb function device that will
55+
The "mkdir func1" above creates the pci-epf-vntb function device that will
5656
be probed by pci_epf_vntb driver.
5757

5858
The PCI endpoint framework populates the directory with the following
5959
configurable fields::
6060

61-
# ls functions/pci_epf_ntb/func1
62-
baseclass_code deviceid msi_interrupts pci-epf-ntb.0
61+
# ls functions/pci_epf_vntb/func1
62+
baseclass_code deviceid msi_interrupts pci-epf-vntb.0
6363
progif_code secondary subsys_id vendorid
6464
cache_line_size interrupt_pin msix_interrupts primary
6565
revid subclass_code subsys_vendor_id
@@ -111,13 +111,13 @@ A sample configuration for virtual NTB driver for virtual PCI bus::
111111
# echo 0x080A > functions/pci_epf_vntb/func1/pci_epf_vntb.0/vntb_pid
112112
# echo 0x10 > functions/pci_epf_vntb/func1/pci_epf_vntb.0/vbus_number
113113

114-
Binding pci-epf-ntb Device to EP Controller
114+
Binding pci-epf-vntb Device to EP Controller
115115
--------------------------------------------
116116

117117
NTB function device should be attached to PCI endpoint controllers
118118
connected to the host.
119119

120-
# ln -s controllers/5f010000.pcie_ep functions/pci-epf-ntb/func1/primary
120+
# ln -s controllers/5f010000.pcie_ep functions/pci_epf_vntb/func1/primary
121121

122122
Once the above step is completed, the PCI endpoint controllers are ready to
123123
establish a link with the host.
@@ -139,7 +139,7 @@ lspci Output at Host side
139139
-------------------------
140140

141141
Note that the devices listed here correspond to the values populated in
142-
"Creating pci-epf-ntb Device" section above::
142+
"Creating pci-epf-vntb Device" section above::
143143

144144
# lspci
145145
00:00.0 PCI bridge: Freescale Semiconductor Inc Device 0000 (rev 01)
@@ -152,7 +152,7 @@ lspci Output at EP Side / Virtual PCI bus
152152
-----------------------------------------
153153

154154
Note that the devices listed here correspond to the values populated in
155-
"Creating pci-epf-ntb Device" section above::
155+
"Creating pci-epf-vntb Device" section above::
156156

157157
# lspci
158158
10:00.0 Unassigned class [ffff]: Dawicontrol Computersysteme GmbH Device 1234 (rev ff)

Documentation/PCI/msi-howto.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ function::
9898

9999
which allocates up to max_vecs interrupt vectors for a PCI device. It
100100
returns the number of vectors allocated or a negative error. If the device
101-
has a requirements for a minimum number of vectors the driver can pass a
101+
has a requirement for a minimum number of vectors the driver can pass a
102102
min_vecs argument set to this limit, and the PCI core will return -ENOSPC
103103
if it can't meet the minimum number of vectors.
104104

@@ -127,7 +127,7 @@ not be able to allocate as many vectors for MSI as it could for MSI-X. On
127127
some platforms, MSI interrupts must all be targeted at the same set of CPUs
128128
whereas MSI-X interrupts can all be targeted at different CPUs.
129129

130-
If a device supports neither MSI-X or MSI it will fall back to a single
130+
If a device supports neither MSI-X nor MSI it will fall back to a single
131131
legacy IRQ vector.
132132

133133
The typical usage of MSI or MSI-X interrupts is to allocate as many vectors
@@ -203,7 +203,7 @@ How to tell whether MSI/MSI-X is enabled on a device
203203
----------------------------------------------------
204204

205205
Using 'lspci -v' (as root) may show some devices with "MSI", "Message
206-
Signalled Interrupts" or "MSI-X" capabilities. Each of these capabilities
206+
Signaled Interrupts" or "MSI-X" capabilities. Each of these capabilities
207207
has an 'Enable' flag which is followed with either "+" (enabled)
208208
or "-" (disabled).
209209

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/pci/aspeed,ast2600-pcie.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: ASPEED PCIe Root Complex Controller
8+
9+
maintainers:
10+
- Jacky Chou <jacky_chou@aspeedtech.com>
11+
12+
description:
13+
The ASPEED PCIe Root Complex controller provides PCI Express Root Complex
14+
functionality for ASPEED SoCs, such as the AST2600 and AST2700.
15+
This controller enables connectivity to PCIe endpoint devices, supporting
16+
memory and I/O windows, MSI and INTx interrupts, and integration with
17+
the SoC's clock, reset, and pinctrl subsystems. On AST2600, the PCIe Root
18+
Port device number is always 8.
19+
20+
properties:
21+
compatible:
22+
enum:
23+
- aspeed,ast2600-pcie
24+
- aspeed,ast2700-pcie
25+
26+
reg:
27+
maxItems: 1
28+
29+
ranges:
30+
minItems: 2
31+
maxItems: 2
32+
33+
interrupts:
34+
maxItems: 1
35+
description: INTx and MSI interrupt
36+
37+
resets:
38+
items:
39+
- description: PCIe controller reset
40+
41+
reset-names:
42+
items:
43+
- const: h2x
44+
45+
aspeed,ahbc:
46+
$ref: /schemas/types.yaml#/definitions/phandle
47+
description:
48+
Phandle to the ASPEED AHB Controller (AHBC) syscon node.
49+
This reference is used by the PCIe controller to access
50+
system-level configuration registers related to the AHB bus.
51+
To enable AHB access for the PCIe controller.
52+
53+
aspeed,pciecfg:
54+
$ref: /schemas/types.yaml#/definitions/phandle
55+
description:
56+
Phandle to the ASPEED PCIe configuration syscon node.
57+
This reference allows the PCIe controller to access
58+
SoC-specific PCIe configuration registers. There are the others
59+
functions such PCIe RC and PCIe EP will use this common register
60+
to configure the SoC interfaces.
61+
62+
interrupt-controller: true
63+
64+
patternProperties:
65+
"^pcie@[0-9a-f]+,0$":
66+
type: object
67+
$ref: /schemas/pci/pci-pci-bridge.yaml#
68+
69+
properties:
70+
reg:
71+
maxItems: 1
72+
73+
resets:
74+
items:
75+
- description: PERST# signal
76+
77+
reset-names:
78+
items:
79+
- const: perst
80+
81+
clocks:
82+
maxItems: 1
83+
84+
phys:
85+
maxItems: 1
86+
87+
required:
88+
- resets
89+
- reset-names
90+
- clocks
91+
- phys
92+
- ranges
93+
94+
unevaluatedProperties: false
95+
96+
allOf:
97+
- $ref: /schemas/pci/pci-host-bridge.yaml#
98+
- $ref: /schemas/interrupt-controller/msi-controller.yaml#
99+
- if:
100+
properties:
101+
compatible:
102+
contains:
103+
const: aspeed,ast2600-pcie
104+
then:
105+
required:
106+
- aspeed,ahbc
107+
else:
108+
properties:
109+
aspeed,ahbc: false
110+
- if:
111+
properties:
112+
compatible:
113+
contains:
114+
const: aspeed,ast2700-pcie
115+
then:
116+
required:
117+
- aspeed,pciecfg
118+
else:
119+
properties:
120+
aspeed,pciecfg: false
121+
122+
required:
123+
- reg
124+
- interrupts
125+
- bus-range
126+
- ranges
127+
- resets
128+
- reset-names
129+
- msi-controller
130+
- interrupt-controller
131+
- interrupt-map-mask
132+
- interrupt-map
133+
134+
unevaluatedProperties: false
135+
136+
examples:
137+
- |
138+
#include <dt-bindings/interrupt-controller/arm-gic.h>
139+
#include <dt-bindings/clock/ast2600-clock.h>
140+
141+
pcie0: pcie@1e770000 {
142+
compatible = "aspeed,ast2600-pcie";
143+
device_type = "pci";
144+
reg = <0x1e770000 0x100>;
145+
#address-cells = <3>;
146+
#size-cells = <2>;
147+
interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
148+
bus-range = <0x00 0xff>;
149+
150+
ranges = <0x01000000 0x0 0x00018000 0x00018000 0x0 0x00008000
151+
0x02000000 0x0 0x60000000 0x60000000 0x0 0x20000000>;
152+
153+
resets = <&syscon ASPEED_RESET_H2X>;
154+
reset-names = "h2x";
155+
156+
#interrupt-cells = <1>;
157+
msi-controller;
158+
159+
aspeed,ahbc = <&ahbc>;
160+
161+
interrupt-controller;
162+
interrupt-map-mask = <0 0 0 7>;
163+
interrupt-map = <0 0 0 1 &pcie0 0>,
164+
<0 0 0 2 &pcie0 1>,
165+
<0 0 0 3 &pcie0 2>,
166+
<0 0 0 4 &pcie0 3>;
167+
168+
pcie@8,0 {
169+
compatible = "pciclass,0604";
170+
reg = <0x00004000 0 0 0 0>;
171+
#address-cells = <3>;
172+
#size-cells = <2>;
173+
device_type = "pci";
174+
resets = <&syscon ASPEED_RESET_PCIE_RC_O>;
175+
reset-names = "perst";
176+
clocks = <&syscon ASPEED_CLK_GATE_BCLK>;
177+
pinctrl-names = "default";
178+
pinctrl-0 = <&pinctrl_pcierc1_default>;
179+
phys = <&pcie_phy1>;
180+
ranges;
181+
};
182+
};

Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ properties:
4444

4545
clock-names:
4646
minItems: 3
47-
maxItems: 5
47+
maxItems: 6
4848

4949
interrupts:
5050
minItems: 1
@@ -212,14 +212,17 @@ allOf:
212212
then:
213213
properties:
214214
clocks:
215-
maxItems: 5
215+
minItems: 5
216+
maxItems: 6
216217
clock-names:
218+
minItems: 5
217219
items:
218220
- const: pcie
219221
- const: pcie_bus
220222
- const: pcie_phy
221223
- const: pcie_aux
222224
- const: ref
225+
- const: extref # Optional
223226

224227
unevaluatedProperties: false
225228

Documentation/devicetree/bindings/pci/loongson.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ properties:
3232
minItems: 1
3333
maxItems: 3
3434

35+
msi-parent: true
36+
3537
required:
3638
- compatible
3739
- reg

Documentation/devicetree/bindings/pci/mediatek-pcie-gen3.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ properties:
4848
oneOf:
4949
- items:
5050
- enum:
51+
- mediatek,mt7981-pcie
5152
- mediatek,mt7986-pcie
5253
- mediatek,mt8188-pcie
5354
- mediatek,mt8195-pcie

0 commit comments

Comments
 (0)