Skip to content

Commit 7446fbf

Browse files
committed
Merge tag 'drm-misc-next-2025-10-28' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
drm-misc-next for v6.19-rc1: UAPI Changes: Cross-subsystem Changes: - Update DT bindings for renesas and powervr-rogue. - Update MAINTAINERS email and add spsc_queue. Core Changes: - Allow ttm page protection flags on risc-v. - Move freeing of drm client memory to driver. Driver Changes: - Assorted small fixes and updates to qaic, ivpu, st7571-i2c, gud, amdxdna. - Allow configuration of vkms' display through configfs. - Add Arm Ethos-U65/U85 accel driver. Signed-off-by: Simona Vetter <simona.vetter@ffwll.ch> From: Maarten Lankhorst <dev@lankhorst.se> Link: https://patch.msgid.link/32b43261-3c99-49d9-92ee-615ada1d01e8@lankhorst.se
2 parents f53128e + 4f9ffd2 commit 7446fbf

59 files changed

Lines changed: 3540 additions & 114 deletions

Some content is hidden

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

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ Carlos Bilbao <carlos.bilbao@kernel.org> <bilbao@vt.edu>
173173
Changbin Du <changbin.du@intel.com> <changbin.du@gmail.com>
174174
Chao Yu <chao@kernel.org> <chao2.yu@samsung.com>
175175
Chao Yu <chao@kernel.org> <yuchao0@huawei.com>
176+
Chen-Yu Tsai <wens@kernel.org> <wens@csie.org>
176177
Chester Lin <chester62515@gmail.com> <clin@suse.com>
177178
Chris Chiu <chris.chiu@canonical.com> <chiu@endlessm.com>
178179
Chris Chiu <chris.chiu@canonical.com> <chiu@endlessos.org>

Documentation/devicetree/bindings/display/bridge/renesas,dsi-csi2-tx.yaml

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ description: |
1414
R-Car Gen4 SoCs. The encoder can operate in either DSI or CSI-2 mode, with up
1515
to four data lanes.
1616
17+
allOf:
18+
- $ref: /schemas/display/dsi-controller.yaml#
19+
1720
properties:
1821
compatible:
1922
enum:
@@ -80,14 +83,14 @@ required:
8083
- resets
8184
- ports
8285

83-
additionalProperties: false
86+
unevaluatedProperties: false
8487

8588
examples:
8689
- |
8790
#include <dt-bindings/clock/r8a779a0-cpg-mssr.h>
8891
#include <dt-bindings/power/r8a779a0-sysc.h>
8992
90-
dsi0: dsi-encoder@fed80000 {
93+
dsi@fed80000 {
9194
compatible = "renesas,r8a779a0-dsi-csi2-tx";
9295
reg = <0xfed80000 0x10000>;
9396
power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
@@ -117,4 +120,50 @@ examples:
117120
};
118121
};
119122
};
123+
124+
- |
125+
#include <dt-bindings/clock/r8a779g0-cpg-mssr.h>
126+
#include <dt-bindings/power/r8a779g0-sysc.h>
127+
128+
dsi@fed80000 {
129+
#address-cells = <1>;
130+
#size-cells = <0>;
131+
compatible = "renesas,r8a779g0-dsi-csi2-tx";
132+
reg = <0xfed80000 0x10000>;
133+
clocks = <&cpg CPG_MOD 415>,
134+
<&cpg CPG_CORE R8A779G0_CLK_DSIEXT>,
135+
<&cpg CPG_CORE R8A779G0_CLK_DSIREF>;
136+
clock-names = "fck", "dsi", "pll";
137+
power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
138+
resets = <&cpg 415>;
139+
140+
ports {
141+
#address-cells = <1>;
142+
#size-cells = <0>;
143+
144+
port@0 {
145+
reg = <0>;
146+
};
147+
148+
port@1 {
149+
reg = <1>;
150+
151+
dsi0port1_out: endpoint {
152+
remote-endpoint = <&panel_in>;
153+
data-lanes = <1 2>;
154+
};
155+
};
156+
};
157+
158+
panel@0 {
159+
reg = <0>;
160+
compatible = "raspberrypi,dsi-7inch";
161+
162+
port {
163+
panel_in: endpoint {
164+
remote-endpoint = <&dsi0port1_out>;
165+
};
166+
};
167+
};
168+
};
120169
...

