|
@@ -115,6 +115,7 @@ void drm_vblank_cleanup(struct drm_device *dev)
|
|
|
|
|
|
dev->num_crtcs = 0;
|
|
|
}
|
|
|
+EXPORT_SYMBOL(drm_vblank_cleanup);
|
|
|
|
|
|
int drm_vblank_init(struct drm_device *dev, int num_crtcs)
|
|
|
{
|
|
@@ -163,7 +164,6 @@ int drm_vblank_init(struct drm_device *dev, int num_crtcs)
|
|
|
}
|
|
|
|
|
|
dev->vblank_disable_allowed = 0;
|
|
|
-
|
|
|
return 0;
|
|
|
|
|
|
err:
|
|
@@ -493,6 +493,9 @@ EXPORT_SYMBOL(drm_vblank_off);
|
|
|
*/
|
|
|
void drm_vblank_pre_modeset(struct drm_device *dev, int crtc)
|
|
|
{
|
|
|
+ /* vblank is not initialized (IRQ not installed ?) */
|
|
|
+ if (!dev->num_crtcs)
|
|
|
+ return;
|
|
|
/*
|
|
|
* To avoid all the problems that might happen if interrupts
|
|
|
* were enabled/disabled around or between these calls, we just
|