[Intel-gfx] [PATCH 16/49] drm/i915/bxt: add WaDisableMaskBasedCammingInRCC workaround

Imre Deak imre.deak at intel.com
Fri Mar 20 03:25:10 PDT 2015


On Fri, 2015-03-20 at 09:05 +0000, Nick Hoath wrote:
> On 17/03/2015 09:39, Imre Deak wrote:
> > From: Ben Widawsky <benjamin.widawsky at intel.com>
> >
> > Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> > Signed-off-by: Imre Deak <imre.deak at intel.com>
> > ---
> >   drivers/gpu/drm/i915/i915_reg.h         | 4 ++++
> >   drivers/gpu/drm/i915/intel_ringbuffer.c | 9 +++++++++
> >   2 files changed, 13 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > index b7ba061..1d074e8 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -5346,6 +5346,10 @@ enum skl_disp_power_wells {
> >   #define  HDC_FORCE_NON_COHERENT			(1<<4)
> >   #define  HDC_BARRIER_PERFORMANCE_DISABLE	(1<<10)
> >
> > +/* GEN9 chicken */
> > +#define SLICE_ECO_CHICKEN0			0x7308
> > +#define   PIXEL_MASK_CAMMING_DISABLE		(1 << 14)
> > +
> >   /* WaCatErrorRejectionIssue */
> >   #define GEN7_SQ_CHICKEN_MBCUNIT_CONFIG		0x9030
> >   #define  GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB	(1<<11)
> > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > index abe062a..e23cbdc 100644
> > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > @@ -966,6 +966,15 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
> >   	WA_CLR_BIT_MASKED(GEN9_HALF_SLICE_CHICKEN5,
> >   			  GEN9_CCS_TLB_PREFETCH_ENABLE);
> >
> > +	/*
> > +	 * FIXME: don't apply the following on BXT for stepping C. On BXT A0
> > +	 * the flag reads back as 0.
> > +	 */
> 
> I've just posted a patch with the stepping macros. You can use these in 
> the same way as for Skylake.

I'm not so happy to make these changes at this point. Without them we
still have a correct - even if conservative - behavior on other
steppings. There are quite a few places marked with FIXME that need
improvement in a similar way and I'd leave them as-is for now to keep as
close as possible to the good known working state (as of the power-on)
and to make merging of this initial patchset fast.

> 
> > +	/* WaDisableMaskBasedCammingInRCC:bxtA */
> > +	if (IS_BROXTON(dev))
> > +		WA_SET_BIT_MASKED(SLICE_ECO_CHICKEN0,
> > +				  PIXEL_MASK_CAMMING_DISABLE);
> > +
> >   	return 0;
> >   }
> >
> >
> 




More information about the Intel-gfx mailing list