Browse Source

drm: Allow vblank support without DRIVER_HAVE_IRQ

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>
Thierry Reding 12 năm trước cách đây
mục cha
commit
03f6509df9
1 tập tin đã thay đổi với 3 bổ sung2 xóa
  1. 3 2
      drivers/gpu/drm/drm_irq.c

+ 3 - 2
drivers/gpu/drm/drm_irq.c

@@ -1218,8 +1218,9 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
 	int ret;
 	int ret;
 	unsigned int flags, seq, crtc, high_crtc;
 	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)
 	if (vblwait->request.type & _DRM_VBLANK_SIGNAL)
 		return -EINVAL;
 		return -EINVAL;