drm-uapi: Add panthor v15 uapi changes

This is currently based on the uapi in the following MR:
https://gitlab.freedesktop.org/panfrost/linux/-/merge_requests/65
This commit is contained in:
Lars-Ivar Hesselberg Simonsen 2026-05-04 14:25:55 +02:00
parent 6e8b73ca76
commit df8f2d8896

View file

@ -350,7 +350,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.
*/
@ -368,11 +368,27 @@ struct drm_panthor_gpu_info {
/** @core_features: Used to discriminate core variants when they exist. */
__u32 core_features;
/** @pad: MBZ. */
__u32 pad;
/** @thread_num_active_granularity: Granularity of number of active threads */
__u32 thread_num_active_granularity;
/** @gpu_features: Bitmask describing supported GPU-wide features */
__u64 gpu_features;
/** @gpu_wide_id: 64-bit GPU_ID for v15 onwards. */
__u64 gpu_wide_id;
#define DRM_PANTHOR_WIDE_ARCH_MAJOR(x) (((x) >> 56) & 0xff)
#define DRM_PANTHOR_WIDE_ARCH_MINOR(x) (((x) >> 48) & 0xff)
#define DRM_PANTHOR_WIDE_ARCH_REV(x) (((x) >> 40) & 0xff)
#define DRM_PANTHOR_WIDE_PRODUCT_MAJOR(x) (((x) >> 32) & 0xff)
#define DRM_PANTHOR_WIDE_VERSION_MAJOR(x) (((x) >> 16) & 0xff)
#define DRM_PANTHOR_WIDE_VERSION_MINOR(x) (((x) >> 8) & 0xff)
#define DRM_PANTHOR_WIDE_VERSION_STATUS(x) ((x) & 0xff)
/** @gpu_rev_wide: 64-bit GPU revision for v15 onwards */
__u64 gpu_rev_wide;
/** @l2_features_wide: 64-bit L2_FEATURES for v15 onwards */
__u64 l2_features_wide;
};
/**
@ -409,6 +425,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 +469,38 @@ 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;
};
/**