On Thu, 9 Aug 2012, Tomas Sokorai wrote:

> OK, more info gathered:
> 
> The skip when "Highlander" ed is unkillable, is entered from the
> "skip_ed" label jump, not from the tick_before() check.
> ed->ed_next is indeed NULL at that point.

That's what I was afraid of.   This means your OHCI controller has a 
hardware bug; either it doesn't add the completed TD to the done list 
or else it doesn't tell the computer that it has done so.

This is in fact the sort of bug that the ZFMicro quirk was written for, 
except that the ZFMicro quirk affects Interrupt endpoints and in your 
case a Bulk endpoint is affected.

In theory a similar quirk could be written to fix your problem.  An
easy way to test this, if you can automatically detect the "hung"
condition, would be to set ohci->ed_to_check to the "unkillable" ed.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to