Skip to content

Commit e11c70c

Browse files
committed
Merge tag 'drm-misc-next-2025-05-12' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
drm-misc-next for v6.16-rc1: Once more, with async flips. UAPI Changes: - Add IN_FORMATS_ASYNC property, use in i915. Cross-subsystem Changes: - Remove some unused debug code in dma-buf. Core Changes: Driver Changes: - Add Novatek NT37801 panel. - Allow submitting empty commands in amdxdna. - Convert cirrus to use managed request_all_regions. - Move Sitronix from tiny to their own place. Signed-off-by: Dave Airlie <[email protected]> From: Maarten Lankhorst <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2 parents 1faeeb3 + 9b8f320 commit e11c70c

29 files changed

+699
-196
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
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/novatek,nt37801.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Novatek NT37801 AMOLED DSI Panel
8+
9+
maintainers:
10+
- Krzysztof Kozlowski <[email protected]>
11+
12+
description:
13+
Naming is inconclusive and different sources claim this is either Novatek
14+
NT37801 or NT37810 AMOLED DSI Panel.
15+
16+
allOf:
17+
- $ref: panel-common.yaml#
18+
19+
properties:
20+
compatible:
21+
const: novatek,nt37801
22+
23+
reg:
24+
maxItems: 1
25+
description: DSI virtual channel
26+
27+
vci-supply: true
28+
vdd-supply: true
29+
vddio-supply: true
30+
port: true
31+
reset-gpios: true
32+
33+
required:
34+
- compatible
35+
- reg
36+
- vci-supply
37+
- vdd-supply
38+
- vddio-supply
39+
- port
40+
- reset-gpios
41+
42+
additionalProperties: false
43+
44+
examples:
45+
- |
46+
#include <dt-bindings/gpio/gpio.h>
47+
48+
dsi {
49+
#address-cells = <1>;
50+
#size-cells = <0>;
51+
52+
panel@0 {
53+
compatible = "novatek,nt37801";
54+
reg = <0>;
55+
56+
vci-supply = <&vreg_l13b_3p0>;
57+
vdd-supply = <&vreg_l11b_1p2>;
58+
vddio-supply = <&vreg_l12b_1p8>;
59+
60+
reset-gpios = <&tlmm 98 GPIO_ACTIVE_LOW>;
61+
62+
port {
63+
endpoint {
64+
remote-endpoint = <&dsi0_out>;
65+
};
66+
};
67+
};
68+
};
69+
...
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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/truly,nt35597-2K-display.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Truly NT35597 DSI 2K display
8+
9+
maintainers:
10+
- Neil Armstrong <[email protected]>
11+
12+
description: |
13+
Truly NT35597 DSI 2K display is used on the Qualcomm SDM845 MTP board.
14+
15+
allOf:
16+
- $ref: panel-common-dual.yaml#
17+
18+
properties:
19+
compatible:
20+
const: truly,nt35597-2K-display
21+
22+
reg:
23+
maxItems: 1
24+
25+
vdda-supply:
26+
description: regulator that provides the supply voltage Power IC supply
27+
28+
vdispp-supply:
29+
description: regulator that provides the supply voltage for positive LCD bias
30+
31+
vdispn-supply:
32+
description: regulator that provides the supply voltage for negative LCD bias
33+
34+
reset-gpios: true
35+
36+
mode-gpios:
37+
description:
38+
Gpio for choosing the mode of the display for single DSI or Dual DSI.
39+
This should be low for dual DSI and high for single DSI mode.
40+
41+
ports:
42+
required:
43+
- port@0
44+
- port@1
45+
46+
required:
47+
- compatible
48+
- reg
49+
- vdda-supply
50+
- reset-gpios
51+
- mode-gpios
52+
- ports
53+
54+
additionalProperties: false
55+
56+
examples:
57+
- |
58+
#include <dt-bindings/gpio/gpio.h>
59+
60+
dsi {
61+
#address-cells = <1>;
62+
#size-cells = <0>;
63+
64+
panel@0 {
65+
compatible = "truly,nt35597-2K-display";
66+
reg = <0>;
67+
68+
vdda-supply = <&pm8998_l14>;
69+
vdispp-supply = <&lab_regulator>;
70+
vdispn-supply = <&ibb_regulator>;
71+
72+
reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
73+
mode-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
74+
75+
ports {
76+
#address-cells = <1>;
77+
#size-cells = <0>;
78+
79+
port@0 {
80+
reg = <0>;
81+
82+
panel0_in: endpoint {
83+
remote-endpoint = <&dsi0_out>;
84+
};
85+
};
86+
87+
port@1 {
88+
reg = <1>;
89+
90+
panel1_in: endpoint {
91+
remote-endpoint = <&dsi1_out>;
92+
};
93+
};
94+
};
95+
};
96+
};
97+
...

