On Tue, 14 Dec 2010, Sergej Pupykin wrote: > At Tue, 14 Dec 2010 10:47:01 -0500 (EST), > Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > You should change your program to install configuration 0 (i.e., > > unconfigure the device) before carrying out the data transfer. That > > will limit the transfer rate to one transaction per ms -- provided you > > continue to use a UHCI controller. > > Thanks, I'll try it. But it is strange: > - If I run Windows application in VirtualBox on Linux it stops working. > - If I run Linux application in VirtualBox on Windows it starts > working. > > I supposed that problem source is near the host controller driver. Yes, that's probably true. I don't know if your program will work if it does Set-Config(0). The device may not accept the DFU requests in that state. If necessary, you can force all control transactions to be spaced at millisecond intervals by editing drivers/usb/host/uhci-q.c in the Linux source. At the end of uhci_submit_control(), remove the lines saying if (urb->dev->speed == USB_SPEED_LOW || urb->dev->state != USB_STATE_CONFIGURED) skel = SKEL_LS_CONTROL; else { skel = SKEL_FS_CONTROL; uhci_add_fsbr(uhci, urb); } and replace them with the single line: skel = SKEL_LS_CONTROL; Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html