linux/drivers/gpu/drm/omapdrm
Laurent Pinchart c397cfd496 drm: omapdrm: Turn vblank on/off when enabling/disabling CRTC
The DRM core vblank handling mechanism requires drivers to forcefully
turn vblank reporting off when disabling the CRTC, and to restore the
vblank reporting status when enabling the CRTC.

Implement this using the drm_crtc_vblank_on/off helpers. When disabling
vblank we must first wait for page flips to complete, so implement page
flip completion wait as well.

Finally, drm_crtc_vblank_off() must be called at startup to synchronize
the state of the vblank core code with the hardware, which is initially
disabled. An interesting side effect is that the .disable_vblank()
operation will now be called for the first time with the CRTC disabled
and the DISPC runtime suspended. The dispc_runtime_get() call in
.disable_vblank() is supposed to take care of that, but the operation is
called with a spinlock held, which prevents it from sleeping.

To fix that move DISPC runtime PM handling out of the vblank operations
to the CRTC code, ensuring that the display controller will always be
powered when enabling or disabling vblank interrupts.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
2015-06-12 22:52:46 +03:00
..
Kconfig drm: Add separate Kconfig option for fbdev helpers 2013-10-11 23:36:58 +02:00
Makefile drm/omap: kill omap_gem_helpers.c 2013-08-19 10:36:16 +10:00
omap_connector.c fbdev changes for v4.1 2015-04-20 15:16:25 -07:00
omap_crtc.c drm: omapdrm: Turn vblank on/off when enabling/disabling CRTC 2015-06-12 22:52:46 +03:00
omap_debugfs.c drm: store the gem vma offset manager in a typed pointer 2014-01-14 12:38:32 +10:00
omap_dmm_priv.h drm/omap: fix race conditon in DMM 2015-03-24 13:50:59 +02:00
omap_dmm_tiler.c drm/omap: tiler: add hibernation callback 2015-03-24 14:09:43 +02:00
omap_dmm_tiler.h drm/omap: fix TILER on OMAP5 2015-03-24 13:50:55 +02:00
omap_drv.c drm: omapdrm: Turn vblank on/off when enabling/disabling CRTC 2015-06-12 22:52:46 +03:00
omap_drv.h drm: omapdrm: Cancel pending page flips when closing device 2015-06-12 22:52:45 +03:00
omap_encoder.c drm/omap: Add infoframe & dvi/hdmi mode support 2014-07-04 11:17:59 +03:00
omap_fb.c drm/omap: handle incompatible buffer stride and pixel size 2015-03-24 13:50:55 +02:00
omap_fbdev.c drm: omapdrm: Remove manual update display support 2015-03-20 14:30:19 +02:00
omap_gem_dmabuf.c dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
omap_gem.c drm/omap: fix race condition with dev->obj_list 2015-03-24 13:50:58 +02:00
omap_irq.c drm: omapdrm: Turn vblank on/off when enabling/disabling CRTC 2015-06-12 22:52:46 +03:00
omap_plane.c drm: omapdrm: Apply settings synchronously 2015-06-12 22:52:45 +03:00
tcm-sita.c
tcm-sita.h
tcm.h
TODO