[Intel-gfx] [PATCH 2/3] drm/i915: Use RMW to update chicken bits in gen7_enable_fbc()

Damien Lespiau damien.lespiau at intel.com
Wed Mar 5 15:31:42 CET 2014


On Wed, Mar 05, 2014 at 01:05:46PM +0200, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> gen7_enable_fbc() may write to some registers which we've already
> touched, so use RMW so that we don't undo any previous updates.
> 
> Also note that we implemnt WaFbcAsynchFlipDisableFbcQueue:bdw.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Reviewed-by: Damien Lespiau <damien.lespiau at intel.com>

-- 
Damien

> ---
>  drivers/gpu/drm/i915/intel_pm.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 245d3ae..3411ad7 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -294,10 +294,13 @@ static void gen7_enable_fbc(struct drm_crtc *crtc)
>  
>  	if (IS_IVYBRIDGE(dev)) {
>  		/* WaFbcAsynchFlipDisableFbcQueue:ivb */
> -		I915_WRITE(ILK_DISPLAY_CHICKEN1, ILK_FBCQ_DIS);
> +		I915_WRITE(ILK_DISPLAY_CHICKEN1,
> +			   I915_READ(ILK_DISPLAY_CHICKEN1) |
> +			   ILK_FBCQ_DIS);
>  	} else {
> -		/* WaFbcAsynchFlipDisableFbcQueue:hsw */
> +		/* WaFbcAsynchFlipDisableFbcQueue:hsw,bdw */
>  		I915_WRITE(HSW_PIPE_SLICE_CHICKEN_1(intel_crtc->pipe),
> +			   I915_READ(HSW_PIPE_SLICE_CHICKEN_1(intel_crtc->pipe)) |
>  			   HSW_BYPASS_FBC_QUEUE);
>  	}
>  
> -- 
> 1.8.3.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



More information about the Intel-gfx mailing list