inbuf, 12, 2*HZ) != 12) {
inbuf, 12, 2000) != 12) {
int vp7045_usb_op(struct dvb_usb_device *d, u8 cmd, u8 *out, int outlen, u8 *in, int inlen, int msec){	int ret = 0;	u8 inbuf[12] = { 0 }, outbuf[20] = { 0 };	outbuf[0] = cmd;	if (outlen > 19)		outlen = 19;	if (inlen > 11)		inlen = 11;	if (out != NULL && outlen > 0)		memcpy(&outbuf[1], out, outlen);	deb_xfer("out buffer: ");	debug_dump(outbuf,outlen+1,deb_xfer);	if ((ret = down_interruptible(&d->usb_sem)))		return ret;	if (usb_control_msg(d->udev,			usb_sndctrlpipe(d->udev,0),			TH_COMMAND_OUT, USB_TYPE_VENDOR | USB_DIR_OUT, 0, 0,			outbuf, 20, 2*HZ) != 20) {		err("USB control message 'out' went wrong.");		ret = -EIO;		goto unlock;	}	msleep(msec);	if (usb_control_msg(d->udev,			usb_rcvctrlpipe(d->udev,0),			TH_COMMAND_IN, USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,			inbuf, 12, 2*HZ) != 12) {		err("USB control message 'in' went wrong.");		ret = -EIO;		goto unlock;	}	deb_xfer("in buffer: ");	debug_dump(inbuf,12,deb_xfer);	if (in != NULL && inlen > 0)		memcpy(in,&inbuf[1],inlen);unlock:	up(&d->usb_sem);	return ret;}