• I
    drm/exynos: release unhandled page flip events at postclose. · 0cbc330e
    Inki Dae 提交于
    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: NInki Dae <inki.dae@samsung.com>
    Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
    0cbc330e
exynos_drm_drv.c 12.1 KB