summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_sprite.c
diff options
context:
space:
mode:
authorVille Syrjälä2013-08-07 12:30:23 +0200
committerDaniel Vetter2013-08-08 14:11:13 +0200
commit88a94a58a07267d979cc168c3e511b99f4164951 (patch)
tree9924ce72f21af7d15ec95adb3054d9d1680844e6 /drivers/gpu/drm/i915/intel_sprite.c
parentdrm/i915: Pass crtc to our update/disable_plane hooks (diff)
downloadkernel-qcow2-linux-88a94a58a07267d979cc168c3e511b99f4164951.tar.gz
kernel-qcow2-linux-88a94a58a07267d979cc168c3e511b99f4164951.tar.xz
kernel-qcow2-linux-88a94a58a07267d979cc168c3e511b99f4164951.zip
drm/i915: Don't try to disable plane if it's already disabled
Check plane->fb in intel_disable_plane() to determine if the plane is already disabled. If the plane has an fb, then it must also have a crtc, so we can drop the plane->crtc check and just call intel_enable_primary() directly. v2: WARN and bail if the plane doesn't have a crtc when it should Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_sprite.c')
-rw-r--r--drivers/gpu/drm/i915/intel_sprite.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index d4e0592e3389..0a174d7e5854 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -863,8 +863,13 @@ intel_disable_plane(struct drm_plane *plane)
struct intel_plane *intel_plane = to_intel_plane(plane);
int ret = 0;
- if (plane->crtc)
- intel_enable_primary(plane->crtc);
+ if (!plane->fb)
+ return 0;
+
+ if (WARN_ON(!plane->crtc))
+ return -EINVAL;
+
+ intel_enable_primary(plane->crtc);
intel_plane->disable_plane(plane, plane->crtc);
if (!intel_plane->obj)