From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH] drm/i915: run intel_uncore_early_sanitize earlier on resume Date: Fri, 10 Oct 2014 14:25:36 +0300 Message-ID: <1412940336.4638.11.camel@intelbox> References: <1412876816-2313-1-git-send-email-przanoni@gmail.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 28012894EA for ; Fri, 10 Oct 2014 04:25:39 -0700 (PDT) In-Reply-To: <1412876816-2313-1-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org On Thu, 2014-10-09 at 14:46 -0300, Paulo Zanoni wrote: > From: Paulo Zanoni > > As far as I understand, intel_uncore_early_sanitize() was supposed to > be ran before any register access, but currently > intel_resume_prepare() is ran earlier, and it does register > access. I don't think it should be safe to be calling > I915_{READ,WRITE} without calling intel_uncore_early_sanitize() first. > > One of the problems we currently have is that when we suspend/resume > BDW, the FPGA_DBG_RM_NOCLAIM bit becomes 1, so we end up printing an > "unclaimed register" message on resume, but this message doesn't > really seem to have been triggered by our driver or user space, since > the bit was not there before suspending, and gets there just after > resuming, before any of our own register accesses. So calling > intel_uncore_early_sanitize() as a first thing will allow us to stop > printing the error message, fixing the "bug". One issue is that intel_uncore_early_sanitize() uses forcewake, which is enabled only in prepare resume for VLV (vlv_allow_gt_wake()). Maybe FPGA_DBG could be reset separately before the rest? > > Cc: Chris Wilson > Cc: Imre Deak > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83094 > Signed-off-by: Paulo Zanoni > --- > drivers/gpu/drm/i915/i915_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Maybe we need to move even more code up? > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index a05a1d0..dffb173 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -665,11 +665,11 @@ static int i915_drm_thaw_early(struct drm_device *dev) > struct drm_i915_private *dev_priv = dev->dev_private; > int ret; > > + intel_uncore_early_sanitize(dev, true); > ret = intel_resume_prepare(dev_priv, false); > if (ret) > DRM_ERROR("Resume prepare failed: %d,Continuing resume\n", ret); > > - intel_uncore_early_sanitize(dev, true); > intel_uncore_sanitize(dev); > intel_power_domains_init_hw(dev_priv); >