On Sat, 19 Mar 2011, Daniele Capuano wrote: > It works! Now, all data are received by the host. The only strange > behavior is that two or more host's callbacks are almost always needed > to really get all the data of a single urb. For example, for a > 32-packet request, a first callback where 22 packets have > iso_frame_desc[n].actual_length > 0 and second callback (with the > remaining 10 packets) are called. Does the gadget driver submit the data before the host begins asking for it? If it does then the data should be transferred starting from the very first iso_frame_desc. But if the gadget driver is slow to get started sending data then you should expect that the packets won't arrive right away. > I thought that it could be due to > the gadget which sends packets not fast enough, thus I tryed tuning > both the host-side and the gadget-side urb interval flag. But even > with a host-side interval=16 and a gadget-side bInterval=1 nothing > changes. The bInterval value is not used on the gadget side. It merely gets sent to the host -- and your host is ignoring it. Besides, you know that the gadget _is_ sending packets fast enough, because there are no gaps between the packets. The slow part is the time it takes to get started originally. > I also tryed the double-buffering technique suggested by > Hans, but no changes. > By the way, this is not really a problem, since the most important > thing is that data are correctly received. It could be just a > "curiosity" issue... :-) 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