Re: [PATCH] USB: DWC3: Fix missed isoc IN transaction

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

 



On Wed, 23 May 2012, Pratyush Anand wrote:

> On 5/23/2012 12:02 AM, Paul Zimmerman wrote:
> > The sequence should go like this:
> >
> > - The host sends the Set Interface command that enables the isoc
> >    endpoint.
> 
> 
> So, is it necessary  to have a different alternate setting for isoc 
> transfer? Is Set Interface mandatory to start isoc?

According to the USB spec, devices aren't allowed to use isochronous 
transfers in altsetting 0 on any interface.  Consequently yes, 
Set-Interface is mandatory to start isoc.

In practice there are devices which do not obey this restriction.  
(Hopefully all of the Linux gadget driver do follow the rules
properly.)  Therefore the actual situation is that one of
Set-Configuration or Set-Interface is mandatory to start isoc.

Which isn't saying much, because without Set-Config it's impossible to 
communicate with anything other than endpoint 0.

> Is it that, there can not be asynchronous isoc transfer? Host sends IN 
> token. Core receives it, sends 0 packet to host,

Does it?  This is a question of judgment; I would expect that if a 
device doesn't have any data to send then it wouldn't send anything -- 
not even a zero-length packet.

>  generates xfernotready 
> to SW, gadget is not ready to send data now. Host is still sending IN 
> token and receives 0 byte packet. Gadget becomes ready after an 
> *undefined* time. Now it does not have track of micro frame number.

The Gadget API has a weakness in that it does not give drivers a way to 
specify which microframe a particular isochronous packet should belong 
to.

So what happens if an IN packet from the host gets corrupted or lost?  
Does all the following isochronous data get shifted back by one
interval, or does some of the data get skipped?  The Gadget API doesn't
say.

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