Re: isoc-in endpoint transfers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux