diff options
Diffstat (limited to 'drivers/media/video/dabusb.h')
-rw-r--r-- | drivers/media/video/dabusb.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/drivers/media/video/dabusb.h b/drivers/media/video/dabusb.h new file mode 100644 index 000000000000..00eb34c863eb --- /dev/null +++ b/drivers/media/video/dabusb.h | |||
@@ -0,0 +1,85 @@ | |||
1 | #define _BULK_DATA_LEN 64 | ||
2 | typedef struct | ||
3 | { | ||
4 | unsigned char data[_BULK_DATA_LEN]; | ||
5 | unsigned int size; | ||
6 | unsigned int pipe; | ||
7 | }bulk_transfer_t,*pbulk_transfer_t; | ||
8 | |||
9 | #define DABUSB_MINOR 240 /* some unassigned USB minor */ | ||
10 | #define DABUSB_VERSION 0x1000 | ||
11 | #define IOCTL_DAB_BULK _IOWR('d', 0x30, bulk_transfer_t) | ||
12 | #define IOCTL_DAB_OVERRUNS _IOR('d', 0x15, int) | ||
13 | #define IOCTL_DAB_VERSION _IOR('d', 0x3f, int) | ||
14 | |||
15 | #ifdef __KERNEL__ | ||
16 | |||
17 | typedef enum { _stopped=0, _started } driver_state_t; | ||
18 | |||
19 | typedef struct | ||
20 | { | ||
21 | struct mutex mutex; | ||
22 | struct usb_device *usbdev; | ||
23 | wait_queue_head_t wait; | ||
24 | wait_queue_head_t remove_ok; | ||
25 | spinlock_t lock; | ||
26 | atomic_t pending_io; | ||
27 | driver_state_t state; | ||
28 | int remove_pending; | ||
29 | int got_mem; | ||
30 | int total_buffer_size; | ||
31 | unsigned int overruns; | ||
32 | int readptr; | ||
33 | int opened; | ||
34 | int devnum; | ||
35 | struct list_head free_buff_list; | ||
36 | struct list_head rec_buff_list; | ||
37 | } dabusb_t,*pdabusb_t; | ||
38 | |||
39 | typedef struct | ||
40 | { | ||
41 | pdabusb_t s; | ||
42 | struct urb *purb; | ||
43 | struct list_head buff_list; | ||
44 | } buff_t,*pbuff_t; | ||
45 | |||
46 | typedef struct | ||
47 | { | ||
48 | wait_queue_head_t wait; | ||
49 | } bulk_completion_context_t, *pbulk_completion_context_t; | ||
50 | |||
51 | |||
52 | #define _DABUSB_IF 2 | ||
53 | #define _DABUSB_ISOPIPE 0x09 | ||
54 | #define _ISOPIPESIZE 16384 | ||
55 | |||
56 | #define _BULK_DATA_LEN 64 | ||
57 | // Vendor specific request code for Anchor Upload/Download | ||
58 | // This one is implemented in the core | ||
59 | #define ANCHOR_LOAD_INTERNAL 0xA0 | ||
60 | |||
61 | // EZ-USB Control and Status Register. Bit 0 controls 8051 reset | ||
62 | #define CPUCS_REG 0x7F92 | ||
63 | #define _TOTAL_BUFFERS 384 | ||
64 | |||
65 | #define MAX_INTEL_HEX_RECORD_LENGTH 16 | ||
66 | |||
67 | #ifndef _BYTE_DEFINED | ||
68 | #define _BYTE_DEFINED | ||
69 | typedef unsigned char BYTE; | ||
70 | #endif // !_BYTE_DEFINED | ||
71 | |||
72 | #ifndef _WORD_DEFINED | ||
73 | #define _WORD_DEFINED | ||
74 | typedef unsigned short WORD; | ||
75 | #endif // !_WORD_DEFINED | ||
76 | |||
77 | typedef struct _INTEL_HEX_RECORD | ||
78 | { | ||
79 | BYTE Length; | ||
80 | WORD Address; | ||
81 | BYTE Type; | ||
82 | BYTE Data[MAX_INTEL_HEX_RECORD_LENGTH]; | ||
83 | } INTEL_HEX_RECORD, *PINTEL_HEX_RECORD; | ||
84 | |||
85 | #endif | ||