From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/3 v3] drm/i915: catch gtfifo errors on forcewake_put Date: Wed, 8 Feb 2012 11:14:33 +0100 Message-ID: <20120208101433.GA5030@phenom.ffwll.local> References: <1328628110-5954-1-git-send-email-ben@bwidawsk.net> <1328628110-5954-3-git-send-email-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-ww0-f41.google.com (mail-ww0-f41.google.com [74.125.82.41]) by gabe.freedesktop.org (Postfix) with ESMTP id EA4E99FD68 for ; Wed, 8 Feb 2012 02:14:27 -0800 (PST) Received: by wgbdt11 with SMTP id dt11so6230535wgb.0 for ; Wed, 08 Feb 2012 02:14:27 -0800 (PST) Content-Disposition: inline In-Reply-To: <1328628110-5954-3-git-send-email-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Ben Widawsky Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Tue, Feb 07, 2012 at 04:21:49PM +0100, Ben Widawsky wrote: > This is similar to a patch I wrote several months ago. It's been updated > for the new FORCEWAKE_MT, and it also no longer clears the debug > register as it may be helpful to get that for the error state. Also > recommended by Chris Wilson, use WARN() instead of DRM_ERROR, so we can > get a backtrace. > > v2: Replace POSTING_READ with I915_READ_NOTRACE(GTFIFODBG). Recommended > by Chris Wilson > > v3: Pull the fifo check out into a helper function to reduce code > duplication > > Signed-off-by: Ben Widawsky > --- > drivers/gpu/drm/i915/i915_drv.c | 15 +++++++++++++-- > 1 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 1658cfd..a7858a1 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -379,16 +379,27 @@ void gen6_gt_force_wake_get(struct drm_i915_private *dev_priv) > dev_priv->display.force_wake_get(dev_priv); > } > > +static void gen6_gt_check_fifodbg(struct drm_i915_private *dev_priv) > +{ > + u32 gtfifodbg; > + gtfifodbg = I915_READ_NOTRACE(GTFIFODBG); > + WARN(gtfifodbg & GT_FIFO_CPU_ERROR_MASK, > + "MMIO read or write has been dropped %x\n", gtfifodbg); > + I915_WRITE_NOTRACE(GTFIFODBG, GT_FIFO_CPU_ERROR_MASK); I think we should move the write out of line and only do it when we're actually catching an error. -Daniel -- Daniel Vetter Mail: daniel@ffwll.ch Mobile: +41 (0)79 365 57 48