summaryrefslogtreecommitdiffstats
path: root/drivers/char/planb.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/planb.h')
-rw-r--r--drivers/char/planb.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/char/planb.h b/drivers/char/planb.h
index e57bed49b..98d5697c9 100644
--- a/drivers/char/planb.h
+++ b/drivers/char/planb.h
@@ -8,7 +8,7 @@
Based largely on the bttv driver by Ralph Metzler (rjkm@thp.uni-koeln.de)
- Additional debugging and coding by Takashi Oe (toe@unlinfo.unl.edu)
+ Additional debugging and coding by Takashi Oe (toe@unlserve.unl.edu)
This program is free software; you can redistribute it and/or modify
@@ -69,6 +69,7 @@
/* for capture operations */
#define MAX_GBUFFERS 2
+/* note PLANB_MAX_FBUF must be divisible by PAGE_SIZE */
#ifdef PLANB_GSCANLINE
#define PLANB_MAX_FBUF 0x240000 /* 576 * 1024 * 4 */
#define TAB_FACTOR (1)
@@ -132,8 +133,7 @@ struct planb_registers {
volatile unsigned int intr_stat; /* 0x104: irq status */
#define PLANB_CLR_IRQ 0x00 /* clear Plan B interrupt */
#define PLANB_GEN_IRQ 0x01 /* assert Plan B interrupt */
-#define PLANB_FRM_IRQ 0x02 /* end of frame */
-#define PLANB_IRQ_CMD_MASK 0x00000003U /* reserve 2 lsbs for command */
+#define PLANB_FRM_IRQ 0x0100 /* end of frame */
unsigned int pad3[1]; /* empty? */
volatile unsigned int reg5; /* 0x10c: ??? */
unsigned int pad4[60]; /* empty? */
@@ -199,8 +199,9 @@ struct planb {
wait_queue_head_t capq;
int last_fr;
int prev_last_fr;
- unsigned char *fbuffer;
- unsigned char *gbuffer[MAX_GBUFFERS];
+ unsigned char **rawbuf;
+ int rawbuf_size;
+ int gbuf_idx[MAX_GBUFFERS];
volatile struct dbdma_cmd *cap_cmd[MAX_GBUFFERS];
volatile struct dbdma_cmd *last_cmd[MAX_GBUFFERS];
volatile struct dbdma_cmd *pre_cmd[MAX_GBUFFERS];
@@ -218,8 +219,10 @@ struct planb {
#else
#define MAX_LNUM 431 /* change this if PLANB_MAXLINES or */
/* PLANB_MAXPIXELS changes */
- unsigned char *l_fr_addr[MAX_GBUFFERS];
+ int l_fr_addr_idx[MAX_GBUFFERS];
unsigned char *l_to_addr[MAX_GBUFFERS][MAX_LNUM];
+ int l_to_next_idx[MAX_GBUFFERS][MAX_LNUM];
+ int l_to_next_size[MAX_GBUFFERS][MAX_LNUM];
int lsize[MAX_GBUFFERS], lnum[MAX_GBUFFERS];
#endif
};