Documentation/devicetree/bindings/display/truly,nt35597.txt

Lines changed: 0 additions & 59 deletions
This file was deleted.

MAINTAINERS

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7574,6 +7574,12 @@ T: git https://gitlab.freedesktop.org/drm/misc/kernel.git
75747574
F: Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml
75757575
F: drivers/gpu/drm/panel/panel-novatek-nt36672a.c
75767576

7577+
DRM DRIVER FOR NOVATEK NT37801 PANELS
7578+
M: Krzysztof Kozlowski <[email protected]>
7579+
S: Maintained
7580+
F: Documentation/devicetree/bindings/display/panel/novatek,nt37801.yaml
7581+
F: drivers/gpu/drm/panel/panel-novatek-nt37801.c
7582+
75777583
DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS
75787584
M: Lyude Paul <[email protected]>
75797585
M: Danilo Krummrich <[email protected]>
@@ -7689,13 +7695,13 @@ M: David Lechner <[email protected]>
76897695
S: Maintained
76907696
T: git https://gitlab.freedesktop.org/drm/misc/kernel.git
76917697
F: Documentation/devicetree/bindings/display/sitronix,st7586.txt
7692-
F: drivers/gpu/drm/tiny/st7586.c
7698+
F: drivers/gpu/drm/sitronix/st7586.c
76937699

76947700
DRM DRIVER FOR SITRONIX ST7571 PANELS
76957701
M: Marcus Folkesson <[email protected]>
76967702
S: Maintained
76977703
F: Documentation/devicetree/bindings/display/sitronix,st7571.yaml
7698-
F: drivers/gpu/drm/tiny/st7571-i2c.c
7704+
F: drivers/gpu/drm/sitronix/st7571-i2c.c
76997705

77007706
DRM DRIVER FOR SITRONIX ST7701 PANELS
77017707
M: Jagan Teki <[email protected]>
@@ -7716,7 +7722,7 @@ M: David Lechner <[email protected]>
77167722
S: Maintained
77177723
T: git https://gitlab.freedesktop.org/drm/misc/kernel.git
77187724
F: Documentation/devicetree/bindings/display/sitronix,st7735r.yaml
7719-
F: drivers/gpu/drm/tiny/st7735r.c
7725+
F: drivers/gpu/drm/sitronix/st7735r.c
77207726

77217727
DRM DRIVER FOR SOLOMON SSD130X OLED DISPLAYS
77227728
M: Javier Martinez Canillas <[email protected]>

