]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
drm/exynos: release unhandled page flip events at postclose.
authorInki Dae <inki.dae@samsung.com>
Tue, 1 Oct 2013 05:51:37 +0000 (14:51 +0900)
committerInki Dae <inki.dae@samsung.com>
Mon, 2 Dec 2013 13:49:20 +0000 (22:49 +0900)
commit0cbc330e12835fcbac44e33d5632d805b16635f2
tree58f2478f34d26b0e1af07f8583c6158dc2d1f1f5
parentb8654b3753f8b79fc57dbd6a8a633d88274836a6
drm/exynos: release unhandled page flip events at postclose.

This patch resolves a dead lock issue that could be incurred when
exynos_drm_crtc_dpms function was called.

The exynos_drm_crtc_dpms function waits for the completion of pended
page flip events. However, preclose callback - this releases all unhandled
page flip events - is called prior to the exynos_drm_crtc_dpms function call
when drm is closed. So at this time, this will make the exynos_drm_crtc_dpms
to wait infiniately for the completion of the page flip events.

This patch releases the unhandled page flip events at postclose instead
of preclose so that exynos_drm_crtc_dpms function can be waked up.

Changelog v2:
- fix a memory leak when drm is closed.
  . it has a memory leak when a requeste page flip is handled after
    drm_events_release() is called and before drm_fb_release()
    is called. At this time, a drm_pending_event will not be freed.
    So also this chage releases the drm_pending_event at postclose().
    And it calls drm_vblank_put() for pair if there is any unhandled page
    flip event.

Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_drv.c