Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6f10915 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915: Remove obsolete min/max freq setters from debugfs

A more complete, and more importantly stable, interface for controlling
the RPS frequency range is available in sysfs, obsoleting the unstable
debugfs.

It's presence seems to trick people into using it, forgetting it is not
ABI.

References: https://bugs.freedesktop.org/show_bug.cgi?id=106237


Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180425142334.27113-1-chris@chris-wilson.co.uk
parent 1f177a13
Loading
Loading
Loading
Loading
+0 −115
Original line number Original line Diff line number Diff line
@@ -4204,119 +4204,6 @@ DEFINE_SIMPLE_ATTRIBUTE(i915_drop_caches_fops,
			i915_drop_caches_get, i915_drop_caches_set,
			i915_drop_caches_get, i915_drop_caches_set,
			"0x%08llx\n");
			"0x%08llx\n");


static int
i915_max_freq_get(void *data, u64 *val)
{
	struct drm_i915_private *dev_priv = data;

	if (INTEL_GEN(dev_priv) < 6)
		return -ENODEV;

	*val = intel_gpu_freq(dev_priv, dev_priv->gt_pm.rps.max_freq_softlimit);
	return 0;
}

static int
i915_max_freq_set(void *data, u64 val)
{
	struct drm_i915_private *dev_priv = data;
	struct intel_rps *rps = &dev_priv->gt_pm.rps;
	u32 hw_max, hw_min;
	int ret;

	if (INTEL_GEN(dev_priv) < 6)
		return -ENODEV;

	DRM_DEBUG_DRIVER("Manually setting max freq to %llu\n", val);

	ret = mutex_lock_interruptible(&dev_priv->pcu_lock);
	if (ret)
		return ret;

	/*
	 * Turbo will still be enabled, but won't go above the set value.
	 */
	val = intel_freq_opcode(dev_priv, val);

	hw_max = rps->max_freq;
	hw_min = rps->min_freq;

	if (val < hw_min || val > hw_max || val < rps->min_freq_softlimit) {
		mutex_unlock(&dev_priv->pcu_lock);
		return -EINVAL;
	}

	rps->max_freq_softlimit = val;

	if (intel_set_rps(dev_priv, val))
		DRM_DEBUG_DRIVER("failed to update RPS to new softlimit\n");

	mutex_unlock(&dev_priv->pcu_lock);

	return 0;
}

DEFINE_SIMPLE_ATTRIBUTE(i915_max_freq_fops,
			i915_max_freq_get, i915_max_freq_set,
			"%llu\n");

static int
i915_min_freq_get(void *data, u64 *val)
{
	struct drm_i915_private *dev_priv = data;

	if (INTEL_GEN(dev_priv) < 6)
		return -ENODEV;

	*val = intel_gpu_freq(dev_priv, dev_priv->gt_pm.rps.min_freq_softlimit);
	return 0;
}

static int
i915_min_freq_set(void *data, u64 val)
{
	struct drm_i915_private *dev_priv = data;
	struct intel_rps *rps = &dev_priv->gt_pm.rps;
	u32 hw_max, hw_min;
	int ret;

	if (INTEL_GEN(dev_priv) < 6)
		return -ENODEV;

	DRM_DEBUG_DRIVER("Manually setting min freq to %llu\n", val);

	ret = mutex_lock_interruptible(&dev_priv->pcu_lock);
	if (ret)
		return ret;

	/*
	 * Turbo will still be enabled, but won't go below the set value.
	 */
	val = intel_freq_opcode(dev_priv, val);

	hw_max = rps->max_freq;
	hw_min = rps->min_freq;

	if (val < hw_min ||
	    val > hw_max || val > rps->max_freq_softlimit) {
		mutex_unlock(&dev_priv->pcu_lock);
		return -EINVAL;
	}

	rps->min_freq_softlimit = val;

	if (intel_set_rps(dev_priv, val))
		DRM_DEBUG_DRIVER("failed to update RPS to new softlimit\n");

	mutex_unlock(&dev_priv->pcu_lock);

	return 0;
}

DEFINE_SIMPLE_ATTRIBUTE(i915_min_freq_fops,
			i915_min_freq_get, i915_min_freq_set,
			"%llu\n");

static int
static int
i915_cache_sharing_get(void *data, u64 *val)
i915_cache_sharing_get(void *data, u64 *val)
{
{
@@ -4878,8 +4765,6 @@ static const struct i915_debugfs_files {
	const struct file_operations *fops;
	const struct file_operations *fops;
} i915_debugfs_files[] = {
} i915_debugfs_files[] = {
	{"i915_wedged", &i915_wedged_fops},
	{"i915_wedged", &i915_wedged_fops},
	{"i915_max_freq", &i915_max_freq_fops},
	{"i915_min_freq", &i915_min_freq_fops},
	{"i915_cache_sharing", &i915_cache_sharing_fops},
	{"i915_cache_sharing", &i915_cache_sharing_fops},
	{"i915_ring_missed_irq", &i915_ring_missed_irq_fops},
	{"i915_ring_missed_irq", &i915_ring_missed_irq_fops},
	{"i915_ring_test_irq", &i915_ring_test_irq_fops},
	{"i915_ring_test_irq", &i915_ring_test_irq_fops},