[Intel-gfx] [PATCH] drm/i915: don't enable autosuspend on platforms without RPM support
David Weinehall
david.weinehall at linux.intel.com
Fri Dec 18 02:32:06 PST 2015
On Thu, Dec 17, 2015 at 07:04:33PM +0200, Imre Deak wrote:
> Since
>
> commit 357597e51dd1aa3cf764d322abf89217e3dcd7bb
> Author: Imre Deak <imre.deak at intel.com>
> Date: Tue Nov 10 06:12:22 2015 +0200
>
> drm/i915: remove HAS_RUNTIME_PM check from RPM get/put/assert helpers
>
> this file is writeable also on platforms without RPM support, but
> userspace (at least IGT) depends on this file being unchangable to
> determine whether the device supports autosuspend. So restore the old
> behavior.
>
> This gets rid of igt/pm_rpm failures on old platforms without RPM
> support, where the test should be skipped.
>
> Testcase: igt/pm_rpm/basic-rte
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
> drivers/gpu/drm/i915/intel_runtime_pm.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
> index a0b9eaf..ddbdbff 100644
> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> @@ -2309,18 +2309,21 @@ void intel_runtime_pm_enable(struct drm_i915_private *dev_priv)
> struct drm_device *dev = dev_priv->dev;
> struct device *device = &dev->pdev->dev;
>
> + pm_runtime_set_autosuspend_delay(device, 10000); /* 10s */
> + pm_runtime_mark_last_busy(device);
> +
> /*
> * Take a permanent reference to disable the RPM functionality and drop
> * it only when unloading the driver. Use the low level get/put helpers,
> * so the driver's own RPM reference tracking asserts also work on
> * platforms without RPM support.
> */
> - if (!HAS_RUNTIME_PM(dev))
> + if (!HAS_RUNTIME_PM(dev)) {
> + pm_runtime_dont_use_autosuspend(device);
> pm_runtime_get_sync(device);
> -
> - pm_runtime_set_autosuspend_delay(device, 10000); /* 10s */
> - pm_runtime_mark_last_busy(device);
> - pm_runtime_use_autosuspend(device);
> + } else {
> + pm_runtime_use_autosuspend(device);
> + }
>
> /*
> * The core calls the driver load handler with an RPM reference held.
Reviewed-by: David Weinehall <david.weinehall at intel.com>
Kind regards, David Weinehall
More information about the Intel-gfx
mailing list