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