Commit 9f3814e8 authored by Andrzej Kacprowski's avatar Andrzej Kacprowski Committed by Jacek Lawrynowicz
Browse files

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: default avatarAndrzej Kacprowski <Andrzej.Kacprowski@intel.com>
Reviewed-by: default avatarJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Reviewed-by: default avatarJeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240930195322.461209-15-jacek.lawrynowicz@linux.intel.com


Signed-off-by: default avatarJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
parent 378ed3b6
Loading
Loading
Loading
Loading
+12 −21
Original line number Diff line number Diff line
@@ -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;
	*dvfs_mode = vdev->fw->dvfs_mode;
	return 0;
}

	ret = pci_try_reset_function(to_pci_dev(vdev->drm.dev));
	if (ret)
		return ret;
static int dvfs_mode_set(void *data, u64 dvfs_mode)
{
	struct ivpu_device *vdev = (struct ivpu_device *)data;

	return size;
	vdev->fw->dvfs_mode = (u32)dvfs_mode;
	return pci_try_reset_function(to_pci_dev(vdev->drm.dev));
}

static const struct file_operations dvfs_mode_fops = {
	.owner = THIS_MODULE,
	.open = simple_open,
	.write = dvfs_mode_fops_write,
};
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,