On 12/21/2011 10:31 AM, Eric Anholt wrote: > They don't fix our problems alone, but we're told to set them. > > Signed-off-by: Eric Anholt <eric at anholt.net> > --- > > I think this is -next material, since it's not clearly fixing a bug. > > drivers/gpu/drm/i915/i915_reg.h | 4 ++++ > drivers/gpu/drm/i915/intel_display.c | 4 ++++ > 2 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 9d15474..9a97535 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -2883,6 +2883,10 @@ > #define ILK_DPFC_DIS1 (1<<8) > #define ILK_DPFC_DIS2 (1<<9) > > +#define IVB_CHICKEN3 0x4200c > +# define CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE (1 << 5) > +# define CHICKEN3_DGMG_DONE_FIX_DISABLE (1 << 2) > + > #define DISP_ARB_CTL 0x45000 > #define DISP_TILE_SURFACE_SWIZZLING (1<<13) > #define DISP_FBC_WM_DIS (1<<15) > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 8a61b81..1fe0c67 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -8252,6 +8252,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev) > > I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE); > > + I915_WRITE(IVB_CHICKEN3, > + CHICKEN3_DGMG_REQ_OUT_FIX_DISABLE | > + CHICKEN3_DGMG_DONE_FIX_DISABLE); > + > for_each_pipe(pipe) { > I915_WRITE(DSPCNTR(pipe), > I915_READ(DSPCNTR(pipe)) | Fwiw, CHICKEN3_DGMG_DONE_FIX_DISABLE also applies to SNB, but we're waiting on feedback if we should set it. It may be better to set both platforms at once (ie. hold off on this patch)? Ben