|
@@ -1054,7 +1054,7 @@ EXPORT_SYMBOL(drm_vblank_off);
|
|
|
*/
|
|
|
void drm_vblank_pre_modeset(struct drm_device *dev, int crtc)
|
|
|
{
|
|
|
- /* vblank is not initialized (IRQ not installed ?) */
|
|
|
+ /* vblank is not initialized (IRQ not installed ?), or has been freed */
|
|
|
if (!dev->num_crtcs)
|
|
|
return;
|
|
|
/*
|
|
@@ -1076,6 +1076,10 @@ void drm_vblank_post_modeset(struct drm_device *dev, int crtc)
|
|
|
{
|
|
|
unsigned long irqflags;
|
|
|
|
|
|
+ /* vblank is not initialized (IRQ not installed ?), or has been freed */
|
|
|
+ if (!dev->num_crtcs)
|
|
|
+ return;
|
|
|
+
|
|
|
if (dev->vblank_inmodeset[crtc]) {
|
|
|
spin_lock_irqsave(&dev->vbl_lock, irqflags);
|
|
|
dev->vblank_disable_allowed = 1;
|