summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/omap_drv.h
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2015-03-05 22:42:39 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2015-06-12 21:52:48 +0200
commit748471a5e4afc91e2867caad3da613320fd88bbe (patch)
treebbd888a41ead24d4bffbcf03598b2c376a9d9c4e /drivers/gpu/drm/omapdrm/omap_drv.h
parentdrm: omapdrm: Replace encoder mode_fixup with atomic_check (diff)
downloadlinux-748471a5e4afc91e2867caad3da613320fd88bbe.tar.xz
linux-748471a5e4afc91e2867caad3da613320fd88bbe.zip
drm: omapdrm: Implement asynchronous commit support
Implement a custom .atomic_commit() handler that supports asynchronous commits using a work queue. This can be used for userspace-driven asynchronous commits, as well as for an atomic page flip implementation. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_drv.h')
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h b/drivers/gpu/drm/omapdrm/omap_drv.h
index 6448fa809215..21c3929b06e7 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -23,6 +23,7 @@
#include <linux/module.h>
#include <linux/platform_data/omap_drm.h>
#include <linux/types.h>
+#include <linux/wait.h>
#include <video/omapdss.h>
#include <drm/drmP.h>
@@ -105,6 +106,13 @@ struct omap_drm_private {
struct list_head irq_list; /* list of omap_drm_irq */
uint32_t vblank_mask; /* irq bits set for userspace vblank */
struct omap_drm_irq error_handler;
+
+ /* atomic commit */
+ struct {
+ wait_queue_head_t wait;
+ u32 pending;
+ spinlock_t lock; /* Protects commit.pending */
+ } commit;
};