Skip to content

Commit de92aa7

Browse files
committed
Merge: Update kernel's PCI subsystem to v6.8
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/3946 ``` This series updates RHEL9's PCI subsystem with content from upstream v6.8 - Merge tag 'pci-v6.8-fixes-3' of git://git.kernel.org/pub/scm/../pci/pci https://lkml.org/lkml/2023/2/16/1393 commit 4a75714 Merge: ad645de 172c0cf 2 files changed, 23 insertions(+), 15 deletions(-) Merge tag 'pci-v6.8-fixes-2' of git://git.kernel.org/pub/scm/../pci/pci https://lkml.org/lkml/2023/2/9/617 commit 5ddfc24 Merge: 5ca243c 67057f4 1 file changed, 6 insertions(++), 4 deletions(-) Merge tag 'pci-v6.8-fixes-1' of git://git.kernel.org/pub/scm/../pci/pci https://lkml.org/lkml/2023/2/2/1312 commit b1dd6c2 Merge: 9c2f033 925bd5e 7 files changed, 102 insertions(+), 52 deletions(-) Merge tag 'pci-v6.8-changes' of git://git.kernel.org/pub/scm/../pci/pci https://lkml.org/lkml/2024/1/15/354 commit e1aa9df Merge: a3f4a07 7119ca3 88 files changed, 1519 insertions(+), 877 deletions(-) The vast majority of patches within the series back-ported cleanly. However, there were six back-ports where some changes were made to the originating upstream patch due to it either not being quite up to date with more recent changes, or subsequent changes were made during its merge commit. All such occurances are noted in the back-port's commit message with the same changes that occurred upstream being made in the back-port to keep things in sync. JIRA: https://issues.redhat.com/browse/RHEL-28627 Depends: N/A Signed-off-by: Myron Stowe <mstowe@redhat.com> ``` Approved-by: John W. Linville <linville@redhat.com> Approved-by: David Arcari <darcari@redhat.com> Approved-by: Mark Langsdorf <mlangsdo@redhat.com> Approved-by: Eric Chanudet <echanude@redhat.com> Merged-by: Lucas Zampieri <lzampier@redhat.com>
2 parents 6cb2683 + 32c80f9 commit de92aa7

File tree

91 files changed

+1813
-881
lines changed

Some content is hidden

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

91 files changed

+1813
-881
lines changed

Documentation/PCI/boot-interrupts.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Conditions
6161
==========
6262

6363
The use of threaded interrupts is the most likely condition to trigger
64-
this problem today. Threaded interrupts may not be reenabled after the IRQ
64+
this problem today. Threaded interrupts may not be re-enabled after the IRQ
6565
handler wakes. These "one shot" conditions mean that the threaded interrupt
6666
needs to keep the interrupt line masked until the threaded handler has run.
6767
Especially when dealing with high data rate interrupts, the thread needs to

Documentation/PCI/msi-howto.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ including a full 'lspci -v' so we can add the quirks to the kernel.
236236
Disabling MSIs below a bridge
237237
-----------------------------
238238

239-
Some PCI bridges are not able to route MSIs between busses properly.
239+
Some PCI bridges are not able to route MSIs between buses properly.
240240
In this case, MSIs must be disabled on all devices behind the bridge.
241241

242242
Some bridges allow you to enable MSIs by changing some bits in their

Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,24 @@ properties:
6262

6363
aspm-no-l0s: true
6464

65+
brcm,clkreq-mode:
66+
description: A string that determines the operating
67+
clkreq mode of the PCIe RC HW with respect to controlling the refclk
68+
signal. There are three different modes -- "safe", which drives the
69+
refclk signal unconditionally and will work for all devices but does
70+
not provide any power savings; "no-l1ss" -- which provides Clock
71+
Power Management, L0s, and L1, but cannot provide L1 substate (L1SS)
72+
power savings. If the downstream device connected to the RC is L1SS
73+
capable AND the OS enables L1SS, all PCIe traffic may abruptly halt,
74+
potentially hanging the system; "default" -- which provides L0s, L1,
75+
and L1SS, but not compliant to provide Clock Power Management;
76+
specifically, may not be able to meet the T_CLRon max timing of 400ns
77+
as specified in "Dynamic Clock Control", section 3.2.5.2.2 PCI
78+
Express Mini CEM 2.1 specification. This situation is atypical and
79+
should happen only with older devices.
80+
$ref: /schemas/types.yaml#/definitions/string
81+
enum: [ safe, no-l1ss, default ]
82+
6583
brcm,scb-sizes:
6684
description: u64 giving the 64bit PCIe memory
6785
viewport size of a memory controller. There may be up to

