mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-16 18:26:42 +00:00
accel/ivpu: Fix reset_engine debugfs file logic
The current reset_engine implementation unconditionally resets all engines. Improve implementation to reset only the engine requested by the user space to allow more granular testing. Also use DEFINE_DEBUGFS_ATTRIBUTE() to simplify implementation. Same changes applied to resume_engine debugfs file for consistency. Signed-off-by: Andrzej Kacprowski <Andrzej.Kacprowski@intel.com> Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com> Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240930195322.461209-22-jacek.lawrynowicz@linux.intel.com Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
This commit is contained in:
parent
8c3c5f8437
commit
541a137254
@ -337,49 +337,23 @@ static const struct file_operations ivpu_force_recovery_fops = {
|
||||
.write = ivpu_force_recovery_fn,
|
||||
};
|
||||
|
||||
static ssize_t
|
||||
ivpu_reset_engine_fn(struct file *file, const char __user *user_buf, size_t size, loff_t *pos)
|
||||
static int ivpu_reset_engine_fn(void *data, u64 val)
|
||||
{
|
||||
struct ivpu_device *vdev = file->private_data;
|
||||
struct ivpu_device *vdev = (struct ivpu_device *)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;
|
||||
return ivpu_jsm_reset_engine(vdev, (u32)val);
|
||||
}
|
||||
|
||||
static const struct file_operations ivpu_reset_engine_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = simple_open,
|
||||
.write = ivpu_reset_engine_fn,
|
||||
};
|
||||
DEFINE_DEBUGFS_ATTRIBUTE(ivpu_reset_engine_fops, NULL, ivpu_reset_engine_fn, "0x%02llx\n");
|
||||
|
||||
static ssize_t
|
||||
ivpu_resume_engine_fn(struct file *file, const char __user *user_buf, size_t size, loff_t *pos)
|
||||
static int ivpu_resume_engine_fn(void *data, u64 val)
|
||||
{
|
||||
struct ivpu_device *vdev = file->private_data;
|
||||
struct ivpu_device *vdev = (struct ivpu_device *)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;
|
||||
return ivpu_jsm_hws_resume_engine(vdev, (u32)val);
|
||||
}
|
||||
|
||||
static const struct file_operations ivpu_resume_engine_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = simple_open,
|
||||
.write = ivpu_resume_engine_fn,
|
||||
};
|
||||
DEFINE_DEBUGFS_ATTRIBUTE(ivpu_resume_engine_fops, NULL, ivpu_resume_engine_fn, "0x%02llx\n");
|
||||
|
||||
static int dct_active_get(void *data, u64 *active_percent)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user