linux/drivers/gpu/drm/omapdrm
Tomi Valkeinen 6da9f89172 drm/omap: fix (un)registering irqs inside an irq handler
omapdrm (un)registers irqs inside an irq handler. The problem is that
the (un)register function uses dispc_runtime_get/put() to enable the
clocks, and those functions are not irq safe by default.

This was kind of fixed in 48664b21ae
(OMAPDSS: DISPC: set irq_safe for runtime PM), which makes dispc's
runtime calls irq-safe.

However, using pm_runtime_irq_safe in dispc makes the parent of dispc,
dss, always enabled, effectively preventing PM for the whole DSS module.

This patch makes omapdrm behave better by adding new irq (un)register
functions that do not use dispc_runtime_get/put, and using those
functions in interrupt context. Thus we can make dispc again
non-irq-safe, allowing proper PM.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Rob Clark <robdclark@gmail.com>
2014-01-09 15:15:24 +02: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 drm/omap: Make fixed resolution panels work 2013-04-11 13:25:52 +03:00
omap_crtc.c drm/omap: fix (un)registering irqs inside an irq handler 2014-01-09 15:15:24 +02:00
omap_debugfs.c
omap_dmm_priv.h
omap_dmm_tiler.c DMA-API: others: use dma_set_coherent_mask() 2013-10-31 14:49:07 +00:00
omap_dmm_tiler.h
omap_drv.c drm: kill ->gem_init_object() and friends 2013-10-09 14:38:02 +10:00
omap_drv.h drm/omap: fix (un)registering irqs inside an irq handler 2014-01-09 15:15:24 +02:00
omap_encoder.c OMAPDSS: rename omap_dss_device's 'output' to 'src' 2013-08-30 08:51:10 +03:00
omap_fb.c drm/omap: use flip-work helper 2013-08-19 10:33:39 +10:00
omap_fbdev.c drm: Drop all the stub gamma_get, gamma_set, load_lut functions from drivers 2013-06-17 19:42:47 +10:00
omap_gem_dmabuf.c drm/gem: add mutex lock when using drm_gem_mmap_obj 2013-06-28 12:30:15 +10:00
omap_gem.c drm: kill ->gem_init_object() and friends 2013-10-09 14:38:02 +10:00
omap_irq.c drm/omap: fix (un)registering irqs inside an irq handler 2014-01-09 15:15:24 +02:00
omap_plane.c drm/omap: use flip-work helper 2013-08-19 10:33:39 +10:00
tcm-sita.c
tcm-sita.h
tcm.h
TODO