]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
accel/ivpu: Add resume engine support
authorWachowski, Karol <karol.wachowski@intel.com>
Mon, 13 May 2024 12:04:26 +0000 (14:04 +0200)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Wed, 15 May 2024 05:42:20 +0000 (07:42 +0200)
Create debugfs interface that triggers sending resume engine IPC
command to VPU. It is used to test engine resume functionality in
driver user space tests.

Signed-off-by: Wachowski, Karol <karol.wachowski@intel.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240513120431.3187212-8-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_debugfs.c

index e07e447d08d16994260ba4381478f7a7ce8ff6cd..6ff967e595cf584efae86606236303a2bf8cc93c 100644 (file)
@@ -335,6 +335,28 @@ static const struct file_operations ivpu_reset_engine_fops = {
        .write = ivpu_reset_engine_fn,
 };
 
+static ssize_t
+ivpu_resume_engine_fn(struct file *file, const char __user *user_buf, size_t size, loff_t *pos)
+{
+       struct ivpu_device *vdev = file->private_data;
+
+       if (!size)
+               return -EINVAL;
+
+       if (ivpu_jsm_hws_resume_engine(vdev, DRM_IVPU_ENGINE_COMPUTE))
+               return -ENODEV;
+       if (ivpu_jsm_hws_resume_engine(vdev, DRM_IVPU_ENGINE_COPY))
+               return -ENODEV;
+
+       return size;
+}
+
+static const struct file_operations ivpu_resume_engine_fops = {
+       .owner = THIS_MODULE,
+       .open = simple_open,
+       .write = ivpu_resume_engine_fn,
+};
+
 void ivpu_debugfs_init(struct ivpu_device *vdev)
 {
        struct dentry *debugfs_root = vdev->drm.debugfs_root;
@@ -358,6 +380,8 @@ void ivpu_debugfs_init(struct ivpu_device *vdev)
 
        debugfs_create_file("reset_engine", 0200, debugfs_root, vdev,
                            &ivpu_reset_engine_fops);
+       debugfs_create_file("resume_engine", 0200, debugfs_root, vdev,
+                           &ivpu_resume_engine_fops);
 
        if (ivpu_hw_gen(vdev) >= IVPU_HW_40XX)
                debugfs_create_file("fw_profiling_freq_drive", 0200,