1 /*
2  *  tm6000-buf.c - driver for TM5600/TM6000/TM6010 USB video capture devices
3  *
4  *  Copyright (C) 2006-2007 Mauro Carvalho Chehab <mchehab@infradead.org>
5  *
6  *  This program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation version 2
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program; if not, write to the Free Software
17  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */
19 
20 #include <linux/videodev2.h>
21 
22 #define TM6000_URB_MSG_LEN 180
23 
24 struct usb_isoc_ctl {
25 		/* max packet size of isoc transaction */
26 	int				max_pkt_size;
27 
28 		/* number of allocated urbs */
29 	int				num_bufs;
30 
31 		/* urb for isoc transfers */
32 	struct urb			**urb;
33 
34 		/* transfer buffers for isoc transfer */
35 	char				**transfer_buffer;
36 
37 		/* Last buffer command and region */
38 	u8				cmd;
39 	int				pos, size, pktsize;
40 
41 		/* Last field: ODD or EVEN? */
42 	int				vfield, field;
43 
44 		/* Stores incomplete commands */
45 	u32				tmp_buf;
46 	int				tmp_buf_len;
47 
48 		/* Stores already requested buffers */
49 	struct tm6000_buffer		*buf;
50 };
51