> 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
