patch-2.1.94 linux/drivers/char/bttv.h
Next file: linux/drivers/char/bw-qcam.c
Previous file: linux/drivers/char/bttv.c
Back to the patch index
Back to the overall index
- Lines: 244
- Date:
Wed Apr 8 17:24:48 1998
- Orig file:
v2.1.93/linux/drivers/char/bttv.h
- Orig date:
Sat Nov 29 10:33:19 1997
diff -u --recursive --new-file v2.1.93/linux/drivers/char/bttv.h linux/drivers/char/bttv.h
@@ -26,72 +26,138 @@
#include <linux/types.h>
#include <linux/wait.h>
+#include "i2c.h"
+#include "msp3400.h"
#include "bt848.h"
+#include <linux/videodev.h>
+
+#define MAX_CLIPRECS 100
+#define RISCMEM_LEN (32744*2)
+#define MAX_FBUF 0x144000
+
+struct riscprog
+{
+ unsigned int length;
+ u32 *busadr;
+ u32 *prog;
+};
-typedef unsigned int dword;
-struct riscprog {
- uint length;
- dword *busadr;
- dword *prog;
+/* clipping rectangle */
+struct cliprec
+{
+ int x, y, x2, y2;
+ struct cliprec *next;
};
-/* values that can be set by user programs */
-struct bttv_window {
- int x, y;
- ushort width, height;
- ushort bpp, bpl;
- ushort swidth, sheight;
- short cropx, cropy;
- ushort cropwidth, cropheight;
- int vidadr;
- ushort freq;
- int norm;
- int interlace;
- int color_fmt;
+/* grab buffer */
+struct gbuffer
+{
+ struct gbuffer *next;
+ struct gbuffer *next_active;
+ void *adr;
+ int x, y;
+ int width, height;
+ unsigned int bpl;
+ unsigned int fmt;
+ int flags;
+#define GBUF_ODD 1
+#define GBUF_EVEN 2
+#define GBUF_LFB 4
+#define GBUF_INT 8
+ unsigned int length;
+ void *ro;
+ void *re;
+ u32 bro;
+ u32 bre;
};
-/* private data that can only be read (or set indirectly) by user program */
-struct bttv {
- struct video_device video_dev;
- struct video_picture picture; /* Current picture params */
- struct video_audio audio_dev; /* Current audio params */
- u_char bus; /* PCI bus the Bt848 is on */
- u_char devfn;
- u_char revision;
- u_char irq; /* IRQ used by Bt848 card */
- uint bt848_adr; /* bus address of IO mem returned by PCI BIOS */
- u_char *bt848_mem; /* pointer to mapped IO memory */
- ulong busriscmem;
- dword *riscmem;
+#ifdef __KERNEL__
+
+struct bttv_window
+{
+ int x, y;
+ ushort width, height;
+ ushort bpp, bpl;
+ ushort swidth, sheight;
+ short cropx, cropy;
+ ushort cropwidth, cropheight;
+ unsigned int vidadr;
+ ushort freq;
+ int norm;
+ int interlace;
+ int color_fmt;
+};
+
+
+struct bttv
+{
+ struct video_device video_dev;
+ struct video_device radio_dev;
+ struct video_device vbi_dev;
+ struct video_picture picture; /* Current picture params */
+ struct video_audio audio_dev; /* Current audio params */
+
+ struct i2c_bus i2c;
+ int have_msp3400;
+ int have_tuner;
+
+ unsigned short id;
+ unsigned char bus; /* PCI bus the Bt848 is on */
+ unsigned char devfn;
+ unsigned char revision;
+ unsigned char irq; /* IRQ used by Bt848 card */
+ unsigned int bt848_adr; /* bus address of IO mem returned by PCI BIOS */
+ unsigned char *bt848_mem; /* pointer to mapped IO memory */
+ unsigned long busriscmem;
+ u32 *riscmem;
- u_char *vbibuf;
- struct bttv_window win;
- int type; /* card type */
- int audio; /* audio mode */
- int user;
- int tuner;
- int tuneradr;
- int dbx;
-
- dword *risc_jmp;
- dword *vbi_odd;
- dword *vbi_even;
- dword bus_vbi_even;
- dword bus_vbi_odd;
- struct wait_queue *vbiq;
- struct wait_queue *capq;
- int vbip;
-
- dword *risc_odd;
- dword *risc_even;
- int cap;
+ unsigned char *vbibuf;
+ struct bttv_window win;
+ int type; /* card type */
+ int audio; /* audio mode */
+ int user;
+ int dbx;
+ int radio;
+
+ u32 *risc_jmp;
+ u32 *vbi_odd;
+ u32 *vbi_even;
+ u32 bus_vbi_even;
+ u32 bus_vbi_odd;
+ struct wait_queue *vbiq;
+ struct wait_queue *capq;
+ struct wait_queue *capqo;
+ struct wait_queue *capqe;
+ int vbip;
+
+ u32 *risc_odd;
+ u32 *risc_even;
+ int cap;
+ struct cliprec *cliprecs;
+ int ncr; /* number of clipping rectangles */
+
+ struct gbuffer *ogbuffers;
+ struct gbuffer *egbuffers;
+ u16 gwidth, gheight, gfmt;
+ u32 *grisc;
+ unsigned long gro;
+ unsigned long gre;
+ char *fbuffer;
+ int gmode;
+ int grabbing;
+ int lastgrab;
+ int grab;
+ int grabcount;
};
+#endif
+
/*The following should be done in more portable way. It depends on define
of _ALPHA_BTTV in the Makefile.*/
+
#ifdef _ALPHA_BTTV
#define btwrite(dat,adr) writel((dat),(char *) (btv->bt848_adr+(adr)))
#define btread(adr) readl(btv->bt848_adr+(adr))
@@ -105,30 +171,10 @@
#define btaor(dat,mask,adr) btwrite((dat) | ((mask) & btread(adr)), adr)
/* bttv ioctls */
-#define BTTV_WRITE_BTREG 0x00
-#define BTTV_READ_BTREG 0x01
-#define BTTV_SET_BTREG 0x02
-#define BTTV_SETRISC 0x03
-#define BTTV_SETWTW 0x04
-#define BTTV_GETWTW 0x05
-#define BTTV_DMA 0x06
-#define BTTV_CAP_OFF 0x07
-#define BTTV_CAP_ON 0x08
-#define BTTV_GETBTTV 0x09
-#define BTTV_SETFREQ 0x0a
-#define BTTV_SETCHAN 0x0b
-#define BTTV_INPUT 0x0c
-#define BTTV_READEE 0x0d
-#define BTTV_WRITEEE 0x0e
-#define BTTV_BRIGHT 0x0f
-#define BTTV_HUE 0x10
-#define BTTV_COLOR 0x11
-#define BTTV_CONTRAST 0x12
-#define BTTV_SET_FFREQ 0x13
-#define BTTV_MUTE 0x14
-#define BTTV_GRAB 0x20
-#define BTTV_TESTM 0x20
+#define BTTV_READEE _IOW('v', BASE_VIDIOCPRIVATE+0, char [256])
+#define BTTV_WRITEE _IOR('v', BASE_VIDIOCPRIVATE+1, char [256])
+#define BTTV_GRAB _IOR('v' , BASE_VIDIOCPRIVATE+2, struct gbuf)
#define BTTV_UNKNOWN 0x00
@@ -137,12 +183,14 @@
#define BTTV_STB 0x03
#define BTTV_INTEL 0x04
#define BTTV_DIAMOND 0x05
+#define BTTV_AVERMEDIA 0x06
#define AUDIO_TUNER 0x00
-#define AUDIO_EXTERN 0x01
-#define AUDIO_INTERN 0x02
-#define AUDIO_OFF 0x03
-#define AUDIO_ON 0x04
+#define AUDIO_RADIO 0x01
+#define AUDIO_EXTERN 0x02
+#define AUDIO_INTERN 0x03
+#define AUDIO_OFF 0x04
+#define AUDIO_ON 0x05
#define AUDIO_MUTE 0x80
#define AUDIO_UNMUTE 0x81
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov