David >Where IDLE == only SOFs are seen?
>Or the hardware idle state, by which you mean the port was suspended? IDLE==only SOFs. I confirmed that using Catalyst. >If EHCI had sane timer handling, it would be easier to add >code doing things like forcing endpoints out of NYET mode >every few seconds. Sounds like a good idea. Has been already implemented in the newer kernel ? >For paranoia's sake, it would be good to verify more of the >interactions with the host. The previous request and response >especially ... did they trigger an error of some kind? >If so, how was it recovered from? I did not see any errors per say. Let me explain the log again 1. Host send Class type request and device ack it. I looked at the value in the class type request and it corresponds to "reset mass storage device". The device acked it. 2. 6 seconds IDLE time on bus. Alan explained the host driver uses 6 seconds timer to let the device settle. I don't see any issue here. 3. Host send Clear endpoint feature request for in endpoint and device responds it. 4. Host send Clear endpoint feature request for out endpoint and device responds it. 5. 10 seconds IDLE time on bus. After above transactions,data transfer resumed and went on till the 30 seconds idle resurfaced. I hope this helps you. Let me know if you need more details. >That said, we could more easily change the host software. At least, if >someone with a hardware analyser could isolate the problem ... :) Agreed. Let me know if you want do more experiements using hardware analyzer. Regards Vivek -----Original Message----- From: David Brownell [mailto:[EMAIL PROTECTED] Sent: Monday, June 05, 2006 7:27 AM To: linux-usb-devel@lists.sourceforge.net Cc: Alan Stern; Vivek Dharmadhikari Subject: Re: [linux-usb-devel] Usb hangs during small and large file transfer On Saturday 03 June 2006 9:33 am, Alan Stern wrote: > On Fri, 2 Jun 2006, Vivek Dharmadhikari wrote: > > > > Host send OUT transcation with 31 Bytes > > Device reponds with NYET. > > 30 seconds IDLE time on bus. Where IDLE == only SOFs are seen? Or the hardware idle state, by which you mean the port was suspended? > > Host send Class type request and device ack it. > > 6 seconds IDLE time on bus. > > Host send Clear endpoint feature request for in endpoint and device > > responds it. > > Host send Clear endpoint feature request for out endpoint and device > > responds it. > > 10 seconds IDLE time on bus. > > > > The above sequence gets repeated few times during the copy operation to > > USB hard disk and copy operation take long time to finish. > > Aha! It's a good thing you had the Catalyst. This does look like a bug > in the host controller driver, or maybe an erratum in the controller > itself. If EHCI had sane timer handling, it would be easier to add code doing things like forcing endpoints out of NYET mode every few seconds. For paranoia's sake, it would be good to verify more of the interactions with the host. The previous request and response especially ... did they trigger an error of some kind? If so, how was it recovered from? > > I don't think the hard disks are bad because they works fine with Windows. > > I agree. The problem is in the host. Not clear. If the issue is that Windows has more/better error handling idioms, why should it always be the fault of Linux if a peripheral just likes to issue those errors ... say, instead of behaving correctly? That said, we could more easily change the host software. At least, if someone with a hardware analyser could isolate the problem ... :) - Dave _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel