Remove DRIVER_IRQ_VBL(2).
authorMichel Dänzer <michel@tungstengraphics.com>
Fri, 15 Jun 2007 09:01:51 +0000 (11:01 +0200)
committerMichel Dänzer <michel@tungstengraphics.com>
Fri, 15 Jun 2007 09:01:51 +0000 (11:01 +0200)
If the driver doesn't support vertical blank interrupts, it won't call
drm_vblank_init(), and dev->num_crtcs will be 0.

Also fix an off-by-one test against dev->num_crtcs.

linux-core/drmP.h
linux-core/drm_irq.c
linux-core/i915_drv.c

index 5bc8a6c..cf1c0fd 100644 (file)
 #define DRIVER_HAVE_DMA    0x20
 #define DRIVER_HAVE_IRQ    0x40
 #define DRIVER_IRQ_SHARED  0x80
-#define DRIVER_IRQ_VBL     0x100
-#define DRIVER_DMA_QUEUE   0x200
-#define DRIVER_FB_DMA      0x400
-#define DRIVER_IRQ_VBL2    0x800
+#define DRIVER_DMA_QUEUE   0x100
+#define DRIVER_FB_DMA      0x200
 
 
 /*@}*/
index f673a97..c9d1c0d 100644 (file)
@@ -405,7 +405,7 @@ int drm_modeset_ctl(DRM_IOCTL_ARGS)
        }
 
        crtc = modeset.arg;
-       if (crtc > dev->num_crtcs) {
+       if (crtc >= dev->num_crtcs) {
                ret = -EINVAL;
                goto out;
        }
@@ -474,8 +474,7 @@ int drm_wait_vblank(DRM_IOCTL_ARGS)
        flags = vblwait.request.type & _DRM_VBLANK_FLAGS_MASK;
        crtc = flags & _DRM_VBLANK_SECONDARY ? 1 : 0;
 
-       if (!drm_core_check_feature(dev, (flags & _DRM_VBLANK_SECONDARY) ?
-                                   DRIVER_IRQ_VBL2 : DRIVER_IRQ_VBL))
+       if (crtc >= dev->num_crtcs)
                return -EINVAL;
 
        drm_update_vblank_count(dev, crtc);
index e7a9bfd..e7f69e6 100644 (file)
@@ -76,8 +76,7 @@ static struct drm_driver driver = {
         */
        .driver_features =
            DRIVER_USE_AGP | DRIVER_REQUIRE_AGP | /* DRIVER_USE_MTRR | */
-           DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_IRQ_VBL |
-           DRIVER_IRQ_VBL2,
+           DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
        .load = i915_driver_load,
        .firstopen = i915_driver_firstopen,
        .lastclose = i915_driver_lastclose,