提交 bde4889a 编写于 作者: B Ben Skeggs

drm: make sure drm_vblank_init() has been called before touching vbl_lock

Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
上级 1ea6b8f4
...@@ -407,13 +407,16 @@ int drm_irq_uninstall(struct drm_device *dev) ...@@ -407,13 +407,16 @@ int drm_irq_uninstall(struct drm_device *dev)
/* /*
* Wake up any waiters so they don't hang. * Wake up any waiters so they don't hang.
*/ */
spin_lock_irqsave(&dev->vbl_lock, irqflags); if (dev->num_crtcs) {
for (i = 0; i < dev->num_crtcs; i++) { spin_lock_irqsave(&dev->vbl_lock, irqflags);
DRM_WAKEUP(&dev->vbl_queue[i]); for (i = 0; i < dev->num_crtcs; i++) {
dev->vblank_enabled[i] = 0; DRM_WAKEUP(&dev->vbl_queue[i]);
dev->last_vblank[i] = dev->driver->get_vblank_counter(dev, i); dev->vblank_enabled[i] = 0;
dev->last_vblank[i] =
dev->driver->get_vblank_counter(dev, i);
}
spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
} }
spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
if (!irq_enabled) if (!irq_enabled)
return -EINVAL; return -EINVAL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册