xref: /aosp_15_r20/bionic/libc/kernel/uapi/drm/msm_drm.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef __MSM_DRM_H__
8*8d67ca89SAndroid Build Coastguard Worker #define __MSM_DRM_H__
9*8d67ca89SAndroid Build Coastguard Worker #include "drm.h"
10*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
11*8d67ca89SAndroid Build Coastguard Worker extern "C" {
12*8d67ca89SAndroid Build Coastguard Worker #endif
13*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_NONE 0x00
14*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_2D0 0x01
15*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_2D1 0x02
16*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_3D0 0x10
17*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_ID_MASK 0xffff
18*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_ID(x) ((x) & MSM_PIPE_ID_MASK)
19*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_FLAGS(x) ((x) & ~MSM_PIPE_ID_MASK)
20*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_timespec {
21*8d67ca89SAndroid Build Coastguard Worker   __s64 tv_sec;
22*8d67ca89SAndroid Build Coastguard Worker   __s64 tv_nsec;
23*8d67ca89SAndroid Build Coastguard Worker };
24*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_GPU_ID 0x01
25*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_GMEM_SIZE 0x02
26*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_CHIP_ID 0x03
27*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_MAX_FREQ 0x04
28*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_TIMESTAMP 0x05
29*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_GMEM_BASE 0x06
30*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_PRIORITIES 0x07
31*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_PP_PGTABLE 0x08
32*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_FAULTS 0x09
33*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_SUSPENDS 0x0a
34*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_SYSPROF 0x0b
35*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_COMM 0x0c
36*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_CMDLINE 0x0d
37*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_VA_START 0x0e
38*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_VA_SIZE 0x0f
39*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_HIGHEST_BANK_BIT 0x10
40*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_RAYTRACING 0x11
41*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES
42*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_param {
43*8d67ca89SAndroid Build Coastguard Worker   __u32 pipe;
44*8d67ca89SAndroid Build Coastguard Worker   __u32 param;
45*8d67ca89SAndroid Build Coastguard Worker   __u64 value;
46*8d67ca89SAndroid Build Coastguard Worker   __u32 len;
47*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
48*8d67ca89SAndroid Build Coastguard Worker };
49*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_SCANOUT 0x00000001
50*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_GPU_READONLY 0x00000002
51*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_CACHE_MASK 0x000f0000
52*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_CACHED 0x00010000
53*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_WC 0x00020000
54*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_UNCACHED 0x00040000
55*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_CACHED_COHERENT 0x080000
56*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHE_MASK)
57*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_new {
58*8d67ca89SAndroid Build Coastguard Worker   __u64 size;
59*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
60*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
61*8d67ca89SAndroid Build Coastguard Worker };
62*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_OFFSET 0x00
63*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_IOVA 0x01
64*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_SET_NAME 0x02
65*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_NAME 0x03
66*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_SET_IOVA 0x04
67*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_FLAGS 0x05
68*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_SET_METADATA 0x06
69*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_METADATA 0x07
70*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_info {
71*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
72*8d67ca89SAndroid Build Coastguard Worker   __u32 info;
73*8d67ca89SAndroid Build Coastguard Worker   __u64 value;
74*8d67ca89SAndroid Build Coastguard Worker   __u32 len;
75*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
76*8d67ca89SAndroid Build Coastguard Worker };
77*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_READ 0x01
78*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_WRITE 0x02
79*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_NOSYNC 0x04
80*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_BOOST 0x08
81*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_FLAGS (MSM_PREP_READ | MSM_PREP_WRITE | MSM_PREP_NOSYNC | MSM_PREP_BOOST | 0)
82*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_cpu_prep {
83*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
84*8d67ca89SAndroid Build Coastguard Worker   __u32 op;
85*8d67ca89SAndroid Build Coastguard Worker   struct drm_msm_timespec timeout;
86*8d67ca89SAndroid Build Coastguard Worker };
87*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_cpu_fini {
88*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
89*8d67ca89SAndroid Build Coastguard Worker };
90*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit_reloc {
91*8d67ca89SAndroid Build Coastguard Worker   __u32 submit_offset;
92*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
93*8d67ca89SAndroid Build Coastguard Worker   __u32 _or;
94*8d67ca89SAndroid Build Coastguard Worker #else
95*8d67ca89SAndroid Build Coastguard Worker   __u32 or;
96*8d67ca89SAndroid Build Coastguard Worker #endif
97*8d67ca89SAndroid Build Coastguard Worker   __s32 shift;
98*8d67ca89SAndroid Build Coastguard Worker   __u32 reloc_idx;
99*8d67ca89SAndroid Build Coastguard Worker   __u64 reloc_offset;
100*8d67ca89SAndroid Build Coastguard Worker };
101*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_CMD_BUF 0x0001
102*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_CMD_IB_TARGET_BUF 0x0002
103*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_CMD_CTX_RESTORE_BUF 0x0003
104*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit_cmd {
105*8d67ca89SAndroid Build Coastguard Worker   __u32 type;
106*8d67ca89SAndroid Build Coastguard Worker   __u32 submit_idx;
107*8d67ca89SAndroid Build Coastguard Worker   __u32 submit_offset;
108*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
109*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
110*8d67ca89SAndroid Build Coastguard Worker   __u32 nr_relocs;
111*8d67ca89SAndroid Build Coastguard Worker   __u64 relocs;
112*8d67ca89SAndroid Build Coastguard Worker };
113*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_READ 0x0001
114*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_WRITE 0x0002
115*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_DUMP 0x0004
116*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_NO_IMPLICIT 0x0008
117*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_FLAGS (MSM_SUBMIT_BO_READ | MSM_SUBMIT_BO_WRITE | MSM_SUBMIT_BO_DUMP | MSM_SUBMIT_BO_NO_IMPLICIT)
118*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit_bo {
119*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
120*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
121*8d67ca89SAndroid Build Coastguard Worker   __u64 presumed;
122*8d67ca89SAndroid Build Coastguard Worker };
123*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_NO_IMPLICIT 0x80000000
124*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_FENCE_FD_IN 0x40000000
125*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_FENCE_FD_OUT 0x20000000
126*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SUDO 0x10000000
127*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SYNCOBJ_IN 0x08000000
128*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SYNCOBJ_OUT 0x04000000
129*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_FENCE_SN_IN 0x02000000
130*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_FLAGS (MSM_SUBMIT_NO_IMPLICIT | MSM_SUBMIT_FENCE_FD_IN | MSM_SUBMIT_FENCE_FD_OUT | MSM_SUBMIT_SUDO | MSM_SUBMIT_SYNCOBJ_IN | MSM_SUBMIT_SYNCOBJ_OUT | MSM_SUBMIT_FENCE_SN_IN | 0)
131*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SYNCOBJ_RESET 0x00000001
132*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SYNCOBJ_FLAGS (MSM_SUBMIT_SYNCOBJ_RESET | 0)
133*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit_syncobj {
134*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
135*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
136*8d67ca89SAndroid Build Coastguard Worker   __u64 point;
137*8d67ca89SAndroid Build Coastguard Worker };
138*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit {
139*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
140*8d67ca89SAndroid Build Coastguard Worker   __u32 fence;
141*8d67ca89SAndroid Build Coastguard Worker   __u32 nr_bos;
142*8d67ca89SAndroid Build Coastguard Worker   __u32 nr_cmds;
143*8d67ca89SAndroid Build Coastguard Worker   __u64 bos;
144*8d67ca89SAndroid Build Coastguard Worker   __u64 cmds;
145*8d67ca89SAndroid Build Coastguard Worker   __s32 fence_fd;
146*8d67ca89SAndroid Build Coastguard Worker   __u32 queueid;
147*8d67ca89SAndroid Build Coastguard Worker   __u64 in_syncobjs;
148*8d67ca89SAndroid Build Coastguard Worker   __u64 out_syncobjs;
149*8d67ca89SAndroid Build Coastguard Worker   __u32 nr_in_syncobjs;
150*8d67ca89SAndroid Build Coastguard Worker   __u32 nr_out_syncobjs;
151*8d67ca89SAndroid Build Coastguard Worker   __u32 syncobj_stride;
152*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
153*8d67ca89SAndroid Build Coastguard Worker };
154*8d67ca89SAndroid Build Coastguard Worker #define MSM_WAIT_FENCE_BOOST 0x00000001
155*8d67ca89SAndroid Build Coastguard Worker #define MSM_WAIT_FENCE_FLAGS (MSM_WAIT_FENCE_BOOST | 0)
156*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_wait_fence {
157*8d67ca89SAndroid Build Coastguard Worker   __u32 fence;
158*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
159*8d67ca89SAndroid Build Coastguard Worker   struct drm_msm_timespec timeout;
160*8d67ca89SAndroid Build Coastguard Worker   __u32 queueid;
161*8d67ca89SAndroid Build Coastguard Worker };
162*8d67ca89SAndroid Build Coastguard Worker #define MSM_MADV_WILLNEED 0
163*8d67ca89SAndroid Build Coastguard Worker #define MSM_MADV_DONTNEED 1
164*8d67ca89SAndroid Build Coastguard Worker #define __MSM_MADV_PURGED 2
165*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_madvise {
166*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
167*8d67ca89SAndroid Build Coastguard Worker   __u32 madv;
168*8d67ca89SAndroid Build Coastguard Worker   __u32 retained;
169*8d67ca89SAndroid Build Coastguard Worker };
170*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMITQUEUE_FLAGS (0)
171*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_submitqueue {
172*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
173*8d67ca89SAndroid Build Coastguard Worker   __u32 prio;
174*8d67ca89SAndroid Build Coastguard Worker   __u32 id;
175*8d67ca89SAndroid Build Coastguard Worker };
176*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMITQUEUE_PARAM_FAULTS 0
177*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_submitqueue_query {
178*8d67ca89SAndroid Build Coastguard Worker   __u64 data;
179*8d67ca89SAndroid Build Coastguard Worker   __u32 id;
180*8d67ca89SAndroid Build Coastguard Worker   __u32 param;
181*8d67ca89SAndroid Build Coastguard Worker   __u32 len;
182*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
183*8d67ca89SAndroid Build Coastguard Worker };
184*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GET_PARAM 0x00
185*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_SET_PARAM 0x01
186*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_NEW 0x02
187*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_INFO 0x03
188*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_CPU_PREP 0x04
189*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_CPU_FINI 0x05
190*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_SUBMIT 0x06
191*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_WAIT_FENCE 0x07
192*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_MADVISE 0x08
193*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_SUBMITQUEUE_NEW 0x0A
194*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_SUBMITQUEUE_CLOSE 0x0B
195*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_SUBMITQUEUE_QUERY 0x0C
196*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GET_PARAM, struct drm_msm_param)
197*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_SET_PARAM DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_SET_PARAM, struct drm_msm_param)
198*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_NEW, struct drm_msm_gem_new)
199*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_INFO, struct drm_msm_gem_info)
200*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_CPU_PREP DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_PREP, struct drm_msm_gem_cpu_prep)
201*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_CPU_FINI DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_FINI, struct drm_msm_gem_cpu_fini)
202*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_SUBMIT, struct drm_msm_gem_submit)
203*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_WAIT_FENCE DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_WAIT_FENCE, struct drm_msm_wait_fence)
204*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_MADVISE, struct drm_msm_gem_madvise)
205*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_SUBMITQUEUE_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_NEW, struct drm_msm_submitqueue)
206*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_CLOSE, __u32)
207*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_SUBMITQUEUE_QUERY DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_QUERY, struct drm_msm_submitqueue_query)
208*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
209*8d67ca89SAndroid Build Coastguard Worker }
210*8d67ca89SAndroid Build Coastguard Worker #endif
211*8d67ca89SAndroid Build Coastguard Worker #endif
212