[Top][All Lists]

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

Re: [Patch] [bug #26237] multiple problems with usb devices

From: Aleš Nesrsta
Subject: Re: [Patch] [bug #26237] multiple problems with usb devices
Date: Tue, 25 May 2010 20:58:12 +0200


I discovered something when I was looking for some hangs (timeouts):

There is problem in used toggling system on bulk transfers - in case of
some errors (underrun, overrun etc.) it missed synchronization with
device, because it expects that all TDs will be processed - and in error
case it is usually not true.
I made some simple workaround (only for OHCI yet) which looks working -
see patch (patch contains also some another things, mainly unrecoverable
error detection and related reset of OHCI and some change in error
handling in usbms_transfer).

I discovered some curious bug on one of my devices. It looks to be
little bit similar to this (which is unfortunately not solved, at least
in this mail list...):
Device is not able to send more then 1kb in one transfer. If grub
requests usual 4kb data block, device hangs together with OHCI when
first 1kb data is sent - there is no NAK, no STALL nor another error,
OHCI or device (or both together) simply hangs the bulk IN endpoint -
OHCI is waiting for the end of the IN transfer which never happened...
There is no reaction to CLEAR STALL sent to IN endpoint.
Device and OHCI leave this state when Bulk-only reset device procedure
is used.
It looks like there is no way how to make OHCI&device do longer

My first idea for workaround - to do in scsi read/write functions
splitting of large data block into parts of device sector size or simply
of grub sector size.
Any other better idea ?

Best regards

Attachment: usb_toggle_patch_100525_0
Description: Text Data

reply via email to

[Prev in Thread] Current Thread [Next in Thread]