Documentation/devicetree/bindings/pci/qcom,pcie.yaml

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ properties:
4141
- qcom,pcie-sm8450-pcie0
4242
- qcom,pcie-sm8450-pcie1
4343
- qcom,pcie-sm8550
44+
- items:
45+
- enum:
46+
- qcom,pcie-sm8650
47+
- const: qcom,pcie-sm8550
4448
- items:
4549
- const: qcom,pcie-msm8998
4650
- const: qcom,pcie-msm8996
@@ -62,7 +66,8 @@ properties:
6266
maxItems: 8
6367

6468
iommu-map:
65-
maxItems: 2
69+
minItems: 1
70+
maxItems: 16
6671

6772
# Common definitions for clocks, clock-names and reset.
6873
# Platform constraints are described later.
@@ -88,7 +93,7 @@ properties:
8893
minItems: 1
8994
maxItems: 12
9095

91-
resets-names:
96+
reset-names:
9297
minItems: 1
9398
maxItems: 12
9499

@@ -478,6 +483,33 @@ allOf:
478483
items:
479484
- const: pci # PCIe core reset
480485

486+
- if:
487+
properties:
488+
compatible:
489+
contains:
490+
enum:
491+
- qcom,pcie-sc8180x
492+
then:
493+
properties:
494+
clocks:
495+
minItems: 8
496+
maxItems: 8
497+
clock-names:
498+
items:
499+
- const: pipe # PIPE clock
500+
- const: aux # Auxiliary clock
501+
- const: cfg # Configuration clock
502+
- const: bus_master # Master AXI clock
503+
- const: bus_slave # Slave AXI clock
504+
- const: slave_q2a # Slave Q2A clock
505+
- const: ref # REFERENCE clock
506+
- const: tbu # PCIe TBU clock
507+
resets:
508+
maxItems: 1
509+
reset-names:
510+
items:
511+
- const: pci # PCIe core reset
512+
481513
- if:
482514
properties:
483515
compatible:
@@ -526,8 +558,33 @@ allOf:
526558
compatible:
527559
contains:
528560
enum:
529-
- qcom,pcie-sc8180x
530561
- qcom,pcie-sm8150
562+
then:
563+
properties:
564+
clocks:
565+
minItems: 8
566+
maxItems: 8
567+
clock-names:
568+
items:
569+
- const: pipe # PIPE clock
570+
- const: aux # Auxiliary clock
571+
- const: cfg # Configuration clock
572+
- const: bus_master # Master AXI clock
573+
- const: bus_slave # Slave AXI clock
574+
- const: slave_q2a # Slave Q2A clock
575+
- const: tbu # PCIe TBU clock
576+
- const: ref # REFERENCE clock
577+
resets:
578+
maxItems: 1
579+
reset-names:
580+
items:
581+
- const: pci # PCIe core reset
582+
583+
- if:
584+
properties:
585+
compatible:
586+
contains:
587+
enum:
531588
- qcom,pcie-sm8250
532589
then:
533590
oneOf:

Documentation/devicetree/bindings/pci/rcar-pci-host.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,15 @@ properties:
6868
phy-names:
6969
const: pcie
7070

71+
vpcie1v5-supply:
72+
description: The 1.5v regulator to use for PCIe.
73+
74+
vpcie3v3-supply:
75+
description: The 3.3v regulator to use for PCIe.
76+
77+
vpcie12v-supply:
78+
description: The 12v regulator to use for PCIe.
79+
7180
required:
7281
- compatible
7382
- reg
@@ -121,5 +130,7 @@ examples:
121130
clock-names = "pcie", "pcie_bus";
122131
power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
123132
resets = <&cpg 319>;
133+
vpcie3v3-supply = <&pcie_3v3>;
134+
vpcie12v-supply = <&pcie_12v>;
124135
};
125136
};

Documentation/devicetree/bindings/pci/rockchip-dw-pcie.yaml

Lines changed: 90 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@ allOf:
2121

2222
properties:
2323
compatible:
24-
items:
24+
oneOf:
2525
- const: rockchip,rk3568-pcie
26+
- items:
27+
- enum:
28+
- rockchip,rk3588-pcie
29+
- const: rockchip,rk3568-pcie
2630

2731
reg:
2832
items:
@@ -37,20 +41,81 @@ properties:
3741
- const: config
3842

3943
clocks:
44+
minItems: 5
4045
items:
4146
- description: AHB clock for PCIe master
4247
- description: AHB clock for PCIe slave
4348
- description: AHB clock for PCIe dbi
4449
- description: APB clock for PCIe
4550
- description: Auxiliary clock for PCIe
51+
- description: PIPE clock
52+
- description: Reference clock for PCIe
4653

