drm-uapi: Sync the panthor header

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40400>
This commit is contained in:
Adrián Larumbe 2026-03-12 17:24:20 +00:00 committed by Marge Bot
parent df96a100ae
commit 1ca84d67ac

View file

@ -253,6 +253,9 @@ enum drm_panthor_dev_query_type {
* @DRM_PANTHOR_DEV_QUERY_GROUP_PRIORITIES_INFO: Query allowed group priorities information.
*/
DRM_PANTHOR_DEV_QUERY_GROUP_PRIORITIES_INFO,
/** @DRM_PANTHOR_DEV_QUERY_MMU_INFO: Query MMU information. */
DRM_PANTHOR_DEV_QUERY_MMU_INFO,
};
/**
@ -350,7 +353,7 @@ struct drm_panthor_gpu_info {
__u32 as_present;
/**
* @select_coherency: Coherency selected for this device.
* @selected_coherency: Coherency selected for this device.
*
* One of drm_panthor_gpu_coherency.
*/
@ -409,6 +412,38 @@ struct drm_panthor_csif_info {
__u32 pad;
};
/**
* enum drm_panthor_timestamp_info_flags - drm_panthor_timestamp_info.flags
*/
enum drm_panthor_timestamp_info_flags {
/** @DRM_PANTHOR_TIMESTAMP_GPU: Query GPU time. */
DRM_PANTHOR_TIMESTAMP_GPU = 1 << 0,
/** @DRM_PANTHOR_TIMESTAMP_CPU_NONE: Don't query CPU time. */
DRM_PANTHOR_TIMESTAMP_CPU_NONE = 0 << 1,
/** @DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC: Query CPU time using CLOCK_MONOTONIC. */
DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC = 1 << 1,
/** @DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC_RAW: Query CPU time using CLOCK_MONOTONIC_RAW. */
DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC_RAW = 2 << 1,
/** @DRM_PANTHOR_TIMESTAMP_CPU_TYPE_MASK: Space reserved for CPU clock type. */
DRM_PANTHOR_TIMESTAMP_CPU_TYPE_MASK = 7 << 1,
/** @DRM_PANTHOR_TIMESTAMP_GPU_OFFSET: Query GPU offset. */
DRM_PANTHOR_TIMESTAMP_GPU_OFFSET = 1 << 4,
/** @DRM_PANTHOR_TIMESTAMP_GPU_CYCLE_COUNT: Query GPU cycle count. */
DRM_PANTHOR_TIMESTAMP_GPU_CYCLE_COUNT = 1 << 5,
/** @DRM_PANTHOR_TIMESTAMP_FREQ: Query timestamp frequency. */
DRM_PANTHOR_TIMESTAMP_FREQ = 1 << 6,
/** @DRM_PANTHOR_TIMESTAMP_DURATION: Return duration of time query. */
DRM_PANTHOR_TIMESTAMP_DURATION = 1 << 7,
};
/**
* struct drm_panthor_timestamp_info - Timestamp information
*
@ -421,11 +456,48 @@ struct drm_panthor_timestamp_info {
*/
__u64 timestamp_frequency;
/** @current_timestamp: The current timestamp. */
/** @current_timestamp: The current GPU timestamp. */
__u64 current_timestamp;
/** @timestamp_offset: The offset of the timestamp timer. */
/** @timestamp_offset: The offset of the GPU timestamp timer. */
__u64 timestamp_offset;
/**
* @flags: Bitmask of drm_panthor_timestamp_info_flags.
*
* If set to 0, then it is interpreted as:
* DRM_PANTHOR_TIMESTAMP_GPU |
* DRM_PANTHOR_TIMESTAMP_GPU_OFFSET |
* DRM_PANTHOR_TIMESTAMP_FREQ
*
* Note: these flags are exclusive to each other (only one can be used):
* - DRM_PANTHOR_TIMESTAMP_CPU_NONE
* - DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC
* - DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC_RAW
*/
__u32 flags;
/** @duration_nsec: Duration of time query. */
__u32 duration_nsec;
/** @cycle_count: Value of GPU_CYCLE_COUNT. */
__u64 cycle_count;
/** @cpu_timestamp_sec: Seconds part of CPU timestamp. */
__u64 cpu_timestamp_sec;
/** @cpu_timestamp_nsec: Nanseconds part of CPU timestamp. */
__u64 cpu_timestamp_nsec;
};
/**
* struct drm_panthor_mmu_info - MMU information
*
* Structure grouping all queryable information relating to the MMU.
*/
struct drm_panthor_mmu_info {
/** @page_size_bitmap: Allowed page sizes */
__u64 page_size_bitmap;
};
/**
@ -542,6 +614,18 @@ enum drm_panthor_vm_bind_op_flags {
*/
DRM_PANTHOR_VM_BIND_OP_MAP_UNCACHED = 1 << 2,
/**
* @DRM_PANTHOR_VM_BIND_OP_MAP_SPARSE: Sparsely map a virtual memory range
*
* Only valid with DRM_PANTHOR_VM_BIND_OP_TYPE_MAP.
*
* When this flag is set, the whole vm_bind range is mapped over a dummy object in a cyclic
* fashion, and all GPU reads from addresses in the range return undefined values. This flag
* being set means drm_panthor_vm_bind_op::bo_offset and drm_panthor_vm_bind_op::bo_handle
* must both be set to 0. DRM_PANTHOR_VM_BIND_OP_MAP_NOEXEC must also be set.
*/
DRM_PANTHOR_VM_BIND_OP_MAP_SPARSE = 1 << 3,
/**
* @DRM_PANTHOR_VM_BIND_OP_TYPE_MASK: Mask used to determine the type of operation.
*/
@ -605,7 +689,6 @@ struct drm_panthor_vm_bind_op {
* This array shall not be empty for sync-only operations.
*/
struct drm_panthor_obj_array syncs;
};
/**