Skip to content

Commit f107ff7

Browse files
committed
Merge tag 'drm-misc-next-2023-09-11-1' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for v6.7-rc1: UAPI Changes: - Nouveau changed to not set NO_PREFETCH flag explicitly. Cross-subsystem Changes: - Update documentation of dma-buf intro and uapi. - fbdev/sbus fixes. - Use initializer macros in a lot of fbdev drivers. - Add Boris Brezillon as Panfrost driver maintainer. - Add Jessica Zhang as drm/panel reviewer. - Make more fbdev drivers use fb_ops helpers for deferred io. - Small hid trailing whitespace fix. - Use fb_ops in hid/picolcd Core Changes: - Assorted small fixes to ttm tests, drm/mst. - Documentation updates to bridge. - Add kunit tests for some drm_fb functions. - Rework drm_debugfs implementation. - Update xe documentation to mark todos as completed. Driver Changes: - Add support to rockchip for rv1126 mipi-dsi and vop. - Assorted small fixes to nouveau, bridge/samsung-dsim, bridge/lvds-codec, loongson, rockchip, panfrost, gma500, repaper, komeda, virtio, ssd130x. - Add support for simple panels Mitsubishi AA084XE01, JDI LPM102A188A, - Documentation updates to accel/ivpu. - Some nouveau scheduling/fence fixes. - Power management related fixes and other fixes to ivpu. - Assorted bridge/it66121 fixes. - Make platform drivers return void in remove() callback. Signed-off-by: Dave Airlie <[email protected]> From: Maarten Lankhorst <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2 parents ce9ecca + 15d30b4 commit f107ff7

File tree

125 files changed

+3030
-1281
lines changed

Some content is hidden

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

125 files changed

+3030
-1281
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/display/panel/jdi,lpm102a188a.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: JDI LPM102A188A 2560x1800 10.2" DSI Panel
8+
9+
maintainers:
10+
- Diogo Ivo <[email protected]>
11+
12+
description: |
13+
This panel requires a dual-channel DSI host to operate. It supports two modes:
14+
- left-right: each channel drives the left or right half of the screen
15+
- even-odd: each channel drives the even or odd lines of the screen
16+
17+
Each of the DSI channels controls a separate DSI peripheral. The peripheral
18+
driven by the first link (DSI-LINK1) is considered the primary peripheral
19+
and controls the device. The 'link2' property contains a phandle to the
20+
peripheral driven by the second link (DSI-LINK2).
21+
22+
allOf:
23+
- $ref: panel-common.yaml#
24+
25+
properties:
26+
compatible:
27+
const: jdi,lpm102a188a
28+
29+
reg: true
30+
enable-gpios: true
31+
reset-gpios: true
32+
power-supply: true
33+
backlight: true
34+
35+
ddi-supply:
36+
description: The regulator that provides IOVCC (1.8V).
37+
38+
link2:
39+
$ref: /schemas/types.yaml#/definitions/phandle
40+
description: |
41+
phandle to the DSI peripheral on the secondary link. Note that the
42+
presence of this property marks the containing node as DSI-LINK1.
43+
44+
required:
45+
- compatible
46+
- reg
47+
48+
if:
49+
required:
50+
- link2
51+
then:
52+
required:
53+
- power-supply
54+
- ddi-supply
55+
- enable-gpios
56+
- reset-gpios
57+
58+
additionalProperties: false
59+
60+
examples:
61+
- |
62+
#include <dt-bindings/gpio/gpio.h>
63+
#include <dt-bindings/gpio/tegra-gpio.h>
64+
65+
dsia: dsi@54300000 {
66+
#address-cells = <1>;
67+
#size-cells = <0>;
68+
reg = <0x0 0x54300000 0x0 0x00040000>;
69+
70+
link2: panel@0 {
71+
compatible = "jdi,lpm102a188a";
72+
reg = <0>;
73+
};
74+
};
75+
76+
dsib: dsi@54400000{
77+
#address-cells = <1>;
78+
#size-cells = <0>;
79+
reg = <0x0 0x54400000 0x0 0x00040000>;
80+
nvidia,ganged-mode = <&dsia>;
81+
82+
link1: panel@0 {
83+
compatible = "jdi,lpm102a188a";
84+
reg = <0>;
85+
power-supply = <&pplcd_vdd>;
86+
ddi-supply = <&pp1800_lcdio>;
87+
enable-gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_HIGH>;
88+
reset-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
89+
link2 = <&link2>;
90+
backlight = <&backlight>;
91+
};
92+
};
93+
94+
...

