diff mbox series

[10/12] accel/ivpu: Configure fw logging using debugfs

Message ID 20240508132557.2388267-1-jacek.lawrynowicz@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series accel/ivpu: Changes for 6.10 | expand

Commit Message

Jacek Lawrynowicz May 8, 2024, 1:25 p.m. UTC
From: Tomasz Rusinowicz <tomasz.rusinowicz@intel.com>

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>
---
 drivers/accel/ivpu/ivpu_debugfs.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Jacek Lawrynowicz May 8, 2024, 1:30 p.m. UTC | #1
Hi,

Please ignore this patch. It got here by mistake.
There is another one sent as a part of a patchset.

On 08.05.2024 15:25, Jacek Lawrynowicz wrote:
> From: Tomasz Rusinowicz <tomasz.rusinowicz@intel.com>
> 
> 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>
> ---
>  drivers/accel/ivpu/ivpu_debugfs.c | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/drivers/accel/ivpu/ivpu_debugfs.c b/drivers/accel/ivpu/ivpu_debugfs.c
> index 6ff967e595cf..b6c7d6a53c79 100644
> --- a/drivers/accel/ivpu/ivpu_debugfs.c
> +++ b/drivers/accel/ivpu/ivpu_debugfs.c
> @@ -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,
diff mbox series

Patch

diff --git a/drivers/accel/ivpu/ivpu_debugfs.c b/drivers/accel/ivpu/ivpu_debugfs.c
index 6ff967e595cf..b6c7d6a53c79 100644
--- a/drivers/accel/ivpu/ivpu_debugfs.c
+++ b/drivers/accel/ivpu/ivpu_debugfs.c
@@ -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,