[Intel-gfx] [PATCH] drm/i915: Set two chicken bits implicated in missed IRQs on Ivybridge.

Ben Widawsky ben at bwidawsk.net
Wed Dec 21 22:26:28 CET 2011


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



More information about the Intel-gfx mailing list