Skip to content

Commit b26ca73

Browse files
committed
Merge tag 'drm-misc-next-2023-11-23' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for 6.8: UAPI Changes: Cross-subsystem Changes: Core Changes: - Drop deprecated drm_kms_helper.edid_firmware module parameter Driver Changes: - Convert platform drivers remove callback to return void - imagination: Introduction of the Imagination GPU Support - rockchip: - rk3066_hdmi: Convert to atomic - vop2: Support NV20 and NV30 - panel: - elida-kd35t133: PM reworks - New panels: Powkiddy RK2023 Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> From: Maxime Ripard <mripard@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/drzvrbsej2txf6a6npc4ukkpadj3wio7edkjbgsfdm4l33szpe@fgwtdy5z5ev7
2 parents c79b972 + 815d8b0 commit b26ca73

115 files changed

Lines changed: 34629 additions & 201 deletions

File tree

Some content is hidden

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

Documentation/devicetree/bindings/display/panel/newvision,nv3051d.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ properties:
2121
- enum:
2222
- anbernic,rg351v-panel
2323
- anbernic,rg353p-panel
24-
- anbernic,rg353v-panel
24+
- powkiddy,rk2023-panel
2525
- const: newvision,nv3051d
2626

2727
reg: true
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
# Copyright (c) 2023 Imagination Technologies Ltd.
3+
%YAML 1.2
4+
---
5+
$id: http://devicetree.org/schemas/gpu/img,powervr.yaml#
6+
$schema: http://devicetree.org/meta-schemas/core.yaml#
7+
8+
title: Imagination Technologies PowerVR and IMG GPU
9+
10+
maintainers:
11+
- Frank Binns <frank.binns@imgtec.com>
12+
13+
properties:
14+
compatible:
15+
items:
16+
- enum:
17+
- ti,am62-gpu
18+
- const: img,img-axe # IMG AXE GPU model/revision is fully discoverable
19+
20+
reg:
21+
maxItems: 1
22+
23+
clocks:
24+
minItems: 1
25+
maxItems: 3
26+
27+
clock-names:
28+
items:
29+
- const: core
30+
- const: mem
31+
- const: sys
32+
minItems: 1
33+
34+
interrupts:
35+
maxItems: 1
36+
37+
power-domains:
38+
maxItems: 1
39+
40+
required:
41+
- compatible
42+
- reg
43+
- clocks
44+
- clock-names
45+
- interrupts
46+
47+
additionalProperties: false
48+
49+
allOf:
50+
- if:
51+
properties:
52+
compatible:
53+
contains:
54+
const: ti,am62-gpu
55+
then:
56+
properties:
57+
clocks:
58+
maxItems: 1
59+
60+
examples:
61+
- |
62+
#include <dt-bindings/interrupt-controller/irq.h>
63+
#include <dt-bindings/interrupt-controller/arm-gic.h>
64+
#include <dt-bindings/soc/ti,sci_pm_domain.h>
65+
66+
gpu@fd00000 {
67+
compatible = "ti,am62-gpu", "img,img-axe";
68+
reg = <0x0fd00000 0x20000>;
69+
clocks = <&k3_clks 187 0>;
70+
clock-names = "core";
71+
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
72+
power-domains = <&k3_pds 187 TI_SCI_PD_EXCLUSIVE>;
73+
};

Documentation/gpu/drivers.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ GPU Driver Documentation
33
========================
44

55
.. toctree::
6+
:maxdepth: 3
67

