aboutsummaryrefslogtreecommitdiff
path: root/drivers/mfd/glamo/glamo-drm-private.h
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2009-11-10 00:06:38 +0100
committerThomas White <taw@bitwiz.org.uk>2009-11-15 14:24:28 +0100
commitc492dbbc420549a71cce8b0a8aea48c4a2c0e774 (patch)
tree31dda3bce39b6c92a3103b4e8578f134ff355f11 /drivers/mfd/glamo/glamo-drm-private.h
parentc848d00bd43c47e7f11724330380e0c68ec7ae5e (diff)
Add interrupt-driven waitqueue for better GPU synchronisation
Signed-off-by: Thomas White <taw@bitwiz.org.uk>
Diffstat (limited to 'drivers/mfd/glamo/glamo-drm-private.h')
-rw-r--r--drivers/mfd/glamo/glamo-drm-private.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/mfd/glamo/glamo-drm-private.h b/drivers/mfd/glamo/glamo-drm-private.h
index 7b6ae21f6d1..02ae7e9fd2e 100644
--- a/drivers/mfd/glamo/glamo-drm-private.h
+++ b/drivers/mfd/glamo/glamo-drm-private.h
@@ -31,6 +31,8 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/semaphore.h>
+#include <linux/spinlock.h>
+#include <linux/wait.h>
#include "glamo-core.h"
@@ -66,6 +68,10 @@ struct glamodrm_handle {
struct resource *lcd_regs;
char __iomem *lcd_base;
+ /* 2D engine registers */
+ struct resource *twod_regs;
+ char __iomem *twod_base;
+
ssize_t vram_size;
/* Memory management */
@@ -89,6 +95,16 @@ struct glamodrm_handle {
u_int16_t saved_vrtren;
u_int16_t saved_vdspst;
u_int16_t saved_vdspen;
+
+ /* Fencing */
+ atomic_t curr_seq; /* The last used stamp number */
+ struct list_head fence_list; /* List of active fences */
+ rwlock_t fence_list_lock; /* Lock to protect fence_list */
+ wait_queue_head_t fence_queue; /* Waitqueue */
+ struct tasklet_struct fence_tl; /* Tasklet for fence IRQ */
+
+ /* A scratch block */
+ struct drm_mm_node *scratch;
};