[Intel-gfx] [PATCH 8/8] drm/i915: protect FBC functions with HAS_FBC checks

Chris Wilson chris at chris-wilson.co.uk
Fri Jul 3 08:56:31 PDT 2015


On Thu, Jul 02, 2015 at 07:25:14PM -0300, Paulo Zanoni wrote:
> From: Paulo Zanoni <paulo.r.zanoni at intel.com>
> 
> Now all the functions called by other files have the HAS_FBC
> protection. This allows us to drop the checks for the low level
> function pointers.
> 
> Suggested-by: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_fbc.c | 27 ++++++++++++++++++---------
>  1 file changed, 18 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
> index cc9b7ef..bc3cdb3 100644
> --- a/drivers/gpu/drm/i915/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/intel_fbc.c
> @@ -388,9 +388,6 @@ static void intel_fbc_enable(struct drm_crtc *crtc)
>  
>  	WARN_ON(!mutex_is_locked(&dev_priv->fbc.lock));
>  
> -	if (!dev_priv->display.enable_fbc)
> -		return;
> -
>  	intel_fbc_cancel_work(dev_priv);
>  
>  	work = kzalloc(sizeof(*work), GFP_KERNEL);

> @@ -661,6 +661,9 @@ void intel_fbc_cleanup_cfb(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  
> +	if (!HAS_FBC(dev_priv))
> +		return;
> +
>  	mutex_lock(&dev_priv->fbc.lock);
>  	__intel_fbc_cleanup_cfb(dev);
>  	mutex_unlock(&dev_priv->fbc.lock);

dev_priv->display.enable_fbc is one less pointer dereference than
HAS_FBC() and is a better indication of whether we have initialised the
display device for FBC (i.e. it also carries information about whether
the setup succeeded, maybe some platforms have HAS_FBC but we fail to
negotiate etc).
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list