drm/imagination: Add driver documentation
[linux-block.git] / Documentation / gpu / imagination / uapi.rst
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