Skip to content

Commit e3eca2e

Browse files
committed
Merge branches 'arm/allwinner', 'arm/exynos', 'arm/mediatek', 'arm/rockchip', 'arm/smmu', 'ppc/pamu', 's390', 'x86/vt-d', 'x86/amd' and 'core' into next
11 parents 830b3c6 + ef5bb8e + bbc4d20 + 462e768 + 7eb9984 + f04ae51 + 73f5fc5 + 21c1f90 + e5b0feb + 88699c0 + b169a18 commit e3eca2e

Some content is hidden

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

54 files changed

+1964
-1172
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2300,7 +2300,13 @@
23002300
Provide an override to the IOAPIC-ID<->DEVICE-ID
23012301
mapping provided in the IVRS ACPI table.
23022302
By default, PCI segment is 0, and can be omitted.
2303-
For example:
2303+
2304+
For example, to map IOAPIC-ID decimal 10 to
2305+
PCI segment 0x1 and PCI device 00:14.0,
2306+
write the parameter as:
2307+
ivrs_ioapic=10@0001:00:14.0
2308+
2309+
Deprecated formats:
23042310
* To map IOAPIC-ID decimal 10 to PCI device 00:14.0
23052311
write the parameter as:
23062312
ivrs_ioapic[10]=00:14.0
@@ -2312,7 +2318,13 @@
23122318
Provide an override to the HPET-ID<->DEVICE-ID
23132319
mapping provided in the IVRS ACPI table.
23142320
By default, PCI segment is 0, and can be omitted.
2315-
For example:
2321+
2322+
For example, to map HPET-ID decimal 10 to
2323+
PCI segment 0x1 and PCI device 00:14.0,
2324+
write the parameter as:
2325+
ivrs_hpet=10@0001:00:14.0
2326+
2327+
Deprecated formats:
23162328
* To map HPET-ID decimal 0 to PCI device 00:14.0
23172329
write the parameter as:
23182330
ivrs_hpet[0]=00:14.0
@@ -2323,15 +2335,20 @@
23232335
ivrs_acpihid [HW,X86-64]
23242336
Provide an override to the ACPI-HID:UID<->DEVICE-ID
23252337
mapping provided in the IVRS ACPI table.
2338+
By default, PCI segment is 0, and can be omitted.
23262339

23272340
For example, to map UART-HID:UID AMD0020:0 to
23282341
PCI segment 0x1 and PCI device ID 00:14.5,
23292342
write the parameter as:
2330-
ivrs_acpihid[0001:00:14.5]=AMD0020:0
2343+
ivrs_acpihid=AMD0020:0@0001:00:14.5
23312344

2332-
By default, PCI segment is 0, and can be omitted.
2333-
For example, PCI device 00:14.5 write the parameter as:
2345+
Deprecated formats:
2346+
* To map UART-HID:UID AMD0020:0 to PCI segment is 0,
2347+
PCI device ID 00:14.5, write the parameter as:
23342348
ivrs_acpihid[00:14.5]=AMD0020:0
2349+
* To map UART-HID:UID AMD0020:0 to PCI segment 0x1 and
2350+
PCI device ID 00:14.5, write the parameter as:
2351+
ivrs_acpihid[0001:00:14.5]=AMD0020:0
23352352

23362353
js= [HW,JOY] Analog joystick
23372354
See Documentation/input/joydev/joystick.rst.

Documentation/devicetree/bindings/iommu/arm,smmu.yaml

Lines changed: 169 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,33 +28,79 @@ properties:
2828
- enum:
2929
- qcom,msm8996-smmu-v2
3030
- qcom,msm8998-smmu-v2
31+
- qcom,sdm630-smmu-v2
3132
- const: qcom,smmu-v2
3233