78
amdgpu/index
89
i915
10+
imagination/index
911
mcde
1012
meson
1113
pl111
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
=======================================
2+
drm/imagination PowerVR Graphics Driver
3+
=======================================
4+
5+
.. kernel-doc:: drivers/gpu/drm/imagination/pvr_drv.c
6+
:doc: PowerVR Graphics Driver
7+
8+
Contents
9+
========
10+
.. toctree::
11+
:maxdepth: 2
12+
13+
uapi
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
====
2+
UAPI
3+
====
4+
The sources associated with this section can be found in ``pvr_drm.h``.
5+
6+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
7+
:doc: PowerVR UAPI
8+
9+
OBJECT ARRAYS
10+
=============
11+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
12+
:identifiers: drm_pvr_obj_array
13+
14+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
15+
:identifiers: DRM_PVR_OBJ_ARRAY
16+
17+
IOCTLS
18+
======
19+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
20+
:doc: PowerVR IOCTL interface
21+
22+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
23+
:identifiers: PVR_IOCTL
24+
25+
DEV_QUERY
26+
---------
27+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
28+
:doc: PowerVR IOCTL DEV_QUERY interface
29+
30+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
31+
:identifiers: drm_pvr_dev_query
32+
33+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
34+
:identifiers: drm_pvr_ioctl_dev_query_args
35+
36+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
37+
:identifiers: drm_pvr_dev_query_gpu_info
38+
drm_pvr_dev_query_runtime_info
39+
drm_pvr_dev_query_hwrt_info
40+
drm_pvr_dev_query_quirks
41+
drm_pvr_dev_query_enhancements
42+
43+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
44+
:identifiers: drm_pvr_heap_id
45+
drm_pvr_heap
46+
drm_pvr_dev_query_heap_info
47+
48+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
49+
:doc: Flags for DRM_PVR_DEV_QUERY_HEAP_INFO_GET.
50+
51+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
52+
:identifiers: drm_pvr_static_data_area_usage
53+
drm_pvr_static_data_area
54+
drm_pvr_dev_query_static_data_areas
55+
56+
CREATE_BO
57+
---------
58+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
59+
:doc: PowerVR IOCTL CREATE_BO interface
60+
61+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
62+
:identifiers: drm_pvr_ioctl_create_bo_args
63+
64+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
65+
:doc: Flags for CREATE_BO
66+
67+
GET_BO_MMAP_OFFSET
68+
------------------
69+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
70+
:doc: PowerVR IOCTL GET_BO_MMAP_OFFSET interface
71+
72+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
73+
:identifiers: drm_pvr_ioctl_get_bo_mmap_offset_args
74+
75+
CREATE_VM_CONTEXT and DESTROY_VM_CONTEXT
76+
----------------------------------------
77+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
78+
:doc: PowerVR IOCTL CREATE_VM_CONTEXT and DESTROY_VM_CONTEXT interfaces
79+
80+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
81+
:identifiers: drm_pvr_ioctl_create_vm_context_args
82+
drm_pvr_ioctl_destroy_vm_context_args
83+
84+
VM_MAP and VM_UNMAP
85+
-------------------
86+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
87+
:doc: PowerVR IOCTL VM_MAP and VM_UNMAP interfaces
88+
89+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
90+
:identifiers: drm_pvr_ioctl_vm_map_args
91+
drm_pvr_ioctl_vm_unmap_args
92+
93+
CREATE_CONTEXT and DESTROY_CONTEXT
94+
----------------------------------
95+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
96+
:doc: PowerVR IOCTL CREATE_CONTEXT and DESTROY_CONTEXT interfaces
97+
98+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
99+
:identifiers: drm_pvr_ioctl_create_context_args
100+
101+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
102+
:identifiers: drm_pvr_ctx_priority
103+
drm_pvr_ctx_type
104+
drm_pvr_static_render_context_state
105+
drm_pvr_static_render_context_state_format
106+
drm_pvr_reset_framework
107+
drm_pvr_reset_framework_format
108+
109+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
110+
:identifiers: drm_pvr_ioctl_destroy_context_args
111+
112+
CREATE_FREE_LIST and DESTROY_FREE_LIST
113+
--------------------------------------
114+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
115+
:doc: PowerVR IOCTL CREATE_FREE_LIST and DESTROY_FREE_LIST interfaces
116+
117+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
118+
:identifiers: drm_pvr_ioctl_create_free_list_args
119+
120+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
121+
:identifiers: drm_pvr_ioctl_destroy_free_list_args
122+
123+
CREATE_HWRT_DATASET and DESTROY_HWRT_DATASET
124+
--------------------------------------
125+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
126+
:doc: PowerVR IOCTL CREATE_HWRT_DATASET and DESTROY_HWRT_DATASET interfaces
127+
128+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
129+
:identifiers: drm_pvr_ioctl_create_hwrt_dataset_args
130+
131+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
132+
:identifiers: drm_pvr_create_hwrt_geom_data_args
133+
drm_pvr_create_hwrt_rt_data_args
134+
135+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
136+
:identifiers: drm_pvr_ioctl_destroy_hwrt_dataset_args
137+
138+
SUBMIT_JOBS
139+
-----------
140+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
141+
:doc: PowerVR IOCTL SUBMIT_JOBS interface
142+
143+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
144+
:doc: Flags for the drm_pvr_sync_op object.
145+
146+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
147+
:identifiers: drm_pvr_ioctl_submit_jobs_args
148+
149+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
150+
:doc: Flags for SUBMIT_JOB ioctl geometry command.
151+
152+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
153+
:doc: Flags for SUBMIT_JOB ioctl fragment command.
154+
155+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
156+
:doc: Flags for SUBMIT_JOB ioctl compute command.
157+
158+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
159+
:doc: Flags for SUBMIT_JOB ioctl transfer command.
160+
161+
.. kernel-doc:: include/uapi/drm/pvr_drm.h
162+
:identifiers: drm_pvr_sync_op
163+
drm_pvr_job_type
164+
drm_pvr_hwrt_data_ref
165+
drm_pvr_job
166+
167+
Internal notes
168+
==============
169+
.. kernel-doc:: drivers/gpu/drm/imagination/pvr_device.h
170+
:doc: IOCTL validation helpers
171+
172+
.. kernel-doc:: drivers/gpu/drm/imagination/pvr_device.h
173+
:identifiers: PVR_STATIC_ASSERT_64BIT_ALIGNED PVR_IOCTL_UNION_PADDING_CHECK
174+
pvr_ioctl_union_padding_check

