Lines Matching +full:powervr +full:- +full:gpu
1 /* SPDX-License-Identifier: (GPL-2.0-only WITH Linux-syscall-note) OR MIT */
17 * DOC: PowerVR UAPI
19 * The PowerVR IOCTL argument structs have a few limitations in place, in
22 * - All members must be type-aligned.
23 * - The overall struct must be padded to 64-bit alignment.
24 * - Explicit padding is almost always required. This takes the form of
25 * ``_padding_[x]`` members of sufficient size to pad to the next power-of-two
29 * - Unions may only appear as the last member of a struct.
30 * - Individual union members may grow in the future. The space between the
34 * In addition to the IOCTL argument structs, the PowerVR UAPI makes use of
41 * struct drm_pvr_obj_array - Container used to pass arrays of objects
67 * DRM_PVR_OBJ_ARRAY() - Helper macro for filling &struct drm_pvr_obj_array.
77 * DOC: PowerVR IOCTL interface
81 * PVR_IOCTL() - Build a PowerVR IOCTL number
113 * DOC: PowerVR IOCTL DEV_QUERY interface
117 * struct drm_pvr_dev_query_gpu_info - Container used to fetch information about
125 * @gpu_id: GPU identifier.
127 * For all currently supported GPUs this is the BVNC encoded as a 64-bit
130 * +--------+--------+--------+-------+
134 * +--------+--------+--------+-------+
148 * struct drm_pvr_dev_query_runtime_info - Container used to fetch information
194 * struct drm_pvr_dev_query_quirks - Container used to fetch information about
211 * opt-in. The opt-in mechanism depends on the quirk.
229 * struct drm_pvr_dev_query_enhancements - Container used to fetch information
242 * are disabled by default and require userspace to opt-in. The opt-in
258 * enum drm_pvr_heap_id - Array index for heap info data returned by
272 /** @DRM_PVR_HEAP_RGNHDR: Region header heap. Only used if GPU has BRN63142. */
291 * struct drm_pvr_heap - Container holding information about a single heap.
310 * struct drm_pvr_dev_query_heap_info - Container used to fetch information
313 * Please note all driver-supported heaps will be returned up to &heaps.count.
330 * enum drm_pvr_static_data_area_usage - Array index for static data area info
357 * The VDM sync program is used to synchronise multiple areas of the GPU hardware.
387 * struct drm_pvr_static_data_area - Container holding information about a
414 * struct drm_pvr_dev_query_static_data_areas - Container used to fetch
418 * Please note all driver-supported static data areas will be returned up to
438 * enum drm_pvr_dev_query - For use with &drm_pvr_ioctl_dev_query_args.type to
482 * struct drm_pvr_ioctl_dev_query_args - Arguments for %DRM_IOCTL_PVR_DEV_QUERY.
512 * DOC: PowerVR IOCTL CREATE_BO interface
518 * We use "device" to refer to the GPU here because of the ambiguity between CPU and GPU in some
545 * struct drm_pvr_ioctl_create_bo_args - Arguments for %DRM_IOCTL_PVR_CREATE_BO
573 * DOC: PowerVR IOCTL GET_BO_MMAP_OFFSET interface
577 * struct drm_pvr_ioctl_get_bo_mmap_offset_args - Arguments for
597 * DOC: PowerVR IOCTL CREATE_VM_CONTEXT and DESTROY_VM_CONTEXT interfaces
601 * struct drm_pvr_ioctl_create_vm_context_args - Arguments for
613 * struct drm_pvr_ioctl_destroy_vm_context_args - Arguments for
627 * DOC: PowerVR IOCTL VM_MAP and VM_UNMAP interfaces
629 * The VM UAPI allows userspace to create buffer object mappings in GPU virtual address space.
631 * The client is responsible for managing GPU address space. It should allocate mappings within
638 * %DRM_IOCTL_PVR_VM_UNMAP removes a mapping. The entire mapping will be removed from GPU address
643 * struct drm_pvr_ioctl_vm_map_args - Arguments for %DRM_IOCTL_PVR_VM_MAP.
656 * @device_addr: [IN] Requested device-virtual address for the mapping.
657 * This must be non-zero and aligned to the device page size for the
692 * struct drm_pvr_ioctl_vm_unmap_args - Arguments for %DRM_IOCTL_PVR_VM_UNMAP.
705 * @device_addr: [IN] Device-virtual address at the start of the target
706 * mapping. This must be non-zero.
711 * @size: Size in bytes of the target mapping. This must be non-zero.
717 * DOC: PowerVR IOCTL CREATE_CONTEXT and DESTROY_CONTEXT interfaces
721 * enum drm_pvr_ctx_priority - Arguments for
726 DRM_PVR_CTX_PRIORITY_LOW = -512,
739 * enum drm_pvr_ctx_type - Arguments for
761 * struct drm_pvr_ioctl_create_context_args - Arguments for
809 * struct drm_pvr_ioctl_destroy_context_args - Arguments for
823 * DOC: PowerVR IOCTL CREATE_FREE_LIST and DESTROY_FREE_LIST interfaces
827 * struct drm_pvr_ioctl_create_free_list_args - Arguments for
832 * - @max_num_pages must be greater than zero.
833 * - @grow_threshold must be between 0 and 100.
834 * - @grow_num_pages must be less than or equal to &max_num_pages.
835 * - @initial_num_pages, @max_num_pages and @grow_num_pages must be multiples
837 * - When &grow_num_pages is 0, @initial_num_pages must be equal to
839 * - When &grow_num_pages is non-zero, @initial_num_pages must be less than
844 * @free_list_gpu_addr: [IN] Address of GPU mapping of buffer object
884 * struct drm_pvr_ioctl_destroy_free_list_args - Arguments for
898 * DOC: PowerVR IOCTL CREATE_HWRT_DATASET and DESTROY_HWRT_DATASET interfaces
902 * struct drm_pvr_create_hwrt_geom_data_args - Geometry data arguments used for
906 /** @tpc_dev_addr: [IN] Tail pointer cache GPU virtual address. */
915 /** @vheap_table_dev_addr: [IN] VHEAP table GPU virtual address. */
923 * struct drm_pvr_create_hwrt_rt_data_args - Render target arguments used for
927 /** @pm_mlist_dev_addr: [IN] PM MLIST GPU virtual address. */
930 /** @macrotile_array_dev_addr: [IN] Macrotile array GPU virtual address. */
933 /** @region_header_dev_addr: [IN] Region header array GPU virtual address. */
941 * struct drm_pvr_ioctl_create_hwrt_dataset_args - Arguments for
1012 * struct drm_pvr_ioctl_destroy_hwrt_dataset_args - Arguments for
1026 * DOC: PowerVR IOCTL SUBMIT_JOBS interface
1047 * Signal operation requested. The out-fence bound to the job will be attached to
1066 * struct drm_pvr_sync_op - Object describing a sync operation
1199 * enum drm_pvr_job_type - Arguments for &struct drm_pvr_job.job_type
1216 * struct drm_pvr_hwrt_data_ref - Reference HWRT data
1227 * struct drm_pvr_job - Job arguments passed to the %DRM_IOCTL_PVR_SUBMIT_JOBS ioctl
1252 * Those are job-dependent. See all ``DRM_PVR_SUBMIT_JOB_*``.
1264 * The command stream must be u64-aligned.
1274 * Must be zero for non-render jobs.
1280 * struct drm_pvr_ioctl_submit_jobs_args - Arguments for %DRM_IOCTL_PVR_SUBMIT_JOB