linux-stable/drivers/gpu/drm/exynos
Inki Dae 0cbc330e12 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>
2013-12-02 22:49:20 +09:00
..
exynos_ddc.c drm/exynos: Remove non-DT support in exynos_ddc 2013-09-05 13:43:45 +09:00
exynos_drm_buf.c drm/exynos: fix return value check in lowlevel_buffer_allocate() 2013-09-16 21:57:08 +09:00
exynos_drm_buf.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_connector.c drm/exynos: fimd: replace struct fb_videomode with videomode 2013-09-05 13:43:44 +09:00
exynos_drm_connector.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_core.c drm/exynos: Remove tracking log functions 2013-06-28 21:13:55 +09:00
exynos_drm_crtc.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_crtc.h drm/exynos: move finish page flip to a common place 2013-01-07 13:58:37 +09:00
exynos_drm_dmabuf.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_dmabuf.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_drv.c drm/exynos: release unhandled page flip events at postclose. 2013-12-02 22:49:20 +09:00
exynos_drm_drv.h drm/exynos: hdmi: use drm_display_mode to check the supported modes 2013-06-28 21:12:52 +09:00
exynos_drm_encoder.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_encoder.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fb.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_fb.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fbdev.c drm/exynos: Fix address space warnings in exynos_drm_fbdev.c 2013-09-16 21:57:06 +09:00
exynos_drm_fbdev.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimc.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_fimc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimd.c drm/exynos: Fix trivial typo in exynos_drm_fimd.c 2013-12-02 22:49:20 +09:00
exynos_drm_g2d.c drm/exynos: g2d: fix memory leak to userptr 2013-11-21 18:55:08 +10:00
exynos_drm_g2d.h drm/exynos: add G2D driver 2012-05-17 20:14:48 +09:00
exynos_drm_gem.c drm: kill ->gem_init_object() and friends 2013-10-09 14:38:02 +10:00
exynos_drm_gem.h drm: kill ->gem_init_object() and friends 2013-10-09 14:38:02 +10:00
exynos_drm_gsc.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_gsc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_hdmi.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_hdmi.h drm/exynos: hdmi: use drm_display_mode to check the supported modes 2013-06-28 21:12:52 +09:00
exynos_drm_iommu.c drm/exynos: Add NULL pointer check 2013-09-05 13:43:43 +09:00
exynos_drm_iommu.h drm/exynos: fix iommu address allocation order 2013-02-21 15:00:26 +09:00
exynos_drm_ipp.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_ipp.h drm/exynos: change member variable name. 2013-01-04 15:54:33 +09:00
exynos_drm_plane.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_plane.h drm/exynos: add plane enable/disable 2012-07-27 11:13:54 +09:00
exynos_drm_rotator.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
exynos_drm_rotator.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_vidi.c drm: Make irq_enabled bool 2013-10-09 15:55:32 +10:00
exynos_drm_vidi.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_hdmi.c drm/exynos: Remove non-DT support in exynos_hdmi 2013-09-05 13:43:46 +09:00
exynos_hdmi.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_hdmiphy.c drm/exynos: Remove non-DT support in exynos_hdmiphy 2013-09-05 13:43:45 +09:00
exynos_mixer.c drm/exynos: Remove redundant error messages 2013-09-05 13:43:43 +09:00
Kconfig drm: Add separate Kconfig option for fbdev helpers 2013-10-11 23:36:58 +02:00
Makefile drm/exynos: add gsc ipp driver 2012-12-15 02:40:00 +09:00
regs-fimc.h drm/exynos: add device tree support for fimc ipp driver 2013-04-29 14:35:32 +09:00
regs-gsc.h drm/exynos: add gsc ipp driver 2012-12-15 02:40:00 +09:00
regs-hdmi.h drm/exynos: add support for hdmiphy power control for exynos5 2012-12-14 15:40:49 +09:00
regs-mixer.h drm/exynos: add support for exynos5420 mixer 2013-06-28 21:13:57 +09:00
regs-rotator.h drm/exynos: add rotator ipp driver 2012-12-15 02:39:41 +09:00
regs-vp.h drm/exynos: added hdmi display support 2011-12-29 11:21:42 +09:00