summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/include/uapi/gpu/arm/midgard/mali_kbase_ioctl.h21
-rw-r--r--mali_kbase/mali_kbase_core_linux.c14
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));