diff mbox

[23/23] drm/i915: init pm.suspended earlier

Message ID 1393540010-1582-24-git-send-email-przanoni@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Paulo Zanoni Feb. 27, 2014, 10:26 p.m. UTC
From: Paulo Zanoni <paulo.r.zanoni@intel.com>

Function intel_init_runtime_pm is supposed to start allowing runtime
PM from that point, but it's called very late on the driver
initialization code, to prevent the driver from trying to suspend
while still initializing. The problem is that variables are accessed
earlier than that, so initalize them at intel_pm_setup, which is
supposed to be the correct place.

Notice that this shouldn't fix any specific bugs because dev_priv is
zeroed when allocated, so the value is already correct right from the
start.

v2: - Rebase.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
---
 drivers/gpu/drm/i915/intel_pm.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Jesse Barnes Feb. 28, 2014, 5:20 p.m. UTC | #1
On Thu, 27 Feb 2014 19:26:50 -0300
Paulo Zanoni <przanoni@gmail.com> wrote:

> From: Paulo Zanoni <paulo.r.zanoni@intel.com>
> 
> Function intel_init_runtime_pm is supposed to start allowing runtime
> PM from that point, but it's called very late on the driver
> initialization code, to prevent the driver from trying to suspend
> while still initializing. The problem is that variables are accessed
> earlier than that, so initalize them at intel_pm_setup, which is
> supposed to be the correct place.
> 
> Notice that this shouldn't fix any specific bugs because dev_priv is
> zeroed when allocated, so the value is already correct right from the
> start.
> 
> v2: - Rebase.
> 
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_pm.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 3bd6e8f..88b434b 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5535,8 +5535,6 @@ void intel_init_runtime_pm(struct drm_i915_private *dev_priv)
>  	struct drm_device *dev = dev_priv->dev;
>  	struct device *device = &dev->pdev->dev;
>  
> -	dev_priv->pm.suspended = false;
> -
>  	if (!HAS_RUNTIME_PM(dev))
>  		return;
>  
> @@ -5772,5 +5770,6 @@ void intel_pm_setup(struct drm_device *dev)
>  	INIT_DELAYED_WORK(&dev_priv->rps.delayed_resume_work,
>  			  intel_gen6_powersave_work);
>  
> +	dev_priv->pm.suspended = false;
>  	dev_priv->pm.irqs_disabled = false;
>  }

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>

Though my earlier comments about getting rid of the init special case
still apply... I think it would be a little easier to understand in
that case (though maybe not, I guess we'd have to see the patches and
resulting code).
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 3bd6e8f..88b434b 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -5535,8 +5535,6 @@  void intel_init_runtime_pm(struct drm_i915_private *dev_priv)
 	struct drm_device *dev = dev_priv->dev;
 	struct device *device = &dev->pdev->dev;
 
-	dev_priv->pm.suspended = false;
-
 	if (!HAS_RUNTIME_PM(dev))
 		return;
 
@@ -5772,5 +5770,6 @@  void intel_pm_setup(struct drm_device *dev)
 	INIT_DELAYED_WORK(&dev_priv->rps.delayed_resume_work,
 			  intel_gen6_powersave_work);
 
+	dev_priv->pm.suspended = false;
 	dev_priv->pm.irqs_disabled = false;
 }