From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH 23/23] drm/i915: init pm.suspended earlier Date: Fri, 28 Feb 2014 09:20:51 -0800 Message-ID: <20140228092051.60c250e3@jbarnes-desktop> References: <1393540010-1582-1-git-send-email-przanoni@gmail.com> <1393540010-1582-24-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from alt-proxy15.mail.unifiedlayer.com (alt-proxy15.mail.unifiedlayer.com [70.40.196.49]) by gabe.freedesktop.org (Postfix) with SMTP id 07032FBC89 for ; Fri, 28 Feb 2014 09:20:26 -0800 (PST) In-Reply-To: <1393540010-1582-24-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org On Thu, 27 Feb 2014 19:26:50 -0300 Paulo Zanoni wrote: > From: Paulo Zanoni > > 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 > --- > 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 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). -- Jesse Barnes, Intel Open Source Technology Center