tech-userlevel archive

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

RE: Tracing lost USB bytes



> I'm talking to a Masterguard UPS via USB. From a dump of an official
MS-Win utility talking to it I know that 
> I have to send commands to vendor specific endpoint 0D and replies are
arriving in chunks of three to four bytes.
>
> Once every few tries, communication fails because the first (three-byte)
chunk of the reply is missing. 
> From a ktrace/kdump -R output I know that in the failing case, the first
read() takes slightly (in the order 
> of 10ms) longer than in the working case. After that, every chunk (three
or four bytes) takes 16ms to 
> read and nothing more seems to be missing.
>
> Any way to debug this? Does it ring a bell to someone?

Sounds like a data-toggle problem. Hard to debug w/o a bus trace, because
the host controller handles this. Would be to know host controller type when
looking at this. If it's an EHCI host controller (or XHCI), you might try
putting a hub in series with the device and see if it changes the behavior
(because then the transaction translators in the hub are likely to be used,
and that changes the paths in the host driver).

Good luck,
--Terry



Home | Main Index | Thread Index | Old Index