]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
accel/ivpu: Configure fw logging using debugfs
authorTomasz Rusinowicz <tomasz.rusinowicz@intel.com>
Mon, 13 May 2024 12:04:29 +0000 (14:04 +0200)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Wed, 15 May 2024 05:42:26 +0000 (07:42 +0200)
Add fw_dyndbg file that can be used to control FW logging.

Signed-off-by: Tomasz Rusinowicz <tomasz.rusinowicz@intel.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240513120431.3187212-11-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_debugfs.c

index 6ff967e595cf584efae86606236303a2bf8cc93c..b6c7d6a53c79ab7c503625540e9e60ecef6bf09d 100644 (file)
@@ -145,6 +145,30 @@ static const struct file_operations dvfs_mode_fops = {
        .write = dvfs_mode_fops_write,
 };
 
+static ssize_t
+fw_dyndbg_fops_write(struct file *file, const char __user *user_buf, size_t size, loff_t *pos)
+{
+       struct ivpu_device *vdev = file->private_data;
+       char buffer[VPU_DYNDBG_CMD_MAX_LEN] = {};
+       int ret;
+
+       if (size >= VPU_DYNDBG_CMD_MAX_LEN)
+               return -EINVAL;
+
+       ret = strncpy_from_user(buffer, user_buf, size);
+       if (ret < 0)
+               return ret;
+
+       ivpu_jsm_dyndbg_control(vdev, buffer, size);
+       return size;
+}
+
+static const struct file_operations fw_dyndbg_fops = {
+       .owner = THIS_MODULE,
+       .open = simple_open,
+       .write = fw_dyndbg_fops_write,
+};
+
 static int fw_log_show(struct seq_file *s, void *v)
 {
        struct ivpu_device *vdev = s->private;
@@ -369,6 +393,8 @@ void ivpu_debugfs_init(struct ivpu_device *vdev)
        debugfs_create_file("dvfs_mode", 0200, debugfs_root, vdev,
                            &dvfs_mode_fops);
 
+       debugfs_create_file("fw_dyndbg", 0200, debugfs_root, vdev,
+                           &fw_dyndbg_fops);
        debugfs_create_file("fw_log", 0644, debugfs_root, vdev,
                            &fw_log_fops);
        debugfs_create_file("fw_trace_destination_mask", 0200, debugfs_root, vdev,