summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_fbc.c
diff options
context:
space:
mode:
authorPaulo Zanoni2015-07-03 20:40:54 +0200
committerDaniel Vetter2015-07-06 14:34:27 +0200
commit0bf73c361f986a04af332600bf06476c8f481c5b (patch)
tree9f1444da06fc4598cb4bf81da40ca74e3361aa90 /drivers/gpu/drm/i915/intel_fbc.c
parentdrm/i915: FBC doesn't need struct_mutex anymore (diff)
downloadkernel-qcow2-linux-0bf73c361f986a04af332600bf06476c8f481c5b.tar.gz
kernel-qcow2-linux-0bf73c361f986a04af332600bf06476c8f481c5b.tar.xz
kernel-qcow2-linux-0bf73c361f986a04af332600bf06476c8f481c5b.zip
drm/i915: protect FBC functions with FBC checks
Now all the functions called by other files check whether FBC has been initialized. This allows us to drop the checks on the static functions. v2: - s/HAS_FBC/dev_priv->display.enable_fbc/ everywhere but the init function (Chris). Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_fbc.c')
-rw-r--r--drivers/gpu/drm/i915/intel_fbc.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index cc9b7effec40..65f08e330dc1 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);
@@ -430,9 +427,6 @@ static void __intel_fbc_disable(struct drm_device *dev)
intel_fbc_cancel_work(dev_priv);
- if (!dev_priv->display.disable_fbc)
- return;
-
dev_priv->display.disable_fbc(dev);
dev_priv->fbc.crtc = NULL;
}
@@ -447,6 +441,9 @@ void intel_fbc_disable(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
+ if (!dev_priv->display.enable_fbc)
+ return;
+
mutex_lock(&dev_priv->fbc.lock);
__intel_fbc_disable(dev);
mutex_unlock(&dev_priv->fbc.lock);
@@ -463,6 +460,9 @@ void intel_fbc_disable_crtc(struct intel_crtc *crtc)
struct drm_device *dev = crtc->base.dev;
struct drm_i915_private *dev_priv = dev->dev_private;
+ if (!dev_priv->display.enable_fbc)
+ return;
+
mutex_lock(&dev_priv->fbc.lock);
if (dev_priv->fbc.crtc == crtc)
__intel_fbc_disable(dev);
@@ -661,6 +661,9 @@ void intel_fbc_cleanup_cfb(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
+ if (!dev_priv->display.enable_fbc)
+ return;
+
mutex_lock(&dev_priv->fbc.lock);
__intel_fbc_cleanup_cfb(dev);
mutex_unlock(&dev_priv->fbc.lock);
@@ -708,9 +711,6 @@ static void __intel_fbc_update(struct drm_device *dev)
const struct drm_display_mode *adjusted_mode;
unsigned int max_width, max_height;
- if (!HAS_FBC(dev))
- return;
-
WARN_ON(!mutex_is_locked(&dev_priv->fbc.lock));
/* disable framebuffer compression in vGPU */
@@ -857,6 +857,9 @@ void intel_fbc_update(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
+ if (!dev_priv->display.enable_fbc)
+ return;
+
mutex_lock(&dev_priv->fbc.lock);
__intel_fbc_update(dev);
mutex_unlock(&dev_priv->fbc.lock);
@@ -869,6 +872,9 @@ void intel_fbc_invalidate(struct drm_i915_private *dev_priv,
struct drm_device *dev = dev_priv->dev;
unsigned int fbc_bits;
+ if (!dev_priv->display.enable_fbc)
+ return;
+
if (origin == ORIGIN_GTT)
return;
@@ -895,6 +901,9 @@ void intel_fbc_flush(struct drm_i915_private *dev_priv,
{
struct drm_device *dev = dev_priv->dev;
+ if (!dev_priv->display.enable_fbc)
+ return;
+
mutex_lock(&dev_priv->fbc.lock);
if (!dev_priv->fbc.busy_bits)