> The patch for unlimited retries is below.  Note this patch is 
> for 2.6.18; it may need some adjusting to apply to your old kernel.

I am not sure of what sort of adjustment needed to be done on my kernel.
Anyway I applied the patch and I can see that retry count increased to 4
but not infinite as expected. What sort of adjustments are needed ?

> This indicates that the problem is a small hardware incompatibility,
as I have said before.

We attached a High Speed hub to our system and inserted this disk in the
hub. The device works perfectly in such mode.

We also attached a Full speed hub (used in both bus and self powered
mode) to our system and inserted this disk in the hub. The device fails
to work in such mode. The reasons for device failure are identicle to
case when it is directly connected to our system.

The above experiments do not indicate hardware incompatibility. Do you
agree ?

Thanks

> -----Original Message-----
> From: Alan Stern [mailto:[EMAIL PROTECTED] 
> Sent: Monday, September 25, 2006 2:14 PM
> To: Vivek Dharmadhikari
> Cc: [email protected]
> Subject: RE: [linux-usb-devel] USB DISK does not work
> 
> On Mon, 25 Sep 2006, Vivek Dharmadhikari wrote:
> 
> > > The driver _did_ enqueue commands after the timeout errors.
> > 
> > Got it ! The USB analyzer indicates that same CBW was 
> repeated three 
> > times in row because the device did not generate ACK for the CBW. 
> > After three failed attempts, usb_stor_Bulk_reset is 
> invoked. Is there 
> > a way to increase the retry count from its current value of 3 ?
> 
> Not easily.  The retry count is limited in the hardware to 3, 
> or it can be disabled so that you get unlimited retries.  
> Maybe this would help you, I don't know.  In my experience 
> when a device fails to send an ACK or a NAK in response to a 
> packet, more retries don't help -- the device usually needs 
> to be reset.  But perhaps your case is different.
> 
> The patch for unlimited retries is below.  Note this patch is 
> for 2.6.18; it may need some adjusting to apply to your old kernel.
> 
> > Note also that when the same key attached to a linux PC, 
> successfully 
> > generates ACK for all the CBW.
> 
> This indicates that the problem is a small hardware 
> incompatibility, as I have said before.  For whatever reason, 
> sometimes the device isn't able to understand the signals 
> coming from the computer.  Maybe the embedded device (or 
> something near it) puts out just a little too much 
> electromagnetic interference.
> 
> Alan Stern
> 
> 
> Index: mm/drivers/usb/host/ohci-q.c
> ===================================================================
> --- mm.orig/drivers/usb/host/ohci-q.c
> +++ mm/drivers/usb/host/ohci-q.c
> @@ -625,8 +625,8 @@ static void td_submit_urb (
>               /* FALLTHROUGH */
>       case PIPE_BULK:
>               info = is_out
> -                     ? TD_T_TOGGLE | TD_CC | TD_DP_OUT
> -                     : TD_T_TOGGLE | TD_CC | TD_DP_IN;
> +                     ? TD_T_TOGGLE | TD_CC | TD_DP_OUT | TD_EC
> +                     : TD_T_TOGGLE | TD_CC | TD_DP_IN | TD_EC;
>               /* TDs _could_ transfer up to 8K each */
>               while (data_len > 4096) {
>                       td_fill (ohci, info, data, 4096, urb, cnt);
> 

-------------------------------------------------------------------------
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
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to