From: Keith P. <ke...@ke...> - 2008-11-03 07:38:31
|
The initial mode setting from the 2D driver is done before drm_vblank_init is called, which means that vblank_disable_allow isn't set. This prevents the kernel from disabling vblank interrupts after they are first turned on. Signed-off-by: Keith Packard <ke...@ke...> --- drivers/gpu/drm/drm_irq.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index 212a94f..61c2a46 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -448,6 +448,8 @@ int drm_modeset_ctl(struct drm_device *dev, void *data, unsigned long irqflags; int crtc, ret = 0; + dev->vblank_disable_allowed = 1; + /* If drm_vblank_init() hasn't been called yet, just no-op */ if (!dev->num_crtcs) goto out; @@ -475,7 +477,6 @@ int drm_modeset_ctl(struct drm_device *dev, void *data, case _DRM_POST_MODESET: if (dev->vblank_inmodeset[crtc]) { spin_lock_irqsave(&dev->vbl_lock, irqflags); - dev->vblank_disable_allowed = 1; dev->vblank_inmodeset[crtc] = 0; spin_unlock_irqrestore(&dev->vbl_lock, irqflags); drm_vblank_put(dev, crtc); -- 1.5.6.5 |