Documentation/devicetree/bindings/gpu/img,powervr-rogue.yaml

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ maintainers:
1313
properties:
1414
compatible:
1515
oneOf:
16+
- items:
17+
- enum:
18+
- renesas,r8a7796-gpu
19+
- renesas,r8a77961-gpu
20+
- const: img,img-gx6250
21+
- const: img,img-rogue
1622
- items:
1723
- enum:
1824
- ti,am62-gpu
@@ -86,48 +92,55 @@ allOf:
8692
properties:
8793
compatible:
8894
contains:
89-
const: img,img-axe-1-16m
95+
enum:
96+
- ti,am62-gpu
97+
- ti,j721s2-gpu
9098
then:
9199
properties:
92-
power-domains:
93-
items:
94-
- description: Power domain A
95-
power-domain-names:
100+
clocks:
96101
maxItems: 1
97-
required:
98-
- power-domains
99-
- power-domain-names
102+
100103

101104
- if:
102105
properties:
103106
compatible:
104107
contains:
105-
const: thead,th1520-gpu
108+
enum:
109+
- img,img-gx6250
110+
- thead,th1520-gpu
106111
then:
107112
properties:
108113
clocks:
109114
minItems: 3
110115
clock-names:
111116
minItems: 3
117+
118+
- if:
119+
properties:
120+
compatible:
121+
contains:
122+
const: img,img-axe-1-16m
123+
then:
124+
properties:
112125
power-domains:
113-
items:
114-
- description: The single, unified power domain for the GPU on the
115-
TH1520 SoC, integrating all internal IP power domains.
116-
power-domain-names: false
126+
maxItems: 1
127+
power-domain-names:
128+
maxItems: 1
117129
required:
118130
- power-domains
131+
- power-domain-names
119132

120133
- if:
121134
properties:
122135
compatible:
123136
contains:
124-
const: img,img-bxs-4-64
137+
enum:
138+
- img,img-gx6250
139+
- img,img-bxs-4-64
125140
then:
126141
properties:
127142
power-domains:
128-
items:
129-
- description: Power domain A
130-
- description: Power domain B
143+
minItems: 2
131144
power-domain-names:
132145
minItems: 2
133146
required:
@@ -138,13 +151,16 @@ allOf:
138151
properties:
139152
compatible:
140153
contains:
141-
enum:
142-
- ti,am62-gpu
143-
- ti,j721s2-gpu
154+
const: thead,th1520-gpu
144155
then:
145156
properties:
146-
clocks:
147-
maxItems: 1
157+
power-domains:
158+
items:
159+
- description: The single, unified power domain for the GPU on the
160+
TH1520 SoC, integrating all internal IP power domains.
161+
power-domain-names: false
162+
required:
163+
- power-domains
148164

149165
examples:
150166
- |
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/npu/arm,ethos.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Arm Ethos U65/U85
8+
9+
maintainers:
10+
- Rob Herring <robh@kernel.org>
11+
12+
description: >
13+
The Arm Ethos-U NPUs are designed for IoT inference applications. The NPUs
14+
can accelerate 8-bit and 16-bit integer quantized networks:
15+
16+
Transformer networks (U85 only)
17+
Convolutional Neural Networks (CNN)
18+
Recurrent Neural Networks (RNN)
19+
20+
Further documentation is available here:
21+
22+
U65 TRM: https://developer.arm.com/documentation/102023/
23+
U85 TRM: https://developer.arm.com/documentation/102685/
24+
25+
properties:
26+
compatible:
27+
oneOf:
28+
- items:
29+
- enum:
30+
- fsl,imx93-npu
31+
- const: arm,ethos-u65
32+
- items:
33+
- {}
34+
- const: arm,ethos-u85
35+
36+
reg:
37+
maxItems: 1
38+
39+
interrupts:
40+
maxItems: 1
41+
42+
clocks:
43+
maxItems: 2
44+
45+
clock-names:
46+
items:
47+
- const: core
48+
- const: apb
49+
50+
power-domains:
51+
maxItems: 1
52+
53+
sram:
54+
maxItems: 1
55+
56+
required:
57+
- compatible
58+
- reg
59+
- interrupts
60+
- clocks
61+
62+
additionalProperties: false
63+
64+
examples:
65+
- |
66+
#include <dt-bindings/interrupt-controller/irq.h>
67+
#include <dt-bindings/interrupt-controller/arm-gic.h>
68+
#include <dt-bindings/clock/imx93-clock.h>
69+
70+
npu@4a900000 {
71+
compatible = "fsl,imx93-npu", "arm,ethos-u65";
72+
reg = <0x4a900000 0x1000>;
73+
interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
74+
power-domains = <&mlmix>;
75+
clocks = <&clk IMX93_CLK_ML>, <&clk IMX93_CLK_ML_APB>;
76+
clock-names = "core", "apb";
77+
sram = <&sram>;
78+
};
79+
...

Documentation/gpu/vkms.rst

Lines changed: 92 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,97 @@ To disable the driver, use ::
5151

