diff options
| -rw-r--r-- | drivers/staging/imx-drm/ipuv3-crtc.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/drivers/staging/imx-drm/ipuv3-crtc.c b/drivers/staging/imx-drm/ipuv3-crtc.c index b028b0d1317b..1cd74f5e4c76 100644 --- a/drivers/staging/imx-drm/ipuv3-crtc.c +++ b/drivers/staging/imx-drm/ipuv3-crtc.c | |||
| @@ -311,31 +311,14 @@ static int ipu_crtc_mode_set(struct drm_crtc *crtc, | |||
| 311 | 311 | ||
| 312 | static void ipu_crtc_handle_pageflip(struct ipu_crtc *ipu_crtc) | 312 | static void ipu_crtc_handle_pageflip(struct ipu_crtc *ipu_crtc) |
| 313 | { | 313 | { |
| 314 | struct drm_pending_vblank_event *e; | ||
| 315 | struct timeval now; | ||
| 316 | unsigned long flags; | 314 | unsigned long flags; |
| 317 | struct drm_device *drm = ipu_crtc->base.dev; | 315 | struct drm_device *drm = ipu_crtc->base.dev; |
| 318 | 316 | ||
| 319 | spin_lock_irqsave(&drm->event_lock, flags); | 317 | spin_lock_irqsave(&drm->event_lock, flags); |
| 320 | 318 | if (ipu_crtc->page_flip_event) | |
| 321 | e = ipu_crtc->page_flip_event; | 319 | drm_send_vblank_event(drm, -1, ipu_crtc->page_flip_event); |
| 322 | if (!e) { | ||
| 323 | spin_unlock_irqrestore(&drm->event_lock, flags); | ||
| 324 | return; | ||
| 325 | } | ||
| 326 | |||
| 327 | do_gettimeofday(&now); | ||
| 328 | e->event.sequence = 0; | ||
| 329 | e->event.tv_sec = now.tv_sec; | ||
| 330 | e->event.tv_usec = now.tv_usec; | ||
| 331 | ipu_crtc->page_flip_event = NULL; | 320 | ipu_crtc->page_flip_event = NULL; |
| 332 | |||
| 333 | imx_drm_crtc_vblank_put(ipu_crtc->imx_crtc); | 321 | imx_drm_crtc_vblank_put(ipu_crtc->imx_crtc); |
| 334 | |||
| 335 | list_add_tail(&e->base.link, &e->base.file_priv->event_list); | ||
| 336 | |||
| 337 | wake_up_interruptible(&e->base.file_priv->event_wait); | ||
| 338 | |||
| 339 | spin_unlock_irqrestore(&drm->event_lock, flags); | 322 | spin_unlock_irqrestore(&drm->event_lock, flags); |
| 340 | } | 323 | } |
| 341 | 324 | ||
