All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
To: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>,
	dri-devel@lists.freedesktop.org
Cc: Oded Gabbay <ogabbay@kernel.org>, Jeffrey Hugo <quic_jhugo@quicinc.com>
Subject: Re: [PATCH 1/5] accel/ivpu: Initial debugfs support
Date: Fri, 7 Jul 2023 09:11:34 +0200	[thread overview]
Message-ID: <1e20d490-ff0a-25db-214c-b4e98b620286@linux.intel.com> (raw)
In-Reply-To: <20230524074847.866711-2-stanislaw.gruszka@linux.intel.com>

Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>

On 24.05.2023 09:48, Stanislaw Gruszka wrote:
> Add initial debugfs support. Provide below functionality:
> 
> - print buffer objects
> - print latest boot mode
> - trigger vpu engine reset
> 
> Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
> ---
>  drivers/accel/ivpu/Makefile       |  1 +
>  drivers/accel/ivpu/ivpu_debugfs.c | 74 +++++++++++++++++++++++++++++++
>  drivers/accel/ivpu/ivpu_debugfs.h | 13 ++++++
>  drivers/accel/ivpu/ivpu_drv.c     |  5 +++
>  4 files changed, 93 insertions(+)
>  create mode 100644 drivers/accel/ivpu/ivpu_debugfs.c
>  create mode 100644 drivers/accel/ivpu/ivpu_debugfs.h
> 
> diff --git a/drivers/accel/ivpu/Makefile b/drivers/accel/ivpu/Makefile
> index 80f1fb3548ae..3ca2fb3936f6 100644
> --- a/drivers/accel/ivpu/Makefile
> +++ b/drivers/accel/ivpu/Makefile
> @@ -2,6 +2,7 @@
>  # Copyright (C) 2023 Intel Corporation
>  
>  intel_vpu-y := \
> +	ivpu_debugfs.o \
>  	ivpu_drv.o \
>  	ivpu_fw.o \
>  	ivpu_gem.o \
> diff --git a/drivers/accel/ivpu/ivpu_debugfs.c b/drivers/accel/ivpu/ivpu_debugfs.c
> new file mode 100644
> index 000000000000..df51ec008fb5
> --- /dev/null
> +++ b/drivers/accel/ivpu/ivpu_debugfs.c
> @@ -0,0 +1,74 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Copyright (C) 2020-2023 Intel Corporation
> + */
> +
> +#include <drm/drm_debugfs.h>
> +#include <drm/drm_file.h>
> +#include <drm/drm_print.h>
> +
> +#include <uapi/drm/ivpu_accel.h>
> +
> +#include "ivpu_debugfs.h"
> +#include "ivpu_drv.h"
> +#include "ivpu_gem.h"
> +#include "ivpu_jsm_msg.h"
> +#include "ivpu_pm.h"
> +
> +static int bo_list_show(struct seq_file *s, void *v)
> +{
> +	struct drm_info_node *node = (struct drm_info_node *)s->private;
> +	struct drm_printer p = drm_seq_file_printer(s);
> +
> +	ivpu_bo_list(node->minor->dev, &p);
> +
> +	return 0;
> +}
> +
> +static int last_bootmode_show(struct seq_file *s, void *v)
> +{
> +	struct drm_info_node *node = (struct drm_info_node *)s->private;
> +	struct ivpu_device *vdev = to_ivpu_device(node->minor->dev);
> +
> +	seq_printf(s, "%s\n", (vdev->pm->is_warmboot) ? "warmboot" : "coldboot");
> +
> +	return 0;
> +}
> +
> +static const struct drm_info_list vdev_debugfs_list[] = {
> +	{"bo_list", bo_list_show, 0},
> +	{"last_bootmode", last_bootmode_show, 0},
> +};
> +
> +static ssize_t
> +ivpu_reset_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_reset_engine(vdev, DRM_IVPU_ENGINE_COMPUTE))
> +		return -ENODEV;
> +	if (ivpu_jsm_reset_engine(vdev, DRM_IVPU_ENGINE_COPY))
> +		return -ENODEV;
> +
> +	return size;
> +}
> +
> +static const struct file_operations ivpu_reset_engine_fops = {
> +	.owner = THIS_MODULE,
> +	.open = simple_open,
> +	.write = ivpu_reset_engine_fn,
> +};
> +
> +void ivpu_debugfs_init(struct drm_minor *minor)
> +{
> +	struct ivpu_device *vdev = to_ivpu_device(minor->dev);
> +
> +	drm_debugfs_create_files(vdev_debugfs_list, ARRAY_SIZE(vdev_debugfs_list),
> +				 minor->debugfs_root, minor);
> +
> +	debugfs_create_file("reset_engine", 0200, minor->debugfs_root, vdev,
> +			    &ivpu_reset_engine_fops);
> +}
> diff --git a/drivers/accel/ivpu/ivpu_debugfs.h b/drivers/accel/ivpu/ivpu_debugfs.h
> new file mode 100644
> index 000000000000..78f80c1e00e4
> --- /dev/null
> +++ b/drivers/accel/ivpu/ivpu_debugfs.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2020-2023 Intel Corporation
> + */
> +
> +#ifndef __IVPU_DEBUGFS_H__
> +#define __IVPU_DEBUGFS_H__
> +
> +struct drm_minor;
> +
> +void ivpu_debugfs_init(struct drm_minor *minor);
> +
> +#endif /* __IVPU_DEBUGFS_H__ */
> diff --git a/drivers/accel/ivpu/ivpu_drv.c b/drivers/accel/ivpu/ivpu_drv.c
> index 2df7643b843d..4c0345417c14 100644
> --- a/drivers/accel/ivpu/ivpu_drv.c
> +++ b/drivers/accel/ivpu/ivpu_drv.c
> @@ -14,6 +14,7 @@
>  #include <drm/drm_prime.h>
>  
>  #include "vpu_boot_api.h"
> +#include "ivpu_debugfs.h"
>  #include "ivpu_drv.h"
>  #include "ivpu_fw.h"
>  #include "ivpu_gem.h"
> @@ -378,6 +379,10 @@ static const struct drm_driver driver = {
>  	.gem_prime_import = ivpu_gem_prime_import,
>  	.gem_prime_mmap = drm_gem_prime_mmap,
>  
> +#if defined(CONFIG_DEBUG_FS)
> +	.debugfs_init = ivpu_debugfs_init,
> +#endif
> +
>  	.ioctls = ivpu_drm_ioctls,
>  	.num_ioctls = ARRAY_SIZE(ivpu_drm_ioctls),
>  	.fops = &ivpu_fops,

  reply	other threads:[~2023-07-07  7:11 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-24  7:48 [PATCH 0/5] accel/ivpu: Add debugfs support Stanislaw Gruszka
2023-05-24  7:48 ` [PATCH 1/5] accel/ivpu: Initial " Stanislaw Gruszka
2023-07-07  7:11   ` Jacek Lawrynowicz [this message]
2023-05-24  7:48 ` [PATCH 2/5] accel/ivpu: Add firmware tracing support Stanislaw Gruszka
2023-07-07  7:11   ` Jacek Lawrynowicz
2023-05-24  7:48 ` [PATCH 3/5] accel/ivpu: Add debugfs files for testing device reset Stanislaw Gruszka
2023-07-07  7:10   ` Jacek Lawrynowicz
2023-05-24  7:48 ` [PATCH 4/5] accel/ivpu: Print firmware name and version Stanislaw Gruszka
2023-05-24  7:48 ` [PATCH 5/5] accel/ivpu: Add fw_name file to debugfs Stanislaw Gruszka
2023-05-24  7:55 ` [PATCH 0/5] accel/ivpu: Add debugfs support Oded Gabbay
2023-05-24  8:29   ` Stanislaw Gruszka
2023-05-24  9:52     ` Oded Gabbay
2023-07-07  8:04 ` Stanislaw Gruszka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1e20d490-ff0a-25db-214c-b4e98b620286@linux.intel.com \
    --to=jacek.lawrynowicz@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=ogabbay@kernel.org \
    --cc=quic_jhugo@quicinc.com \
    --cc=stanislaw.gruszka@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.