5252
sudo modprobe -r vkms
5353

54+
Configuring With Configfs
55+
=========================
56+
57+
It is possible to create and configure multiple VKMS instances via configfs.
58+
59+
Start by mounting configfs and loading VKMS::
60+
61+
sudo mount -t configfs none /config
62+
sudo modprobe vkms
63+
64+
Once VKMS is loaded, ``/config/vkms`` is created automatically. Each directory
65+
under ``/config/vkms`` represents a VKMS instance, create a new one::
66+
67+
sudo mkdir /config/vkms/my-vkms
68+
69+
By default, the instance is disabled::
70+
71+
cat /config/vkms/my-vkms/enabled
72+
0
73+
74+
And directories are created for each configurable item of the display pipeline::
75+
76+
tree /config/vkms/my-vkms
77+
├── connectors
78+
├── crtcs
79+
├── enabled
80+
├── encoders
81+
└── planes
82+
83+
To add items to the display pipeline, create one or more directories under the
84+
available paths.
85+
86+
Start by creating one or more planes::
87+
88+
sudo mkdir /config/vkms/my-vkms/planes/plane0
89+
90+
Planes have 1 configurable attribute:
91+
92+
- type: Plane type: 0 overlay, 1 primary, 2 cursor (same values as those
93+
exposed by the "type" property of a plane)
94+
95+
Continue by creating one or more CRTCs::
96+
97+
sudo mkdir /config/vkms/my-vkms/crtcs/crtc0
98+
99+
CRTCs have 1 configurable attribute:
100+
101+
- writeback: Enable or disable writeback connector support by writing 1 or 0
102+
103+
Next, create one or more encoders::
104+
105+
sudo mkdir /config/vkms/my-vkms/encoders/encoder0
106+
107+
Last but not least, create one or more connectors::
108+
109+
sudo mkdir /config/vkms/my-vkms/connectors/connector0
110+
111+
Connectors have 1 configurable attribute:
112+
113+
- status: Connection status: 1 connected, 2 disconnected, 3 unknown (same values
114+
as those exposed by the "status" property of a connector)
115+
116+
To finish the configuration, link the different pipeline items::
117+
118+
sudo ln -s /config/vkms/my-vkms/crtcs/crtc0 /config/vkms/my-vkms/planes/plane0/possible_crtcs
119+
sudo ln -s /config/vkms/my-vkms/crtcs/crtc0 /config/vkms/my-vkms/encoders/encoder0/possible_crtcs
120+
sudo ln -s /config/vkms/my-vkms/encoders/encoder0 /config/vkms/my-vkms/connectors/connector0/possible_encoders
121+
122+
Since at least one primary plane is required, make sure to set the right type::
123+
124+
echo "1" | sudo tee /config/vkms/my-vkms/planes/plane0/type
125+
126+
Once you are done configuring the VKMS instance, enable it::
127+
128+
echo "1" | sudo tee /config/vkms/my-vkms/enabled
129+
130+
Finally, you can remove the VKMS instance disabling it::
131+
132+
echo "0" | sudo tee /config/vkms/my-vkms/enabled
133+
134+
And removing the top level directory and its subdirectories::
135+
136+
sudo rm /config/vkms/my-vkms/planes/*/possible_crtcs/*
137+
sudo rm /config/vkms/my-vkms/encoders/*/possible_crtcs/*
138+
sudo rm /config/vkms/my-vkms/connectors/*/possible_encoders/*
139+
sudo rmdir /config/vkms/my-vkms/planes/*
140+
sudo rmdir /config/vkms/my-vkms/crtcs/*
141+
sudo rmdir /config/vkms/my-vkms/encoders/*
142+
sudo rmdir /config/vkms/my-vkms/connectors/*
143+
sudo rmdir /config/vkms/my-vkms
144+
54145
Testing With IGT
55146
================
56147

@@ -147,21 +238,14 @@ Runtime Configuration
147238
---------------------
148239

149240
We want to be able to reconfigure vkms instance without having to reload the
150-
module. Use/Test-cases:
241+
module through configfs. Use/Test-cases:
151242

152243
- Hotplug/hotremove connectors on the fly (to be able to test DP MST handling
153244
of compositors).
154245

155-
- Configure planes/crtcs/connectors (we'd need some code to have more than 1 of
156-
them first).
157-
158246
- Change output configuration: Plug/unplug screens, change EDID, allow changing
159247
the refresh rate.
160248

161-
The currently proposed solution is to expose vkms configuration through
162-
configfs. All existing module options should be supported through configfs
163-
too.
164-
165249
Writeback support
166250
-----------------
167251

0 commit comments

Comments
 (0)