From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kenneth Graunke Subject: Re: [PATCH 2/3] drm/i915: gen7: add two more IVB workarounds Date: Mon, 06 Feb 2012 14:22:35 -0800 Message-ID: <4F3052AB.40609@whitecape.org> References: <1328300538-3472-1-git-send-email-eugeni.dodonov@intel.com> <1328482026-28420-1-git-send-email-eugeni.dodonov@intel.com> <1328482026-28420-3-git-send-email-eugeni.dodonov@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from homiemail-a3.g.dreamhost.com (caiajhbdcahe.dreamhost.com [208.97.132.74]) by gabe.freedesktop.org (Postfix) with ESMTP id 68AAE9F059 for ; Mon, 6 Feb 2012 14:22:37 -0800 (PST) In-Reply-To: <1328482026-28420-3-git-send-email-eugeni.dodonov@intel.com> 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: Eugeni Dodonov Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On 02/05/2012 02:47 PM, Eugeni Dodonov wrote: > This adds two cache-related workarounds for Ivy Bridge which can lead to > 3D ring hangs and corruptions. > > Signed-off-by: Eugeni Dodonov > --- > drivers/gpu/drm/i915/i915_reg.h | 7 +++++++ > drivers/gpu/drm/i915/intel_display.c | 6 ++++++ > 2 files changed, 13 insertions(+), 0 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 80fd6b5..92274b1 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -3028,6 +3028,13 @@ > #define DISP_TILE_SURFACE_SWIZZLING (1<<13) > #define DISP_FBC_WM_DIS (1<<15) > > +/* GEN7 chicken */ > +#define GEN7_COMMON_SLICE_CHICKEN1 0x7010 > +#define GEN7_WA_FOR_GEN7_L3_CONTROL 0x3C4FFF8C > + > +#define GEN7_L3_CHICKEN_MODE_REGISTER 0xB030 > +#define GEN7_WA_L3_CHICKEN_MODE 0x20000000 > + > /* PCH */ > > /* south display engine interrupt */ > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 1defd42..eee0e75 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -8475,6 +8475,12 @@ static void ivybridge_init_clock_gating(struct drm_device *dev) > CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE | > CHICKEN3_DGMG_DONE_FIX_DISABLE); > > + /* WaApplyL3ControlAndL3ChickenMode requires those two on Ivy Bridge */ > + I915_WRITE(GEN7_COMMON_SLICE_CHICKEN1, > + GEN7_WA_FOR_GEN7_L3_CONTROL); > + I915_WRITE(GEN7_L3_CHICKEN_MODE_REGISTER, > + GEN7_WA_L3_CHICKEN_MODE); > + > for_each_pipe(pipe) { > I915_WRITE(DSPCNTR(pipe), > I915_READ(DSPCNTR(pipe)) | Reviewed-by: Kenneth Graunke