linux/drivers/gpu/drm/exynos
Imre Deak 9fb7dff5ec drm/exynos: fix lockdep for event_lock wrt. vbl_time_lock
Currently the exynos driver calls drm_vblank_off() with the event_lock
held, while drm_vblank_off() will lock vbl_time and vblank_time_lock.
This lock dependency chain conflicts with the one in drm_handle_vblank()
where we first lock vblank_time_lock and then the event_lock.

Fix this by removing the above drm_vblank_off() calls which are in fact
never executed: drm_dev->vblank_disable_allowed is only ever non-zero
during driver init, until it's set in {fimd,vidi}_subdrv_probe. Both the
driver init and open code is protected by drm_global_mutex, so the
earliest page flip ioctl can happen only after vblank_disable_allowed is
set to 1. Thus {fimd,vidi}_finish_pageflip - with pending flip events -
will always get called with vblank_disable_allowed being 1.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2012-11-29 03:30:34 -08:00
..
exynos_ddc.c Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-next 2012-10-07 21:06:33 +10:00
exynos_drm_buf.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
exynos_drm_buf.h drm/exynos: update gem and buffer framework. 2012-03-20 09:40:21 +00:00
exynos_drm_connector.c drm/exynos: fix display on issue 2012-10-31 06:11:29 -07:00
exynos_drm_connector.h drm/exynos: fix display power call issue. 2012-10-04 10:06:01 +09:00
exynos_drm_core.c Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-next 2012-10-07 21:06:33 +10:00
exynos_drm_crtc.c drm/exynos: hold event_lock while accessing pageflip_event_list 2012-11-29 03:30:33 -08:00
exynos_drm_crtc.h drm/exynos: update overlay via plane from crtc 2012-07-27 11:13:53 +09:00
exynos_drm_dmabuf.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
exynos_drm_dmabuf.h drm/exynos: added drm prime feature. 2012-05-08 18:46:32 +09:00
exynos_drm_drv.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
exynos_drm_drv.h Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-next 2012-10-07 21:06:33 +10:00
exynos_drm_encoder.c drm/exynos: Fix potential NULL pointer dereference in exynos_drm_encoder.c 2012-11-29 03:30:33 -08:00
exynos_drm_encoder.h drm/exynos: add plane enable/disable 2012-07-27 11:13:54 +09:00
exynos_drm_fb.c Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-next 2012-10-07 21:06:33 +10:00
exynos_drm_fb.h drm/exynos: check NV12M format specific to Exynos properly 2012-10-04 10:06:00 +09:00
exynos_drm_fbdev.c drm/exynos: fix linux framebuffer address setting. 2012-11-29 03:30:33 -08:00
exynos_drm_fbdev.h
exynos_drm_fimd.c drm/exynos: fix lockdep for event_lock wrt. vbl_time_lock 2012-11-29 03:30:34 -08:00
exynos_drm_g2d.c Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-next 2012-10-07 21:06:33 +10:00
exynos_drm_g2d.h drm/exynos: add G2D driver 2012-05-17 20:14:48 +09:00
exynos_drm_gem.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
exynos_drm_gem.h drm/exynos: fixed a comment to gem size. 2012-07-27 11:13:57 +09:00
exynos_drm_hdmi.c Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-next 2012-10-07 21:06:33 +10:00
exynos_drm_hdmi.h drm: exynos: hdmi: remove drm common hdmi platform data struct 2012-10-05 19:15:16 +09:00
exynos_drm_plane.c drm/exynos: remove unnecessary code. 2012-11-29 03:30:33 -08:00
exynos_drm_plane.h drm/exynos: add plane enable/disable 2012-07-27 11:13:54 +09:00
exynos_drm_vidi.c drm/exynos: fix lockdep for event_lock wrt. vbl_time_lock 2012-11-29 03:30:34 -08:00
exynos_drm_vidi.h drm/exynos: added virtual display driver. 2012-03-21 10:15:49 +00:00
exynos_hdmi.c Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-next 2012-10-07 21:06:33 +10:00
exynos_hdmi.h drm/exynos: cleanup exynos_hdmi.h 2012-03-20 09:41:45 +00:00
exynos_hdmiphy.c Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-next 2012-10-07 21:06:33 +10:00
exynos_mixer.c drm/exynos: call drm_vblank_put for each queued flip event 2012-11-29 03:30:33 -08:00
Kconfig drm/exynos: add support for ARCH_MULTIPLATFORM 2012-10-31 06:11:36 -07:00
Makefile drm/exynos: add G2D driver 2012-05-17 20:14:48 +09:00
regs-hdmi.h drm/exynos: enable dvi mode for dvi monitor 2012-05-17 20:14:25 +09:00
regs-mixer.h drm: exynos: hdmi: add support for exynos5 mixer 2012-10-05 19:15:10 +09:00
regs-vp.h drm/exynos: added hdmi display support 2011-12-29 11:21:42 +09:00