MAINTAINERS

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10391,6 +10391,16 @@ IMGTEC IR DECODER DRIVER
1039110391
S: Orphan
1039210392
F: drivers/media/rc/img-ir/
1039310393

10394+
IMGTEC POWERVR DRM DRIVER
10395+
M: Frank Binns <frank.binns@imgtec.com>
10396+
M: Donald Robson <donald.robson@imgtec.com>
10397+
M: Matt Coster <matt.coster@imgtec.com>
10398+
S: Supported
10399+
F: Documentation/devicetree/bindings/gpu/img,powervr.yaml
10400+
F: Documentation/gpu/imagination/
10401+
F: drivers/gpu/drm/imagination/
10402+
F: include/uapi/drm/pvr_drm.h
10403+
1039410404
IMON SOUNDGRAPH USB IR RECEIVER
1039510405
M: Sean Young <sean@mess.org>
1039610406
L: linux-media@vger.kernel.org

drivers/accel/qaic/qaic_data.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ static int create_sgt(struct qaic_device *qdev, struct sg_table **sgt_out, u64 s
452452
* later
453453
*/
454454
buf_extra = (PAGE_SIZE - size % PAGE_SIZE) % PAGE_SIZE;
455-
max_order = min(MAX_ORDER - 1, get_order(size));
455+
max_order = min(MAX_ORDER, get_order(size));
456456
} else {
457457
/* allocate a single page for book keeping */
458458
nr_pages = 1;

drivers/dma-buf/dma-buf.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ static char *dmabuffs_dname(struct dentry *dentry, char *buffer, int buflen)
4646
{
4747
struct dma_buf *dmabuf;
4848
char name[DMA_BUF_NAME_LEN];
49-
size_t ret = 0;
49+
ssize_t ret = 0;
5050

5151
dmabuf = dentry->d_fsdata;
5252
spin_lock(&dmabuf->name_lock);
5353
if (dmabuf->name)
54-
ret = strlcpy(name, dmabuf->name, DMA_BUF_NAME_LEN);
54+
ret = strscpy(name, dmabuf->name, sizeof(name));
5555
spin_unlock(&dmabuf->name_lock);
5656

5757
return dynamic_dname(buffer, buflen, "/%s:%s",

drivers/gpu/drm/Kconfig

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

395395
source "drivers/gpu/drm/sprd/Kconfig"
396396

397+
source "drivers/gpu/drm/imagination/Kconfig"
398+
397399
config DRM_HYPERV
398400
tristate "DRM Support for Hyper-V synthetic video device"
399401
depends on DRM && PCI && MMU && HYPERV

drivers/gpu/drm/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,3 +199,4 @@ obj-$(CONFIG_DRM_HYPERV) += hyperv/
199199
obj-y += solomon/
200200
obj-$(CONFIG_DRM_SPRD) += sprd/
201201
obj-$(CONFIG_DRM_LOONGSON) += loongson/
202+
obj-$(CONFIG_DRM_POWERVR) += imagination/

0 commit comments

Comments
 (0)