drm: Allow vblank support without DRIVER_HAVE_IRQ
authorThierry Reding <thierry.reding@avionic-design.de>
Mon, 14 Jan 2013 16:05:56 +0000 (16:05 +0000)
committerDave Airlie <airlied@redhat.com>
Fri, 8 Feb 2013 03:53:04 +0000 (13:53 +1000)
Drivers that register interrupt handlers without the DRM core helpers
don't initialize the .irq_enabled field and drm_dev_to_irq() may fail
when called on them. This shouldn't preclude them from implementing
the vblank IOCTL.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_irq.c

index 19c01ca3cc76aaa2f5fe7cae45f8759104f74190..71f82056563745cf1fd79c662599dccbb81b39d8 100644 (file)
@@ -1218,8 +1218,9 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
        int ret;
        unsigned int flags, seq, crtc, high_crtc;
 
-       if ((!drm_dev_to_irq(dev)) || (!dev->irq_enabled))
-               return -EINVAL;
+       if (drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
+               if ((!drm_dev_to_irq(dev)) || (!dev->irq_enabled))
+                       return -EINVAL;
 
        if (vblwait->request.type & _DRM_VBLANK_SIGNAL)
                return -EINVAL;