Hey Alan,

Thanks a lot for looking at the traces!

> > What's interesting to see is that for most failed requests the first
data
> > transaction follows within less than 500 microseconds after the SETUP
> > transaction. It's not always the case, but it definitely seems to help
> > trigger the problem.
>
> The same thing is true for most of the successful transfers as well, so
> I'm not sure what to make of it.

If I compare the stalled GetMin requests to the successful ones, it seems
that the successful ones take longer (generally more than 1 ms). Can you
point me to some successful requests where the time difference is less than
500 us?

> Incidentally, the trace shows that quite often the device responding to
> PING with ACK even though it's not ready to accept any data.  That
happens
> lots and lots of times.  It looks like another bug.

We're aware of that, although we don't think it's a bug. From what I've
been told (I haven't done any research on that myself), the USB
specification does not say anything about this. Although it's admittedly a
little odd, that by itself does not cause any problems and the behavior on
Windows is the same.

> The same sort of thing happens with those failed commands.  There's a
long
> period where the devices waffles back and forth, sometimes sending ACK,
> sometimes NAK, until eventually it sends STALL.  Why doesn't it send
STALL
> right away if it thinks the protocol has been violated?

The reason for that is that the ACKs are returned by the USB cell without
the firmware being involved in the first place. The STALLs are returned
later in the interrupt handler. We know of one problem with this particular
ASIC where it loses certain interrupts and that's very likely what we're
seeing here, too.

> The real question is why does the device work under Windows.  To answer
> that will require looking at traces made with a Windows host.

That's indeed what we're trying to find out. I've uploaded a Windows trace
to the FTP server. It covers plugging of the device, streaming, and setting
parameters like brightness, pretty much the same thing that leads to
stalled requests on Linux.

Cheers,
Martin

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to