[Intel-gfx] [PATCH 17/49] drm/i915/skl: add WaDisableMaskBasedCammingInRCC workaround

Imre Deak imre.deak at intel.com
Fri Mar 20 03:33:09 PDT 2015


On Fri, 2015-03-20 at 09:07 +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/intel_ringbuffer.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > index e23cbdc..000f608 100644
> > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> > @@ -970,8 +970,8 @@ static int gen9_init_workarounds(struct intel_engine_cs *ring)
> >   	 * FIXME: don't apply the following on BXT for stepping C. On BXT A0
> >   	 * the flag reads back as 0.
> >   	 */
> > -	/* WaDisableMaskBasedCammingInRCC:bxtA */
> > -	if (IS_BROXTON(dev))
> > +	/* WaDisableMaskBasedCammingInRCC:sklC,bxtA */
> > +	if (INTEL_REVID(dev) == SKL_REVID_C0 || IS_BROXTON(dev))
> This looks wrong. (IS_BROXTON && BXT_REVID_C0) || (IS_SKYLAKE && 
> SKL_REVID_C0) please.

It's correct though. gen9_init_workarounds() is called for Skylake or
Broxton, so the condition is true either on Broxton regardless of the
stepping, or on Skylake if the revid matches.

Also on Broxton we have to _exclude_ the workaround on C0, so if we add
the revid check for Broxton too, then we have to rewrite the condition
to:

(IS_BROXTON && INTEL_REVID != BXT_REVID_C0) || (IS_SKYLAKE &&
INTEL_REVID == SKL_REVID_C0)

> >   		WA_SET_BIT_MASKED(SLICE_ECO_CHICKEN0,
> >   				  PIXEL_MASK_CAMMING_DISABLE);
> >
> >
> 




More information about the Intel-gfx mailing list