33-
- description: Qcom SoCs implementing "arm,mmu-500"
34+
- description: Qcom SoCs implementing "qcom,smmu-500" and "arm,mmu-500"
3435
items:
3536
- enum:
3637
- qcom,qcm2290-smmu-500
38+
- qcom,qdu1000-smmu-500
3739
- qcom,sc7180-smmu-500
3840
- qcom,sc7280-smmu-500
3941
- qcom,sc8180x-smmu-500
4042
- qcom,sc8280xp-smmu-500
43+
- qcom,sdm670-smmu-500
4144
- qcom,sdm845-smmu-500
45+
- qcom,sm6115-smmu-500
46+
- qcom,sm6350-smmu-500
47+
- qcom,sm6375-smmu-500
48+
- qcom,sm8150-smmu-500
49+
- qcom,sm8250-smmu-500
50+
- qcom,sm8350-smmu-500
51+
- qcom,sm8450-smmu-500
52+
- const: qcom,smmu-500
53+
- const: arm,mmu-500
54+
55+
- description: Qcom SoCs implementing "arm,mmu-500" (non-qcom implementation)
56+
deprecated: true
57+
items:
58+
- enum:
4259
- qcom,sdx55-smmu-500
4360
- qcom,sdx65-smmu-500
61+
- const: arm,mmu-500
62+
63+
- description: Qcom SoCs implementing "arm,mmu-500" (legacy binding)
64+
deprecated: true
65+
items:
66+
# Do not add additional SoC to this list. Instead use two previous lists.
67+
- enum:
68+
- qcom,qcm2290-smmu-500
69+
- qcom,sc7180-smmu-500
70+
- qcom,sc7280-smmu-500
71+
- qcom,sc8180x-smmu-500
72+
- qcom,sc8280xp-smmu-500
73+
- qcom,sdm845-smmu-500
74+
- qcom,sm6115-smmu-500
4475
- qcom,sm6350-smmu-500
4576
- qcom,sm6375-smmu-500
4677
- qcom,sm8150-smmu-500
4778
- qcom,sm8250-smmu-500
4879
- qcom,sm8350-smmu-500
4980
- qcom,sm8450-smmu-500
5081
- const: arm,mmu-500
82+
83+
- description: Qcom Adreno GPUs implementing "arm,smmu-500"
84+
items:
85+
- enum:
86+
- qcom,sc7280-smmu-500
87+
- qcom,sm8250-smmu-500
88+
- const: qcom,adreno-smmu
89+
- const: arm,mmu-500
5190
- description: Qcom Adreno GPUs implementing "arm,smmu-v2"
5291
items:
5392
- enum:
93+
- qcom,msm8996-smmu-v2
5494
- qcom,sc7180-smmu-v2
95+
- qcom,sdm630-smmu-v2
5596
- qcom,sdm845-smmu-v2
97+
- qcom,sm6350-smmu-v2
5698
- const: qcom,adreno-smmu
5799
- const: qcom,smmu-v2
100+
- description: Qcom Adreno GPUs on Google Cheza platform
101+
items:
102+
- const: qcom,sdm845-smmu-v2
103+
- const: qcom,smmu-v2
58104
- description: Marvell SoCs implementing "arm,mmu-500"
59105
items:
60106
- const: marvell,ap806-smmu-500
@@ -147,16 +193,12 @@ properties:
147193
present in such cases.
148194
149195
clock-names:
150-
items:
151-
- const: bus
152-
- const: iface
196+
minItems: 1
197+
maxItems: 7
153198

154199
clocks:
155-
items:
156-
- description: bus clock required for downstream bus access and for the
157-
smmu ptw
158-
- description: interface clock required to access smmu's registers
159-
through the TCU's programming interface.
200+
minItems: 1
201+
maxItems: 7
160202

161203
power-domains:
162204
maxItems: 1
@@ -206,6 +248,124 @@ allOf:
206248
reg:
207249
maxItems: 1
208250

251+
- if:
252+
properties:
253+
compatible:
254+
contains:
255+
enum:
256+
- qcom,msm8998-smmu-v2
257+
- qcom,sdm630-smmu-v2
258+
then:
259+
anyOf:
260+
- properties:
261+
clock-names:
262+
items:
263+
- const: bus
264+
clocks:
265+
items:
266+
- description: bus clock required for downstream bus access and for
267+
the smmu ptw
268+
- properties:
269+
clock-names:
270+
items:
271+
- const: iface
272+
- const: mem
273+
- const: mem_iface
274+
clocks:
275+
items:
276+
- description: interface clock required to access smmu's registers
277+
through the TCU's programming interface.
278+
- description: bus clock required for memory access
279+
- description: bus clock required for GPU memory access
280+
- properties:
281+
clock-names:
282+
items:
283+
- const: iface-mm
284+
- const: iface-smmu
285+
- const: bus-mm
286+
- const: bus-smmu
287+
clocks:
288+
items:
289+
- description: interface clock required to access mnoc's registers
290+
through the TCU's programming interface.
291+
- description: interface clock required to access smmu's registers
292+
through the TCU's programming interface.
293+
- description: bus clock required for downstream bus access
294+
- description: bus clock required for the smmu ptw
295+
296+
- if:
297+
properties:
298+
compatible:
299+
contains:
300+
enum:
301+
- qcom,msm8996-smmu-v2
302+
- qcom,sc7180-smmu-v2
303+
- qcom,sdm845-smmu-v2
304+
then:
305+
properties:
306+
clock-names:
307+
items:
308+
- const: bus
309+
- const: iface
310+
311+
clocks:
312+
items:
313+
- description: bus clock required for downstream bus access and for
314+
the smmu ptw
315+
- description: interface clock required to access smmu's registers
316+
through the TCU's programming interface.
317+
318+
- if:
319+
properties:
320+
compatible:
321+
contains:
322+
const: qcom,sc7280-smmu-500
323+
then:
324+
properties:
325+
clock-names:
326+
items:
327+
- const: gcc_gpu_memnoc_gfx_clk
328+
- const: gcc_gpu_snoc_dvm_gfx_clk
329+
- const: gpu_cc_ahb_clk
330+
- const: gpu_cc_hlos1_vote_gpu_smmu_clk
331+
- const: gpu_cc_cx_gmu_clk
332+
- const: gpu_cc_hub_cx_int_clk
333+
- const: gpu_cc_hub_aon_clk
334+
335+
clocks:
336+
items:
337+
- description: GPU memnoc_gfx clock
338+
- description: GPU snoc_dvm_gfx clock
339+
- description: GPU ahb clock
340+
- description: GPU hlos1_vote_GPU smmu clock
341+
- description: GPU cx_gmu clock
342+
- description: GPU hub_cx_int clock
343+
- description: GPU hub_aon clock
344+
345+
- if:
346+
properties:
347+
compatible:
348+
contains:
349+
enum:
350+
- qcom,sm6350-smmu-v2
351+
- qcom,sm8150-smmu-500
352+
- qcom,sm8250-smmu-500
353+
then:
354+
properties:
355+
clock-names:
356+
items:
357+
- const: ahb
358+
- const: bus
359+
- const: iface
360+
361+
clocks:
362+
items:
363+
- description: bus clock required for AHB bus access
364+
- description: bus clock required for downstream bus access and for
365+
the smmu ptw
366+
- description: interface clock required to access smmu's registers
367+
through the TCU's programming interface.
368+
209369
examples:
210370
- |+
211371
/* SMMU with stream matching or stream indexing */

Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ properties:
8282
- mediatek,mt8195-iommu-vdo # generation two
8383
- mediatek,mt8195-iommu-vpp # generation two
8484
- mediatek,mt8195-iommu-infra # generation two
85+
- mediatek,mt8365-m4u # generation two
8586