4754
clock-names:
55+
minItems: 5
4856
items:
4957
- const: aclk_mst
5058
- const: aclk_slv
5159
- const: aclk_dbi
5260
- const: pclk
5361
- const: aux
62+
- const: pipe
63+
- const: ref
64+
65+
interrupts:
66+
items:
67+
- description:
68+
Combined system interrupt, which is used to signal the following
69+
interrupts - phy_link_up, dll_link_up, link_req_rst_not, hp_pme,
70+
hp, hp_msi, link_auto_bw, link_auto_bw_msi, bw_mgt, bw_mgt_msi,
71+
edma_wr, edma_rd, dpa_sub_upd, rbar_update, link_eq_req, ep_elbi_app
72+
- description:
73+
Combined PM interrupt, which is used to signal the following
74+
interrupts - linkst_in_l1sub, linkst_in_l1, linkst_in_l2,
75+
linkst_in_l0s, linkst_out_l1sub, linkst_out_l1, linkst_out_l2,
76+
linkst_out_l0s, pm_dstate_update
77+
- description:
78+
Combined message interrupt, which is used to signal the following
79+
interrupts - ven_msg, unlock_msg, ltr_msg, cfg_pme, cfg_pme_msi,
80+
pm_pme, pm_to_ack, pm_turnoff, obff_idle, obff_obff, obff_cpu_active
81+
- description:
82+
Combined legacy interrupt, which is used to signal the following
83+
interrupts - inta, intb, intc, intd
84+
- description:
85+
Combined error interrupt, which is used to signal the following
86+
interrupts - aer_rc_err, aer_rc_err_msi, rx_cpl_timeout,
87+
tx_cpl_timeout, cor_err_sent, nf_err_sent, f_err_sent, cor_err_rx,
88+
nf_err_rx, f_err_rx, radm_qoverflow
89+
90+
interrupt-names:
91+
items:
92+
- const: sys
93+
- const: pmc
94+
- const: msg
95+
- const: legacy
96+
- const: err
97+
98+
legacy-interrupt-controller:
99+
description: Interrupt controller node for handling legacy PCI interrupts.
100+
type: object
101+
additionalProperties: false
102+
properties:
103+
"#address-cells":
104+
const: 0
105+
106+
"#interrupt-cells":
107+
const: 1
108+
109+
interrupt-controller: true
110+
111+
interrupts:
112+
items:
113+
- description: combined legacy interrupt
114+
required:
115+
- "#address-cells"
116+
- "#interrupt-cells"
117+
- interrupt-controller
118+
- interrupts
54119

55120
msi-map: true
56121

@@ -66,13 +131,19 @@ properties:
66131
maxItems: 1
67132

68133
ranges:
69-
maxItems: 2
134+
minItems: 2
135+
maxItems: 3
70136

71137
resets:
72-
maxItems: 1
138+
minItems: 1
139+
maxItems: 2
73140

74141
reset-names:
75-
const: pipe
142+
oneOf:
143+
- const: pipe
144+
- items:
145+
- const: pwr
146+
- const: pipe
76147

77148
vpcie3v3-supply: true
78149

@@ -94,6 +165,7 @@ unevaluatedProperties: false
94165

95166
examples:
96167
- |
168+
#include <dt-bindings/interrupt-controller/arm-gic.h>
97169
98170
bus {
99171
#address-cells = <2>;
@@ -113,6 +185,12 @@ examples:
113185
"aclk_dbi", "pclk",
114186
"aux";
115187
device_type = "pci";
188+
interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
189+
<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
190+
<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
191+
<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
192+
<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
193+
interrupt-names = "sys", "pmc", "msg", "legacy", "err";
116194
linux,pci-domain = <2>;
117195
max-link-speed = <2>;
118196
msi-map = <0x2000 &its 0x2000 0x1000>;
@@ -126,6 +204,14 @@ examples:
126204
reset-names = "pipe";
127205
#address-cells = <3>;
128206
#size-cells = <2>;
207+
208+
legacy-interrupt-controller {
209+
interrupt-controller;
210+
#address-cells = <0>;
211+
#interrupt-cells = <1>;
212+
interrupt-parent = <&gic>;
213+
interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>;
214+
};
129215
};
130216
};
131217
...

Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ select:
2525
allOf:
2626
- $ref: /schemas/pci/pci-bus.yaml#
2727
- $ref: /schemas/pci/snps,dw-pcie-common.yaml#
28+
- if:
29+
not:
30+
required:
31+
- msi-map
32+
then:
33+
properties:
34+
interrupt-names:
35+
contains:
36+
const: msi
2837

2938
properties:
3039
reg:
@@ -187,15 +196,16 @@ properties:
187196
Status register (the event is supposed to be unmasked in the
188197
Link Control register).
189198
const: bw_mg
199+
- description:
200+
Combined Legacy A/B/C/D interrupt signal. See "^int(a|b|c|d)$" for
201+
details.
202+
const: legacy
190203
- description:
191204
Vendor-specific IRQ names. Consider using the generic names above
192205
for new bindings.
193206
oneOf:
194207
- description: See native "app" IRQ for details
195-
enum: [ intr ]
196-
allOf:
197-
- contains:
198-
const: msi
208+
enum: [ intr, sys, pmc, msg, err ]
199209

200210
additionalProperties: true
201211

0 commit comments

Comments
 (0)