Re: isochronous receiving

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

 



On Fri, 22 Jul 2011, Daniele Capuano wrote:

> Hello,
> I'm facing a strange problem in my application:
> I'm developing both the host-side and the gadget-side of a usb
> connection, implementing both the drivers. The host starts receiving
> packets on an isochronous-input enpoint and, when data is available on
> the gadget, it sends such data to the host and it never stops. In this
> way, a continuous flow of data is generated between host and gadget.
> I noted that my gadget starts sending packets with some delay, since
> several void packets are received before data actually arrives to the
> host. By the way, this initial delay is tolerable.
> My problem is that sometimes, after a long period of data correctly
> received, the host stops receiving data and it never restarts anymore.
> Since I couldn't figure out why this strange behavior happened, I
> tryed to implement a communication recovery strategy: when data is not
> received for a while (100 packets lost) the host sends a request to
> the gadget through an interrupt endpoint. When the gadget receives
> such request, it checks if data is currently being sent on the iso ep.
> In this case it "restarts" the endpoint, i.e. usb_ep_disable() and
> usb_ep_enable() are called.
> Anyway, this did not solve the problem. What do you think could be a
> valid recovery strategy for my scenario?

Instead of trying to recover, you should try to find out what goes 
wrong in the first place.  Does the host continue to request the 
isochronous data?  Does the device receive the requests but fail to 
send anything back?  Does the device send back packets containing no 
data?

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