drivers/accel/amdxdna/amdxdna_ctx.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -496,11 +496,11 @@ static int amdxdna_drm_submit_execbuf(struct amdxdna_client *client,
496496
struct amdxdna_drm_exec_cmd *args)
497497
{
498498
struct amdxdna_dev *xdna = client->xdna;
499-
u32 *arg_bo_hdls;
499+
u32 *arg_bo_hdls = NULL;
500500
u32 cmd_bo_hdl;
501501
int ret;
502502

503-
if (!args->arg_count || args->arg_count > MAX_ARG_COUNT) {
503+
if (args->arg_count > MAX_ARG_COUNT) {
504504
XDNA_ERR(xdna, "Invalid arg bo count %d", args->arg_count);
505505
return -EINVAL;
506506
}
@@ -512,14 +512,16 @@ static int amdxdna_drm_submit_execbuf(struct amdxdna_client *client,
512512
}
513513

514514
cmd_bo_hdl = (u32)args->cmd_handles;
515-
arg_bo_hdls = kcalloc(args->arg_count, sizeof(u32), GFP_KERNEL);
516-
if (!arg_bo_hdls)
517-
return -ENOMEM;
518-
ret = copy_from_user(arg_bo_hdls, u64_to_user_ptr(args->args),
519-
args->arg_count * sizeof(u32));
520-
if (ret) {
521-
ret = -EFAULT;
522-
goto free_cmd_bo_hdls;
515+
if (args->arg_count) {
516+
arg_bo_hdls = kcalloc(args->arg_count, sizeof(u32), GFP_KERNEL);
517+
if (!arg_bo_hdls)
518+
return -ENOMEM;
519+
ret = copy_from_user(arg_bo_hdls, u64_to_user_ptr(args->args),
520+
args->arg_count * sizeof(u32));
521+
if (ret) {
522+
ret = -EFAULT;
523+
goto free_cmd_bo_hdls;
524+
}
523525
}
524526

525527
ret = amdxdna_cmd_submit(client, cmd_bo_hdl, arg_bo_hdls,

drivers/dma-buf/sync_debug.c

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ static struct dentry *dbgfs;
1212

1313
static LIST_HEAD(sync_timeline_list_head);
1414
static DEFINE_SPINLOCK(sync_timeline_list_lock);
15-
static LIST_HEAD(sync_file_list_head);
16-
static DEFINE_SPINLOCK(sync_file_list_lock);
1715

1816
void sync_timeline_debug_add(struct sync_timeline *obj)
1917
{
@@ -33,24 +31,6 @@ void sync_timeline_debug_remove(struct sync_timeline *obj)
3331
spin_unlock_irqrestore(&sync_timeline_list_lock, flags);
3432
}
3533

36-
void sync_file_debug_add(struct sync_file *sync_file)
37-
{
38-
unsigned long flags;
39-
40-
spin_lock_irqsave(&sync_file_list_lock, flags);
41-
list_add_tail(&sync_file->sync_file_list, &sync_file_list_head);
42-
spin_unlock_irqrestore(&sync_file_list_lock, flags);
43-
}
44-
45-
void sync_file_debug_remove(struct sync_file *sync_file)
46-
{
47-
unsigned long flags;
48-
49-
spin_lock_irqsave(&sync_file_list_lock, flags);
50-
list_del(&sync_file->sync_file_list);
51-
spin_unlock_irqrestore(&sync_file_list_lock, flags);
52-
}
53-
5434
static const char *sync_status_str(int status)
5535
{
5636
if (status < 0)
@@ -101,26 +81,6 @@ static void sync_print_obj(struct seq_file *s, struct sync_timeline *obj)
10181
spin_unlock(&obj->lock);
10282
}
10383

104-
static void sync_print_sync_file(struct seq_file *s,
105-
struct sync_file *sync_file)
106-
{
107-
char buf[128];
108-
int i;
109-
110-
seq_printf(s, "[%p] %s: %s\n", sync_file,
111-
sync_file_get_name(sync_file, buf, sizeof(buf)),
112-
sync_status_str(dma_fence_get_status(sync_file->fence)));
113-
114-
if (dma_fence_is_array(sync_file->fence)) {
115-
struct dma_fence_array *array = to_dma_fence_array(sync_file->fence);
116-
117-
for (i = 0; i < array->num_fences; ++i)
118-
sync_print_fence(s, array->fences[i], true);
119-
} else {
120-
sync_print_fence(s, sync_file->fence, true);
121-
}
122-
}
123-
12484
static int sync_info_debugfs_show(struct seq_file *s, void *unused)
12585
{
12686
struct list_head *pos;
@@ -140,15 +100,6 @@ static int sync_info_debugfs_show(struct seq_file *s, void *unused)
140100

141101
seq_puts(s, "fences:\n--------------\n");
142102

143-
spin_lock_irq(&sync_file_list_lock);
144-
list_for_each(pos, &sync_file_list_head) {
145-
struct sync_file *sync_file =
146-
container_of(pos, struct sync_file, sync_file_list);
147-
148-
sync_print_sync_file(s, sync_file);
149-
seq_putc(s, '\n');
150-
}
151-
spin_unlock_irq(&sync_file_list_lock);
152103
return 0;
153104
}
154105

drivers/dma-buf/sync_debug.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,5 @@ extern const struct file_operations sw_sync_debugfs_fops;
6868

6969
void sync_timeline_debug_add(struct sync_timeline *obj);
7070
void sync_timeline_debug_remove(struct sync_timeline *obj);
71-
void sync_file_debug_add(struct sync_file *fence);
72-
void sync_file_debug_remove(struct sync_file *fence);
7371

7472
#endif /* _LINUX_SYNC_H */

drivers/gpu/drm/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,8 @@ source "drivers/gpu/drm/xlnx/Kconfig"
385385

386386
source "drivers/gpu/drm/gud/Kconfig"
387387

388+
source "drivers/gpu/drm/sitronix/Kconfig"
389+
388390
source "drivers/gpu/drm/solomon/Kconfig"
389391

390392
source "drivers/gpu/drm/sprd/Kconfig"

0 commit comments

Comments
 (0)