diff options
-rw-r--r-- | common/include/uapi/gpu/arm/midgard/mali_kbase_ioctl.h | 21 | ||||
-rw-r--r-- | mali_kbase/mali_kbase_core_linux.c | 14 |
2 files changed, 35 insertions, 0 deletions
diff --git a/common/include/uapi/gpu/arm/midgard/mali_kbase_ioctl.h b/common/include/uapi/gpu/arm/midgard/mali_kbase_ioctl.h index 73d54e9..587b00d 100644 --- a/common/include/uapi/gpu/arm/midgard/mali_kbase_ioctl.h +++ b/common/include/uapi/gpu/arm/midgard/mali_kbase_ioctl.h @@ -728,6 +728,27 @@ struct kbase_ioctl_apc_request { #define KBASE_IOCTL_APC_REQUEST \ _IOW(KBASE_IOCTL_TYPE, 66, struct kbase_ioctl_apc_request) +/** + * struct kbase_ioctl_buffer_liveness_update - Update the live ranges of buffers from previous frame + * + * @live_ranges_address: Array of live ranges + * @live_ranges_count: Number of elements in the live ranges buffer + * @buffer_va_address: Array of buffer base virtual addresses + * @buffer_sizes_address: Array of buffer sizes + * @buffer_count: Number of buffers + * @padding: Unused + */ +struct kbase_ioctl_buffer_liveness_update { + __u64 live_ranges_address; + __u64 live_ranges_count; + __u64 buffer_va_address; + __u64 buffer_sizes_address; + __u64 buffer_count; +}; + +#define KBASE_IOCTL_BUFFER_LIVENESS_UPDATE \ + _IOW(KBASE_IOCTL_TYPE, 67, struct kbase_ioctl_buffer_liveness_update) + /*************** * test ioctls * ***************/ diff --git a/mali_kbase/mali_kbase_core_linux.c b/mali_kbase/mali_kbase_core_linux.c index f94eb90..b6b7d43 100644 --- a/mali_kbase/mali_kbase_core_linux.c +++ b/mali_kbase/mali_kbase_core_linux.c @@ -822,6 +822,14 @@ static int kbase_api_apc_request(struct kbase_file *kfile, } #endif +static int kbase_api_buffer_liveness_update(struct kbase_context *kctx, + struct kbase_ioctl_buffer_liveness_update *update) +{ + CSTD_UNUSED(kctx); + CSTD_UNUSED(update); + return 0; +} + #if !MALI_USE_CSF static int kbase_api_job_submit(struct kbase_context *kctx, struct kbase_ioctl_job_submit *submit) @@ -2201,6 +2209,12 @@ static long kbase_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) struct kbase_ioctl_set_limited_core_count, kctx); break; + case KBASE_IOCTL_BUFFER_LIVENESS_UPDATE: + KBASE_HANDLE_IOCTL_IN(KBASE_IOCTL_BUFFER_LIVENESS_UPDATE, + kbase_api_buffer_liveness_update, + struct kbase_ioctl_buffer_liveness_update, + kctx); + break; } dev_warn(kbdev->dev, "Unknown ioctl 0x%x nr:%d", cmd, _IOC_NR(cmd)); |