int USB_ControlVendorCommand(void * handle,void * ioBuffer,unsigned long inputBu fferLength,unsigned long outputBufferLength) { UsbDevice * usbdev=handle; struct usb_device *dev=usbdev->dev; u16 *pwIoBuf = NULL; int i; int rc; int pipe; u8 *temppcIoBuf; u8 *pdwIoBuf = NULL; u8 *pcIoBuf = NULL; u8 reqType = 0; u8 req = 0; u16 value = 0; u16 index = 0; u16 wlen = 8; pcIoBuf = (u8 *)ioBuffer; reqType = *pcIoBuf; req = *(pcIoBuf+1); pwIoBuf = (u16 *) (pcIoBuf+2); value = *pwIoBuf; index = *(pwIoBuf+1); wlen = *(pwIoBuf+2); if(wlen) { pdwIoBuf = pcIoBuf+8; temppcIoBuf = pcIoBuf; for (i=0; i < wlen; i++) *temppcIoBuf++ = *pdwIoBuf++; } if(reqType&0x80) pipe=usb_rcvctrlpipe(dev, 0); else pipe=usb_sndctrlpipe(dev, 0); if(wlen){ rc=my_usb_control_msg(dev,pipe,req,reqType,value,index,ioBuffer, wlen,5*HZ); return rc; } rc=my_usb_control_msg(dev,pipe,req,reqType,value,index,NULL,wlen,5*HZ); return rc; } void LoadTable_1(void* handle) { int i; char tunerBuff[20]; unsigned long uloutlen = 8; unsigned long ulvallen = 16; unsigned char FirstByte = FWData[0]; unsigned char tunerBuff19[20]={0x40,16,XC3028_I2C_ADDR,FirstByte,0x00,0x 00,0x02,0x00}; for (i=0;i*8