Skip to content

Commit 09b020b

Browse files
committed
Merge tag 'drm-misc-next-2021-06-09' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for 5.14: UAPI Changes: * drm/panfrost: Export AFBC_FEATURES register to userspace Cross-subsystem Changes: * dma-buf: Fix debug printing; Rename dma_resv_*() functions + changes in callers; Cleanups Core Changes: * Add prefetching memcpy for WC * Avoid circular dependency on CONFIG_FB * Cleanups * Documentation fixes throughout DRM * ttm: Make struct ttm_resource the base of all managers + changes in all users of TTM; Add a generic memcpy for page-based iomem; Remove use of VM_MIXEDMAP; Cleanups Driver Changes: * drm/bridge: Add TI SN65DSI83 and SN65DSI84 + DT bindings * drm/hyperv: Add DRM driver for HyperV graphics output * drm/msm: Fix module dependencies * drm/panel: KD53T133: Support rotation * drm/pl111: Fix module dependencies * drm/qxl: Fixes * drm/stm: Cleanups * drm/sun4i: Be explicit about format modifiers * drm/vc4: Use struct gpio_desc; Cleanups * drm/vgem: Cleanups * drm/vmwgfx: Use ttm_bo_move_null() if there's nothing to copy * fbdev/mach64: Cleanups * fbdev/mb862xx: Use DEVICE_ATTR_RO Signed-off-by: Dave Airlie <[email protected]> From: Thomas Zimmermann <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/YMBw3DF2b9udByfT@linux-uq9g
2 parents 5745d64 + 5b7a2c9 commit 09b020b

File tree

154 files changed

+3851
-1261
lines changed

Some content is hidden

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

154 files changed

+3851
-1261
lines changed
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi83.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: SN65DSI83 and SN65DSI84 DSI to LVDS bridge chip
8+
9+
maintainers:
10+
- Marek Vasut <[email protected]>
11+
12+
description: |
13+
Texas Instruments SN65DSI83 1x Single-link MIPI DSI
14+
to 1x Single-link LVDS
15+
https://www.ti.com/lit/gpn/sn65dsi83
16+
Texas Instruments SN65DSI84 1x Single-link MIPI DSI
17+
to 1x Dual-link or 2x Single-link LVDS
18+
https://www.ti.com/lit/gpn/sn65dsi84
19+
20+
properties:
21+
compatible:
22+
enum:
23+
- ti,sn65dsi83
24+
- ti,sn65dsi84
25+
26+
reg:
27+
enum:
28+
- 0x2c
29+
- 0x2d
30+
31+
enable-gpios:
32+
maxItems: 1
33+
description: GPIO specifier for bridge_en pin (active high).
34+
35+
ports:
36+
$ref: /schemas/graph.yaml#/properties/ports
37+
38+
properties:
39+
port@0:
40+
$ref: /schemas/graph.yaml#/properties/port
41+
description: Video port for MIPI DSI Channel-A input
42+
43+
properties:
44+
endpoint:
45+
$ref: /schemas/media/video-interfaces.yaml#
46+
unevaluatedProperties: false
47+
48+
properties:
49+
data-lanes:
50+
description: array of physical DSI data lane indexes.
51+
minItems: 1
52+
maxItems: 4
53+
items:
54+
- const: 1
55+
- const: 2
56+
- const: 3
57+
- const: 4
58+
59+
port@1:
60+
$ref: /schemas/graph.yaml#/properties/port
61+
description: Video port for MIPI DSI Channel-B input
62+
63+
properties:
64+
endpoint:
65+
$ref: /schemas/media/video-interfaces.yaml#
66+
unevaluatedProperties: false
67+
68+
properties:
69+
data-lanes:
70+
description: array of physical DSI data lane indexes.
71+
minItems: 1
72+
maxItems: 4
73+
items:
74+
- const: 1
75+
- const: 2
76+
- const: 3
77+
- const: 4
78+
79+
port@2:
80+
$ref: /schemas/graph.yaml#/properties/port
81+
description: Video port for LVDS Channel-A output (panel or bridge).
82+
83+
port@3:
84+
$ref: /schemas/graph.yaml#/properties/port
85+
description: Video port for LVDS Channel-B output (panel or bridge).
86+
87+
required:
88+
- port@0
89+
- port@2
90+
91+
required:
92+
- compatible
93+
- reg
94+
- enable-gpios
95+
- ports
96+
97+
allOf:
98+
- if:
99+
properties:
100+
compatible:
101+
contains:
102+
const: ti,sn65dsi83
103+
then:
104+
properties:
105+
ports:
106+
properties:
107+
port@1: false
108+
port@3: false
109+
110+
- if:
111+
properties:
112+
compatible:
113+
contains:
114+
const: ti,sn65dsi84
115+
then:
116+
properties:
117+
ports:
118+
properties:
119+
port@1: false
120+
121+
additionalProperties: false
122+
123+
examples:
124+
- |
125+
#include <dt-bindings/gpio/gpio.h>
126+
127+
i2c {
128+
#address-cells = <1>;
129+
#size-cells = <0>;
130+
131+
bridge@2d {
132+
compatible = "ti,sn65dsi83";
133+
reg = <0x2d>;
134+
135+
enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
136+
137+
ports {
138+
#address-cells = <1>;
139+
#size-cells = <0>;
140+
141+
port@0 {
142+
reg = <0>;
143+
144+
endpoint {
145+
remote-endpoint = <&dsi0_out>;
146+
data-lanes = <1 2 3 4>;
147+
};
148+
};
149+
150+
port@2 {
151+
reg = <2>;
152+
153+
endpoint {
154+
remote-endpoint = <&panel_in_lvds>;
155+
};
156+
};
157+
};
158+
};
159+
};

