aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2022-01-05 16:39:31 +0100
committerDmitry Vyukov <dvyukov@google.com>2022-01-11 16:30:08 +0100
commit1c63ef6666846fb805f7ab30cd2d55e4189bab6a (patch)
treeaaf4d9f1d3005d59d128079b8fab884e12fb5038 /sys/linux
parentc1cff6f1ec1346f5d9c1e499dae0bd106ebb39ec (diff)
sys/linux: improve dev_dri descriptions
Add construcor for drm_plane_id resource that returns it outside of an array. Provide more detailed desriptions for DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD/DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE as they accept/return complete different resources.
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/dev_dri.txt44
-rw-r--r--sys/linux/dev_dri.txt.const1
2 files changed, 33 insertions, 12 deletions
diff --git a/sys/linux/dev_dri.txt b/sys/linux/dev_dri.txt
index 823f720aa..dec96c61b 100644
--- a/sys/linux/dev_dri.txt
+++ b/sys/linux/dev_dri.txt
@@ -359,16 +359,18 @@ drm_mode_atomic {
drm_mode_atomic_flags = DRM_MODE_PAGE_FLIP_EVENT, DRM_MODE_ATOMIC_TEST_ONLY, DRM_MODE_ATOMIC_NONBLOCK, DRM_MODE_ATOMIC_ALLOW_MODESET
-resource drm_syncobj_fd[fd]
+resource fd_drm_syncobj[fd]
resource drm_syncobj[int32]
resource drm_syncpoint[int64]
# See https://www.kernel.org/doc/html/latest/gpu/drm-mm.html#drm-sync-objects
# for more details
ioctl$DRM_IOCTL_SYNCOBJ_CREATE(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_CREATE], arg ptr[inout, drm_syncobj_create])
-ioctl$DRM_IOCTL_SYNCOBJ_DESTROY(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_DESTROY], arg ptr[inout, drm_syncobj_destroy])
-ioctl$DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD], arg ptr[inout, drm_syncobj_handle])
-ioctl$DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE], arg ptr[inout, drm_syncobj_handle])
+ioctl$DRM_IOCTL_SYNCOBJ_DESTROY(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_DESTROY], arg ptr[in, drm_syncobj_destroy])
+ioctl$DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD_SYNC_FILE(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD], arg ptr[inout, drm_syncobj_handle_to_sync_file])
+ioctl$DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD_FD(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD], arg ptr[inout, drm_syncobj_handle_to_fd])
+ioctl$DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE_SYNC_FILE(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE], arg ptr[inout, drm_syncobj_handle_from_sync_file])
+ioctl$DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE_FD(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE], arg ptr[inout, drm_syncobj_handle_from_fd])
ioctl$DRM_IOCTL_SYNCOBJ_TRANSFER(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_TRANSFER], arg ptr[inout, drm_syncobj_transfer])
ioctl$DRM_IOCTL_SYNCOBJ_WAIT(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_WAIT], arg ptr[inout, drm_syncobj_wait])
ioctl$DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT], arg ptr[inout, drm_syncobj_timeline_wait])
@@ -378,8 +380,8 @@ ioctl$DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_T
ioctl$DRM_IOCTL_SYNCOBJ_QUERY(fd fd_dri, cmd const[DRM_IOCTL_SYNCOBJ_QUERY], arg ptr[inout, drm_syncobj_timeline_array])
drm_syncobj_create {
- handle drm_syncobj[opt]
- flags flags[drm_syncobj_create_flags, int32]
+ handle drm_syncobj (out)
+ flags flags[drm_syncobj_create_flags, int32] (in)
}
drm_syncobj_destroy {
@@ -387,11 +389,31 @@ drm_syncobj_destroy {
pad const[0, int32]
}
-drm_syncobj_handle {
- handle drm_syncobj[opt]
- flags flags[drm_syncobj_handle_flags, int32]
+drm_syncobj_handle_to_sync_file {
+ handle drm_syncobj (in)
+ flags const[DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE, int32]
+ fd fd_sync_file (out)
+ pad const[0, int32]
+}
+
+drm_syncobj_handle_to_fd {
+ handle drm_syncobj (in)
+ flags const[0, int32]
+ fd fd_drm_syncobj (out)
+ pad const[0, int32]
+}
- fd drm_syncobj_fd[opt]
+drm_syncobj_handle_from_sync_file {
+ handle drm_syncobj (out)
+ flags const[DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_IMPORT_SYNC_FILE, int32]
+ fd fd_sync_file (in)
+ pad const[0, int32]
+}
+
+drm_syncobj_handle_from_fd {
+ handle drm_syncobj (out)
+ flags const[0, int32]
+ fd fd_drm_syncobj (in)
pad const[0, int32]
}
@@ -739,7 +761,5 @@ drm_dma_flags = _DRM_DMA_BLOCK, _DRM_DMA_WHILE_LOCKED, _DRM_DMA_PRIORITY, _DRM_D
drm_control_type = DRM_ADD_COMMAND, DRM_RM_COMMAND, DRM_INST_HANDLER, DRM_UNINST_HANDLER
drm_vblank_seq_type = _DRM_VBLANK_ABSOLUTE, _DRM_VBLANK_RELATIVE, _DRM_VBLANK_HIGH_CRTC_MASK, _DRM_VBLANK_EVENT, _DRM_VBLANK_FLIP, _DRM_VBLANK_NEXTONMISS, _DRM_VBLANK_SECONDARY, _DRM_VBLANK_SIGNAL
drm_syncobj_create_flags = DRM_SYNCOBJ_CREATE_SIGNALED
-# DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE is the same so we just use one
-drm_syncobj_handle_flags = DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_IMPORT_SYNC_FILE
drm_syncobj_wait_flags = DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL, DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT, DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE
drm_syncobj_query_flags = DRM_SYNCOBJ_QUERY_FLAGS_LAST_SUBMITTED
diff --git a/sys/linux/dev_dri.txt.const b/sys/linux/dev_dri.txt.const
index c94550379..e65913d93 100644
--- a/sys/linux/dev_dri.txt.const
+++ b/sys/linux/dev_dri.txt.const
@@ -142,6 +142,7 @@ DRM_PROP_NAME_LEN = 32
DRM_RM_COMMAND = 1
DRM_SYNCOBJ_CREATE_SIGNALED = 1
DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_IMPORT_SYNC_FILE = 1
+DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE = 1
DRM_SYNCOBJ_QUERY_FLAGS_LAST_SUBMITTED = 1
DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL = 1
DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE = 4