Documentation/devicetree/bindings/display/panel/panel-simple.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@ properties:
238238
- logictechno,lttd800480070-l6wh-rt
239239
# Mitsubishi "AA070MC01 7.0" WVGA TFT LCD panel
240240
- mitsubishi,aa070mc01-ca1
241+
# Mitsubishi AA084XE01 8.4" XGA TFT LCD panel
242+
- mitsubishi,aa084xe01
241243
# Multi-Inno Technology Co.,Ltd MI0700S4T-6 7" 800x480 TFT Resistive Touch Module
242244
- multi-inno,mi0700s4t-6
243245
# Multi-Inno Technology Co.,Ltd MI0800FT-9 8" 800x600 TFT Resistive Touch Module

Documentation/devicetree/bindings/display/rockchip/rockchip,dw-mipi-dsi.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ properties:
1818
- rockchip,rk3288-mipi-dsi
1919
- rockchip,rk3399-mipi-dsi
2020
- rockchip,rk3568-mipi-dsi
21+
- rockchip,rv1126-mipi-dsi
2122
- const: snps,dw-mipi-dsi
2223

2324
interrupts:
@@ -77,6 +78,7 @@ allOf:
7778
enum:
7879
- rockchip,px30-mipi-dsi
7980
- rockchip,rk3568-mipi-dsi
81+
- rockchip,rv1126-mipi-dsi
8082

8183
then:
8284
properties:

Documentation/devicetree/bindings/display/rockchip/rockchip-vop.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ properties:
3131
- rockchip,rk3368-vop
3232
- rockchip,rk3399-vop-big
3333
- rockchip,rk3399-vop-lit
34+
- rockchip,rv1126-vop
3435

3536
reg:
3637
minItems: 1

Documentation/driver-api/dma-buf.rst

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,30 @@ The dma-buf subsystem provides the framework for sharing buffers for
55
hardware (DMA) access across multiple device drivers and subsystems, and
66
for synchronizing asynchronous hardware access.
77

8-
This is used, for example, by drm "prime" multi-GPU support, but is of
9-
course not limited to GPU use cases.
10-
11-
The three main components of this are: (1) dma-buf, representing a
12-
sg_table and exposed to userspace as a file descriptor to allow passing
13-
between devices, (2) fence, which provides a mechanism to signal when
14-
one device has finished access, and (3) reservation, which manages the
15-
shared or exclusive fence(s) associated with the buffer.
8+
As an example, it is used extensively by the DRM subsystem to exchange
9+
buffers between processes, contexts, library APIs within the same
10+
process, and also to exchange buffers with other subsystems such as
11+
V4L2.
12+
13+
This document describes the way in which kernel subsystems can use and
14+
interact with the three main primitives offered by dma-buf:
15+
16+
- dma-buf, representing a sg_table and exposed to userspace as a file
17+
descriptor to allow passing between processes, subsystems, devices,
18+
etc;
19+
- dma-fence, providing a mechanism to signal when an asynchronous
20+
hardware operation has completed; and
21+
- dma-resv, which manages a set of dma-fences for a particular dma-buf
22+
allowing implicit (kernel-ordered) synchronization of work to
23+
preserve the illusion of coherent access
24+
25+
26+
Userspace API principles and use
27+
--------------------------------
28+
29+
For more details on how to design your subsystem's API for dma-buf use, please
30+
see Documentation/userspace-api/dma-buf-alloc-exchange.rst.
31+
1632

1733
Shared DMA Buffers
1834
------------------

Documentation/gpu/drm-uapi.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,3 +486,10 @@ and the CRTC index is its position in this array.
486486

487487
.. kernel-doc:: include/uapi/drm/drm_mode.h
488488
:internal:
489+
490+
491+
dma-buf interoperability
492+
========================
493+
494+
Please see Documentation/userspace-api/dma-buf-alloc-exchange.rst for
495+
information on how dma-buf is integrated and exposed within DRM.

Documentation/gpu/rfc/xe.rst

Lines changed: 43 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,8 @@ platforms.
6767

6868
When the time comes for Xe, the protection will be lifted on Xe and kept in i915.
6969

70-
Xe driver will be protected with both STAGING Kconfig and force_probe. Changes in
71-
the uAPI are expected while the driver is behind these protections. STAGING will
72-
be removed when the driver uAPI gets to a mature state where we can guarantee the
73-
‘no regression’ rule. Then force_probe will be lifted only for future platforms
74-
that will be productized with Xe driver, but not with i915.
75-
76-
Xe – Pre-Merge Goals
77-
====================
70+
Xe – Pre-Merge Goals - Work-in-Progress
71+
=======================================
7872

7973
Drm_scheduler
8074
-------------
@@ -94,41 +88,6 @@ depend on any other patch touching drm_scheduler itself that was not yet merged
9488
through drm-misc. This, by itself, already includes the reach of an agreement for
9589
uniform 1 to 1 relationship implementation / usage across drivers.
9690

