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

Commit 08ea70a4 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915: Disable runtime-pm using lowlevel functions if !HAS_RC6



If we cannot setup rc6, we cannot let the GPU suspend itself as it
cannot save its state (to a powercontext). As such, we must disable
runtime-pm, but we should do so using the low-level pm-runtime function
which leaves our own debugging functions intact (and continue to detect
errors in our runtime-pm handling should we ever be able to enable rc6).

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180812223642.24865-3-chris@chris-wilson.co.uk
parent dc5977da
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@
 */
 */


#include <linux/cpufreq.h>
#include <linux/cpufreq.h>
#include <linux/pm_runtime.h>
#include <drm/drm_plane_helper.h>
#include <drm/drm_plane_helper.h>
#include "i915_drv.h"
#include "i915_drv.h"
#include "intel_drv.h"
#include "intel_drv.h"
@@ -8181,7 +8182,7 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
	 */
	 */
	if (!sanitize_rc6(dev_priv)) {
	if (!sanitize_rc6(dev_priv)) {
		DRM_INFO("RC6 disabled, disabling runtime PM support\n");
		DRM_INFO("RC6 disabled, disabling runtime PM support\n");
		intel_runtime_pm_get(dev_priv);
		pm_runtime_get(&dev_priv->drm.pdev->dev);
	}
	}


	mutex_lock(&dev_priv->pcu_lock);
	mutex_lock(&dev_priv->pcu_lock);
@@ -8233,7 +8234,7 @@ void intel_cleanup_gt_powersave(struct drm_i915_private *dev_priv)
		valleyview_cleanup_gt_powersave(dev_priv);
		valleyview_cleanup_gt_powersave(dev_priv);


	if (!HAS_RC6(dev_priv))
	if (!HAS_RC6(dev_priv))
		intel_runtime_pm_put(dev_priv);
		pm_runtime_put(&dev_priv->drm.pdev->dev);
}
}


/**
/**