18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * tm6000-buf.c - driver for TM5600/TM6000/TM6010 USB video capture devices
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (c) 2006-2007 Mauro Carvalho Chehab <mchehab@kernel.org>
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <linux/videodev2.h>
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#define TM6000_URB_MSG_LEN 180
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cistruct usb_isoc_ctl {
138c2ecf20Sopenharmony_ci		/* max packet size of isoc transaction */
148c2ecf20Sopenharmony_ci	int				max_pkt_size;
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci		/* number of allocated urbs */
178c2ecf20Sopenharmony_ci	int				num_bufs;
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci		/* urb for isoc transfers */
208c2ecf20Sopenharmony_ci	struct urb			**urb;
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci		/* transfer buffers for isoc transfer */
238c2ecf20Sopenharmony_ci	char				**transfer_buffer;
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci		/* Last buffer command and region */
268c2ecf20Sopenharmony_ci	u8				cmd;
278c2ecf20Sopenharmony_ci	int				pos, size, pktsize;
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci		/* Last field: ODD or EVEN? */
308c2ecf20Sopenharmony_ci	int				vfield, field;
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci		/* Stores incomplete commands */
338c2ecf20Sopenharmony_ci	u32				tmp_buf;
348c2ecf20Sopenharmony_ci	int				tmp_buf_len;
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci		/* Stores already requested buffers */
378c2ecf20Sopenharmony_ci	struct tm6000_buffer		*buf;
388c2ecf20Sopenharmony_ci};
39