mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 23:22:31 +02:00
accel/ivpu: Allow reading dvfs_mode debugfs file
Make the dvfs_mode read-write to allow checking current mode. Simplify the dvfs_mode implementation with the DEFINE_DEBUGFS_ATTRIBUTE. 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-15-jacek.lawrynowicz@linux.intel.com Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
This commit is contained in:
parent
378ed3b64d
commit
9f3814e822
|
|
@ -127,32 +127,23 @@ static const struct drm_debugfs_info vdev_debugfs_list[] = {
|
|||
{"reset_pending", reset_pending_show, 0},
|
||||
};
|
||||
|
||||
static ssize_t
|
||||
dvfs_mode_fops_write(struct file *file, const char __user *user_buf, size_t size, loff_t *pos)
|
||||
static int dvfs_mode_get(void *data, u64 *dvfs_mode)
|
||||
{
|
||||
struct ivpu_device *vdev = file->private_data;
|
||||
struct ivpu_fw_info *fw = vdev->fw;
|
||||
u32 dvfs_mode;
|
||||
int ret;
|
||||
struct ivpu_device *vdev = (struct ivpu_device *)data;
|
||||
|
||||
ret = kstrtou32_from_user(user_buf, size, 0, &dvfs_mode);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
fw->dvfs_mode = dvfs_mode;
|
||||
|
||||
ret = pci_try_reset_function(to_pci_dev(vdev->drm.dev));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return size;
|
||||
*dvfs_mode = vdev->fw->dvfs_mode;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct file_operations dvfs_mode_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = simple_open,
|
||||
.write = dvfs_mode_fops_write,
|
||||
};
|
||||
static int dvfs_mode_set(void *data, u64 dvfs_mode)
|
||||
{
|
||||
struct ivpu_device *vdev = (struct ivpu_device *)data;
|
||||
|
||||
vdev->fw->dvfs_mode = (u32)dvfs_mode;
|
||||
return pci_try_reset_function(to_pci_dev(vdev->drm.dev));
|
||||
}
|
||||
|
||||
DEFINE_DEBUGFS_ATTRIBUTE(dvfs_mode_fops, dvfs_mode_get, dvfs_mode_set, "%llu\n");
|
||||
|
||||
static ssize_t
|
||||
fw_dyndbg_fops_write(struct file *file, const char __user *user_buf, size_t size, loff_t *pos)
|
||||
|
|
@ -432,7 +423,7 @@ void ivpu_debugfs_init(struct ivpu_device *vdev)
|
|||
debugfs_create_file("force_recovery", 0200, debugfs_root, vdev,
|
||||
&ivpu_force_recovery_fops);
|
||||
|
||||
debugfs_create_file("dvfs_mode", 0200, debugfs_root, vdev,
|
||||
debugfs_create_file("dvfs_mode", 0644, debugfs_root, vdev,
|
||||
&dvfs_mode_fops);
|
||||
|
||||
debugfs_create_file("fw_dyndbg", 0200, debugfs_root, vdev,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user