diff options
author | Rob Clark <rob@ti.com> | 2012-10-08 15:50:45 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-05-21 19:13:41 -0400 |
commit | f7e96d7e28817a66db36e89f25b77bda7dba6da0 (patch) | |
tree | 722ebd04f527fc6b2928273fe1baf81b3746db5d /drivers/gpu | |
parent | 26ae466732c181b7376610fd9241787698179b01 (diff) |
drm/shmob: use drm_send_vblank_event() helper
Signed-off-by: Rob Clark <rob@ti.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
-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, |