diff options
| -rw-r--r-- | drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c index 7dff49ed66e7..99e2034e49cc 100644 --- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c +++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c | |||
| @@ -451,27 +451,16 @@ void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc) | |||
| 451 | { | 451 | { |
| 452 | struct drm_pending_vblank_event *event; | 452 | struct drm_pending_vblank_event *event; |
| 453 | struct drm_device *dev = scrtc->crtc.dev; | 453 | struct drm_device *dev = scrtc->crtc.dev; |
| 454 | struct timeval vblanktime; | ||
| 455 | unsigned long flags; | 454 | unsigned long flags; |
| 456 | 455 | ||
| 457 | spin_lock_irqsave(&dev->event_lock, flags); | 456 | spin_lock_irqsave(&dev->event_lock, flags); |
| 458 | event = scrtc->event; | 457 | event = scrtc->event; |
| 459 | scrtc->event = NULL; | 458 | scrtc->event = NULL; |
| 459 | if (event) { | ||
| 460 | drm_send_vblank_event(dev, 0, event); | ||
| 461 | drm_vblank_put(dev, 0); | ||
| 462 | } | ||
| 460 | spin_unlock_irqrestore(&dev->event_lock, flags); | 463 | spin_unlock_irqrestore(&dev->event_lock, flags); |
| 461 | |||
| 462 | if (event == NULL) | ||
| 463 | return; | ||
| 464 | |||
| 465 | event->event.sequence = drm_vblank_count_and_time(dev, 0, &vblanktime); | ||
| 466 | event->event.tv_sec = vblanktime.tv_sec; | ||
| 467 | event->event.tv_usec = vblanktime.tv_usec; | ||
| 468 | |||
| 469 | spin_lock_irqsave(&dev->event_lock, flags); | ||
| 470 | list_add_tail(&event->base.link, &event->base.file_priv->event_list); | ||
| 471 | wake_up_interruptible(&event->base.file_priv->event_wait); | ||
| 472 | spin_unlock_irqrestore(&dev->event_lock, flags); | ||
| 473 | |||
| 474 | drm_vblank_put(dev, 0); | ||
| 475 | } | 464 | } |
| 476 | 465 | ||
| 477 | static int shmob_drm_crtc_page_flip(struct drm_crtc *crtc, | 466 | static int shmob_drm_crtc_page_flip(struct drm_crtc *crtc, |
