drm/i915: properly check for pipe count
authorEugeni Dodonov <eugeni.dodonov@intel.com>
Wed, 9 May 2012 18:37:12 +0000 (15:37 -0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Sat, 19 May 2012 20:39:44 +0000 (22:39 +0200)
As suggested by Chris Wilson and Daniel Vetter, this chunk of code can be
simplified with a more simple check.

Also, as noticed by Jesse Barnes, it is worth mentioning that plane is an
enum and num_pipe is an int, so we could be more paranoid here about those
validation checks eventually.

CC: Daniel Vetter <daniel.vetter@ffwll.ch>
CC: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index 45b93a0961912fac3b993e21bcdfbeacb4ddac22..6b93d4a697ed199135d901fb1b4d31defa77cd90 100644 (file)
@@ -1980,16 +1980,10 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
                return 0;
        }
 
-       switch (intel_crtc->plane) {
-       case 0:
-       case 1:
-               break;
-       case 2:
-               if (IS_IVYBRIDGE(dev))
-                       break;
-               /* fall through otherwise */
-       default:
-               DRM_ERROR("no plane for crtc\n");
+       if(intel_crtc->plane > dev_priv->num_pipe) {
+               DRM_ERROR("no plane for crtc: plane %d, num_pipes %d\n",
+                               intel_crtc->plane,
+                               dev_priv->num_pipe);
                return -EINVAL;
        }