aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/intelfb/intelfb.h
diff options
context:
space:
mode:
authorEric Hustvedt <ehustvedt@cecropia.com>2006-06-20 14:36:41 -0400
committerDave Airlie <airlied@linux.ie>2006-07-03 18:59:46 +1000
commit7649757bd900bc900adcd95ab08903cdc28342fa (patch)
tree4c710d9e458ff3c6731180aca738123886f7adec /drivers/video/intelfb/intelfb.h
parent9a5f019b1a9ea6a75ba36d7c312ff069006ed479 (diff)
downloadkernel_samsung_smdk4412-7649757bd900bc900adcd95ab08903cdc28342fa.zip
kernel_samsung_smdk4412-7649757bd900bc900adcd95ab08903cdc28342fa.tar.gz
kernel_samsung_smdk4412-7649757bd900bc900adcd95ab08903cdc28342fa.tar.bz2
intelfb: add vsync interrupt support
[03/05] intelfb: Implement basic interrupt handling Functions have been added to enable and disable interrupts using the MMIO registers. Currently only pipe A vsync interrupts are enabled. A generalized vsync accounting struct is defined, with the intent that it can encapsulate per-pipe vsync related info in the future. Currently a single instance is hard-coded. The interrupt service routine currently only looks for vsync interrupts on pipe A, and increments a counter and wakes up anyone waiting on it. This implementation is heavily influenced by similar implementations in the atyfb and matroxfb drivers. Signed-off-by: Eric Hustvedt <ehustvedt@cecropia.com>
Diffstat (limited to 'drivers/video/intelfb/intelfb.h')
-rw-r--r--drivers/video/intelfb/intelfb.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/video/intelfb/intelfb.h b/drivers/video/intelfb/intelfb.h
index cb016fe..dab1f2d 100644
--- a/drivers/video/intelfb/intelfb.h
+++ b/drivers/video/intelfb/intelfb.h
@@ -208,6 +208,11 @@ struct intelfb_heap_data {
u32 size; // in bytes
};
+struct intelfb_vsync {
+ wait_queue_head_t wait;
+ unsigned int count;
+};
+
struct intelfb_info {
struct fb_info *info;
struct fb_ops *fbops;
@@ -271,6 +276,12 @@ struct intelfb_info {
int fixed_mode;
int ring_active;
int flag;
+ unsigned long irq_flags;
+ int open;
+
+ /* vsync */
+ struct intelfb_vsync vsync;
+ spinlock_t int_lock;
/* hw cursor */
int cursor_on;