8687
- description: mt7623 generation one
8788
items:
@@ -132,6 +133,7 @@ properties:
132133
dt-binding/memory/mt8186-memory-port.h for mt8186,
133134
dt-binding/memory/mt8192-larb-port.h for mt8192.
134135
dt-binding/memory/mt8195-memory-port.h for mt8195.
136+
dt-binding/memory/mediatek,mt8365-larb-port.h for mt8365.
135137
136138
power-domains:
137139
maxItems: 1

arch/s390/include/asm/pci.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ struct zpci_bus {
117117
struct zpci_dev {
118118
struct zpci_bus *zbus;
119119
struct list_head entry; /* list of all zpci_devices, needed for hotplug, etc. */
120+
struct list_head iommu_list;
120121
struct kref kref;
122+
struct rcu_head rcu;
121123
struct hotplug_slot hotplug_slot;
122124

123125
enum zpci_state state;
@@ -155,7 +157,6 @@ struct zpci_dev {
155157

156158
/* DMA stuff */
157159
unsigned long *dma_table;
158-
spinlock_t dma_table_lock;
159160
int tlb_refresh;
160161

161162
spinlock_t iommu_bitmap_lock;
@@ -220,7 +221,7 @@ void zpci_device_reserved(struct zpci_dev *zdev);
220221
bool zpci_is_device_configured(struct zpci_dev *zdev);
221222

222223
int zpci_hot_reset_device(struct zpci_dev *zdev);
223-
int zpci_register_ioat(struct zpci_dev *, u8, u64, u64, u64);
224+
int zpci_register_ioat(struct zpci_dev *, u8, u64, u64, u64, u8 *);
224225
int zpci_unregister_ioat(struct zpci_dev *, u8);
225226
void zpci_remove_reserved_devices(void);
226227
void zpci_update_fh(struct zpci_dev *zdev, u32 fh);

arch/s390/kvm/pci.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,7 @@ static void kvm_s390_pci_dev_release(struct zpci_dev *zdev)
434434
static int kvm_s390_pci_register_kvm(void *opaque, struct kvm *kvm)
435435
{
436436
struct zpci_dev *zdev = opaque;
437+
u8 status;
437438
int rc;
438439

439440
if (!zdev)
@@ -486,7 +487,7 @@ static int kvm_s390_pci_register_kvm(void *opaque, struct kvm *kvm)
486487

487488
/* Re-register the IOMMU that was already created */
488489
rc = zpci_register_ioat(zdev, 0, zdev->start_dma, zdev->end_dma,
489-
virt_to_phys(zdev->dma_table));
490+
virt_to_phys(zdev->dma_table), &status);
490491
if (rc)
491492
goto clear_gisa;
492493

@@ -516,6 +517,7 @@ static void kvm_s390_pci_unregister_kvm(void *opaque)
516517
{
517518
struct zpci_dev *zdev = opaque;
518519
struct kvm *kvm;
520+
u8 status;
519521

520522
if (!zdev)
521523
return;
@@ -554,7 +556,7 @@ static void kvm_s390_pci_unregister_kvm(void *opaque)
554556

555557
/* Re-register the IOMMU that was already created */
556558
zpci_register_ioat(zdev, 0, zdev->start_dma, zdev->end_dma,
557-
virt_to_phys(zdev->dma_table));
559+
virt_to_phys(zdev->dma_table), &status);
558560

559561
out:
560562
spin_lock(&kvm->arch.kzdev_list_lock);

0 commit comments

Comments
 (0)