97-
GPU VA
98-
------
99-
Two main goals of Xe are meeting together here:
100-
101-
1) Have an uAPI that aligns with modern UMD needs.
102-
103-
2) Early upstream engagement.
104-
105-
RedHat engineers working on Nouveau proposed a new DRM feature to handle keeping
106-
track of GPU virtual address mappings. This is still not merged upstream, but
107-
this aligns very well with our goals and with our VM_BIND. The engagement with
108-
upstream and the port of Xe towards GPUVA is already ongoing.
109-
110-
As a key measurable result, Xe needs to be aligned with the GPU VA and working in
111-
our tree. Missing Nouveau patches should *not* block Xe and any needed GPUVA
112-
related patch should be independent and present on dri-devel or acked by
113-
maintainers to go along with the first Xe pull request towards drm-next.
114-
115-
DRM_VM_BIND
116-
-----------
117-
Nouveau, and Xe are all implementing ‘VM_BIND’ and new ‘Exec’ uAPIs in order to
118-
fulfill the needs of the modern uAPI. Xe merge should *not* be blocked on the
119-
development of a common new drm_infrastructure. However, the Xe team needs to
120-
engage with the community to explore the options of a common API.
121-
122-
As a key measurable result, the DRM_VM_BIND needs to be documented in this file
123-
below, or this entire block deleted if the consensus is for independent drivers
124-
vm_bind ioctls.
125-
126-
Although having a common DRM level IOCTL for VM_BIND is not a requirement to get
127-
Xe merged, it is mandatory to enforce the overall locking scheme for all major
128-
structs and list (so vm and vma). So, a consensus is needed, and possibly some
129-
common helpers. If helpers are needed, they should be also documented in this
130-
document.
131-
13291
ASYNC VM_BIND
13392
-------------
13493
Although having a common DRM level IOCTL for VM_BIND is not a requirement to get
@@ -212,6 +171,14 @@ This item ties into the GPUVA, VM_BIND, and even long-running compute support.
212171
As a key measurable result, we need to have a community consensus documented in
213172
this document and the Xe driver prepared for the changes, if necessary.
214173

174+
Xe – uAPI high level overview
175+
=============================
176+
177+
...Warning: To be done in follow up patches after/when/where the main consensus in various items are individually reached.
178+
179+
Xe – Pre-Merge Goals - Completed
180+
================================
181+
215182
Dev_coredump
216183
------------
217184

@@ -229,7 +196,37 @@ infrastructure with overall possible improvements, like multiple file support
229196
for better organization of the dumps, snapshot support, dmesg extra print,
230197
and whatever may make sense and help the overall infrastructure.
231198

232-
Xe – uAPI high level overview
233-
=============================
199+
DRM_VM_BIND
200+
-----------
201+
Nouveau, and Xe are all implementing ‘VM_BIND’ and new ‘Exec’ uAPIs in order to
202+
fulfill the needs of the modern uAPI. Xe merge should *not* be blocked on the
203+
development of a common new drm_infrastructure. However, the Xe team needs to
204+
engage with the community to explore the options of a common API.
234205

235-
...Warning: To be done in follow up patches after/when/where the main consensus in various items are individually reached.
206+
As a key measurable result, the DRM_VM_BIND needs to be documented in this file
207+
below, or this entire block deleted if the consensus is for independent drivers
208+
vm_bind ioctls.
209+
210+
Although having a common DRM level IOCTL for VM_BIND is not a requirement to get
211+
Xe merged, it is mandatory to enforce the overall locking scheme for all major
212+
structs and list (so vm and vma). So, a consensus is needed, and possibly some
213+
common helpers. If helpers are needed, they should be also documented in this
214+
document.
215+
216+
GPU VA
217+
------
218+
Two main goals of Xe are meeting together here:
219+
220+
1) Have an uAPI that aligns with modern UMD needs.
221+
222+
2) Early upstream engagement.
223+
224+
RedHat engineers working on Nouveau proposed a new DRM feature to handle keeping
225+
track of GPU virtual address mappings. This is still not merged upstream, but
226+
this aligns very well with our goals and with our VM_BIND. The engagement with
227+
upstream and the port of Xe towards GPUVA is already ongoing.
228+
229+
As a key measurable result, Xe needs to be aligned with the GPU VA and working in
230+
our tree. Missing Nouveau patches should *not* block Xe and any needed GPUVA
231+
related patch should be independent and present on dri-devel or acked by
232+
maintainers to go along with the first Xe pull request towards drm-next.

0 commit comments

Comments
 (0)