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

Commit 135dc79e authored by Chris Wilson's avatar Chris Wilson Committed by Imre Deak
Browse files

drm/i915: Balance assert_rpm_wakelock_held() for !IS_ENABLED(CONFIG_PM)



commit 09731280
Author: Imre Deak <imre.deak@intel.com>
Date:   Wed Feb 17 14:17:42 2016 +0200

    drm/i915: Add helper to get a display power ref if it was already enabled

left the rpm wakelock assertions unbalanced if CONFIG_PM was disabled as
intel_runtime_pm_get_if_in_use() would return true without incrementing
the local bookkeeping required for the assertions.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
CC: Mika Kuoppala <mika.kuoppala@intel.com>
CC: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
CC: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1456434628-22574-1-git-send-email-chris@chris-wilson.co.uk


Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
parent 99cf8ea1
Loading
Loading
Loading
Loading
+12 −14
Original line number Diff line number Diff line
@@ -2365,22 +2365,20 @@ bool intel_runtime_pm_get_if_in_use(struct drm_i915_private *dev_priv)
{
	struct drm_device *dev = dev_priv->dev;
	struct device *device = &dev->pdev->dev;
	int ret;

	if (!IS_ENABLED(CONFIG_PM))
		return true;

	ret = pm_runtime_get_if_in_use(device);
	if (IS_ENABLED(CONFIG_PM)) {
		int ret = pm_runtime_get_if_in_use(device);

		/*
	 * In cases runtime PM is disabled by the RPM core and we get an
	 * -EINVAL return value we are not supposed to call this function,
	 * since the power state is undefined. This applies atm to the
	 * late/early system suspend/resume handlers.
		 * In cases runtime PM is disabled by the RPM core and we get
		 * an -EINVAL return value we are not supposed to call this
		 * function, since the power state is undefined. This applies
		 * atm to the late/early system suspend/resume handlers.
		 */
		WARN_ON_ONCE(ret < 0);
		if (ret <= 0)
			return false;
	}

	atomic_inc(&dev_priv->pm.wakeref_count);
	assert_rpm_wakelock_held(dev_priv);