include/uapi/drm/panfrost_drm.h

Source file repositories/reference/linux-study-clean/include/uapi/drm/panfrost_drm.h

File Facts

System
Linux kernel
Corpus path
include/uapi/drm/panfrost_drm.h
Extension
.h
Size
13062 bytes
Lines
477
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

struct drm_panfrost_submit {
	/**
	 * @jc: Address to GPU mapping of job descriptor
	 */
	__u64 jc;
	/**
	 * @in_syncs: An optional array of sync objects to wait on
	 * before starting this job.
	 */
	__u64 in_syncs;
	/**
	 * @in_sync_count: Number of sync objects to wait on before
	 * starting this job.
	 */
	__u32 in_sync_count;
	/**
	 * @out_sync: An optional sync object to place the completion fence in.
	 */
	__u32 out_sync;
	/**
	 * @bo_handles: Pointer to a u32 array of the BOs that are
	 * referenced by the job.
	 */
	__u64 bo_handles;
	/**
	 * @bo_handle_count: Number of BO handles passed in (size is
	 * that times 4).
	 */
	__u32 bo_handle_count;
	/**
	 * @requirements: A combination of PANFROST_JD_REQ_*
	 */
	__u32 requirements;
	/**
	 * @jm_ctx_handle: JM context handle. Zero if you want to use the
	 * default context.
	 */
	__u32 jm_ctx_handle;
	/**
	 * @pad: Padding field. Must be zero.
	 */
	__u32 pad;
};

/**
 * struct drm_panfrost_wait_bo - ioctl argument for waiting for
 * completion of the last DRM_PANFROST_SUBMIT on a BO.
 *
 * This is useful for cases where multiple processes might be
 * rendering to a BO and you want to wait for all rendering to be
 * completed.
 */
struct drm_panfrost_wait_bo {
	/**
	 * @handle: Handle for the object to wait for.
	 */
	__u32 handle;
	/**
	 * @pad: Padding, must be zero-filled.
	 */
	__u32 pad;
	/**
	 * @timeout_ns: absolute number of nanoseconds to wait.
	 */
	__s64 timeout_ns;
};

/* Valid flags to pass to drm_panfrost_create_bo.
 * PANFROST_BO_WB_MMAP can't be set if PANFROST_BO_HEAP is.
 */
#define PANFROST_BO_NOEXEC	1
#define PANFROST_BO_HEAP	2
#define PANFROST_BO_WB_MMAP	4

/**
 * struct drm_panfrost_create_bo - ioctl argument for creating Panfrost BOs.
 *
 * The flags argument is a bit mask of PANFROST_BO_* flags.
 */
struct drm_panfrost_create_bo {
	/**
	 * @size: size of shmem/BO area to create (bytes)
	 */
	__u32 size;
	/**
	 * @flags: see PANFROST_BO_* flags
	 */
	__u32 flags;
	/**
	 * @handle: Returned GEM handle for the BO.

Annotation

Implementation Notes