Documentation/driver-api/dma-buf.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,15 @@ DMA Fence Array
178178
.. kernel-doc:: include/linux/dma-fence-array.h
179179
:internal:
180180

181+
DMA Fence Chain
182+
~~~~~~~~~~~~~~~
183+
184+
.. kernel-doc:: drivers/dma-buf/dma-fence-chain.c
185+
:export:
186+
187+
.. kernel-doc:: include/linux/dma-fence-chain.h
188+
:internal:
189+
181190
DMA Fence uABI/Sync File
182191
~~~~~~~~~~~~~~~~~~~~~~~~
183192

Documentation/gpu/drm-mm.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,8 +469,8 @@ DRM MM Range Allocator Function References
469469
.. kernel-doc:: drivers/gpu/drm/drm_mm.c
470470
:export:
471471

472-
DRM Cache Handling
473-
==================
472+
DRM Cache Handling and Fast WC memcpy()
473+
=======================================
474474

475475
.. kernel-doc:: drivers/gpu/drm/drm_cache.c
476476
:export:

MAINTAINERS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6084,6 +6084,14 @@ T: git git://anongit.freedesktop.org/drm/drm-misc
60846084
F: Documentation/devicetree/bindings/display/hisilicon/
60856085
F: drivers/gpu/drm/hisilicon/
60866086

6087+
DRM DRIVER FOR HYPERV SYNTHETIC VIDEO DEVICE
6088+
M: Deepak Rawat <[email protected]>
6089+
6090+
6091+
S: Maintained
6092+
T: git git://anongit.freedesktop.org/drm/drm-misc
6093+
F: drivers/gpu/drm/hyperv
6094+
60876095
DRM DRIVERS FOR LIMA
60886096
M: Qiang Yu <[email protected]>
60896097

drivers/dma-buf/dma-buf.c

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ static __poll_t dma_buf_poll(struct file *file, poll_table *poll)
234234
shared_count = fobj->shared_count;
235235
else
236236
shared_count = 0;
237-
fence_excl = rcu_dereference(resv->fence_excl);
237+
fence_excl = dma_resv_excl_fence(resv);
238238
if (read_seqcount_retry(&resv->seq, seq)) {
239239
rcu_read_unlock();
240240
goto retry;
@@ -1147,8 +1147,7 @@ static int __dma_buf_begin_cpu_access(struct dma_buf *dmabuf,
11471147
long ret;
11481148

11491149
/* Wait on any implicit rendering fences */
1150-
ret = dma_resv_wait_timeout_rcu(resv, write, true,
1151-
MAX_SCHEDULE_TIMEOUT);
1150+
ret = dma_resv_wait_timeout(resv, write, true, MAX_SCHEDULE_TIMEOUT);
11521151
if (ret < 0)
11531152
return ret;
11541153

@@ -1349,15 +1348,14 @@ EXPORT_SYMBOL_GPL(dma_buf_vunmap);
13491348
#ifdef CONFIG_DEBUG_FS
13501349
static int dma_buf_debug_show(struct seq_file *s, void *unused)
13511350
{
1352-
int ret;
13531351
struct dma_buf *buf_obj;
13541352
struct dma_buf_attachment *attach_obj;
13551353
struct dma_resv *robj;
13561354
struct dma_resv_list *fobj;
13571355
struct dma_fence *fence;
1358-
unsigned seq;
13591356
int count = 0, attach_count, shared_count, i;
13601357
size_t size = 0;
1358+
int ret;
13611359

13621360
ret = mutex_lock_interruptible(&db_list.lock);
13631361

@@ -1383,33 +1381,24 @@ static int dma_buf_debug_show(struct seq_file *s, void *unused)
13831381
buf_obj->name ?: "");
13841382

13851383
robj = buf_obj->resv;
1386-
while (true) {
1387-
seq = read_seqcount_begin(&robj->seq);
1388-
rcu_read_lock();
1389-
fobj = rcu_dereference(robj->fence);
1390-
shared_count = fobj ? fobj->shared_count : 0;
1391-
fence = rcu_dereference(robj->fence_excl);
1392-
if (!read_seqcount_retry(&robj->seq, seq))
1393-
break;
1394-
rcu_read_unlock();
1395-
}
1396-
1384+
fence = dma_resv_excl_fence(robj);
13971385
if (fence)
13981386
seq_printf(s, "\tExclusive fence: %s %s %ssignalled\n",
13991387
fence->ops->get_driver_name(fence),
14001388
fence->ops->get_timeline_name(fence),
14011389
dma_fence_is_signaled(fence) ? "" : "un");
1390+
1391+
fobj = rcu_dereference_protected(robj->fence,
1392+
dma_resv_held(robj));
1393+
shared_count = fobj ? fobj->shared_count : 0;
14021394
for (i = 0; i < shared_count; i++) {
1403-
fence = rcu_dereference(fobj->shared[i]);
1404-
if (!dma_fence_get_rcu(fence))
1405-
continue;
1395+
fence = rcu_dereference_protected(fobj->shared[i],
1396+
dma_resv_held(robj));
14061397
seq_printf(s, "\tShared fence: %s %s %ssignalled\n",
14071398
fence->ops->get_driver_name(fence),
14081399
fence->ops->get_timeline_name(fence),
14091400
dma_fence_is_signaled(fence) ? "" : "un");
1410-
dma_fence_put(fence);
14111401
}
1412-
rcu_read_unlock();
14131402

14141403
seq_puts(s, "\tAttached Devices:\n");
14151404
attach_count = 0;

0 commit comments

Comments
 (0)