Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 165246 - EHCI Host driver violates USB2.0 Specification leading to device failures.
Summary: EHCI Host driver violates USB2.0 Specification leading to device failures.
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: kernel
Version: 3.0
Hardware: All
OS: Linux
medium
high
Target Milestone: ---
Assignee: Pete Zaitcev
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks: RHEL3U8CanFix
TreeView+ depends on / blocked
 
Reported: 2005-08-05 20:27 UTC by Narendra Sankar
Modified: 2007-11-30 22:07 UTC (History)
5 users (show)

Fixed In Version: RHSA-2006-0437
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-07-20 13:27:41 UTC
Target Upstream Version:


Attachments (Terms of Use)
Candidate #1 - wait_ms, from bug 138205 (deleted)
2006-01-28 00:14 UTC, Pete Zaitcev
no flags Details | Diff


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2006:0437 normal SHIPPED_LIVE Important: Updated kernel packages for Red Hat Enterprise Linux 3 Update 8 2006-07-20 13:11:00 UTC

Description Narendra Sankar 2005-08-05 20:27:05 UTC
Description of problem: The USB 2.0 specification requires a 10ms reset recovery
time (TRSTRCY) after
port resets before commands are issued to USB devices. However linux kernels <
2.6.11 do not implement this recovery time leading to failures on USB2.0
devices. This failure is intermittent and seen on some devices (If other system
activity causes there to be a 10ms delay between port resume and device access,
then it works, else it would fail). It also depends on the Host controller
implementation. The EHCI controller in the Broadcom HT1000 SouthBridge does not
like this violation of the spec. and fails to initialize devices.


Version-Release number of selected component (if applicable):
2.4.21-32.0.1.EL and all others

How reproducible:
Always. All USB2.0 devices fail under RHEL3.

Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
http://marc.theaimsgroup.com/?l=linux-usb-devel&m=110859443620747&w=2

GregKH accepted this patch into the 2.6.11 kernel.

[PATCH] USB Hub driver: Add reset recovery-time delay

This patch is clearly needed for us to be in compliance with the USB spec.
It adds the mandated recovery-time delay following a port reset.
Regardless of anything else we do to alter the device initialization
sequence, this is necessary.


Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


 drivers/usb/core/hub.c |    3 +++
 1 files changed, 3 insertions(+)


diff -Nru a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
--- a/drivers/usb/core/hub.c	2005-02-16 14:47:36 -08:00
+++ b/drivers/usb/core/hub.c	2005-02-16 14:47:36 -08:00
@@ -1382,6 +1382,9 @@
 		/* return on disconnect or reset */
 		switch (status) {
 		case 0:
+			/* TRSTRCY = 10 ms */
+			msleep(10);
+			/* FALL THROUGH */
 		case -ENOTCONN:
 		case -ENODEV:
 			clear_port_feature(hub->hdev,

Comment 2 Pete Zaitcev 2005-08-06 20:24:32 UTC
Requestor, please test kernel 2.4.21-31.EL.usbserial.4 by selecting a suitable
architecture from the following URL:
 ftp://people.redhat.com/zaitcev/rhel3usb/
Let us know if it fixes the problem in your test environment.


Comment 3 Narendra Sankar 2005-08-08 15:46:28 UTC
It works with the i686 smp version of the kernel. Used
kernel-smp-2.4.21-31.EL.usbserial.4.i686.rpm. Made an initrd using mkinitrd for
this kernel and tried a USB2.0 HDD.

Comment 9 Pete Zaitcev 2006-01-28 00:14:49 UTC
Created attachment 123815 [details]
Candidate #1 - wait_ms, from bug 138205

Comment 11 Ernie Petrides 2006-02-18 00:23:59 UTC
A fix for this problem has just been committed to the RHEL3 U8
patch pool this evening (in kernel version 2.4.21-40.2.EL).


Comment 13 Bob Johnson 2006-04-11 16:30:20 UTC
This issue is on Red Hat Engineering's list of planned work items 
for the upcoming Red Hat Enterprise Linux 3.8 release.  Engineering 
resources have been assigned and barring unforeseen circumstances, Red 
Hat intends to include this item in the 3.8 release.

Comment 15 Joshua Giles 2006-06-01 04:15:07 UTC
A kernel has been released that contains a patch for this problem.  Please
verify if your problem is fixed with the latest available kernel from the RHEL3
public beta channel at rhn.redhat.com and report your test results.

Comment 16 Narendra Sankar 2006-06-04 13:37:21 UTC
It works correctly with the beta RHEL3 update 8.

Comment 18 Red Hat Bugzilla 2006-07-20 13:27:42 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2006-0437.html



Note You need to log in before you can comment on or make changes to this bug.