Bug 165245 - 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 4
Classification: Red Hat
Component: kernel
Version: 4.0
Hardware: All
OS: Linux
medium
high
Target Milestone: ---
: ---
Assignee: Pete Zaitcev
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks: 181409
TreeView+ depends on / blocked
 
Reported: 2005-08-05 20:14 UTC by Narendra Sankar
Modified: 2007-11-30 22:07 UTC (History)
2 users (show)

Fixed In Version: RHSA-2006-0575
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-08-10 21:13:59 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Candidate #1 - cosmetically different for 2.6.9 of RHEL (499 bytes, patch)
2006-01-28 07:56 UTC, Pete Zaitcev
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2006:0575 0 normal SHIPPED_LIVE Important: Updated kernel packages available for Red Hat Enterprise Linux 4 Update 4 2006-08-10 04:00:00 UTC

Description Narendra Sankar 2005-08-05 20:14: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 (BCM5785) SouthBridge
does not
like this violation of the spec. and fails to initialize devices.

Version-Release number of selected component (if applicable):
2.6.9-11.EL and all older versions as well.

How reproducible: Intermittent on RHEL4. Always on RHEL3.


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


Expected results:


Additional info:
This was fixed via a patch -

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.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh>


 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 4 Rik van Riel 2005-12-09 15:23:21 UTC
This could explain some of the failures I am seeing with a HP printer. 
Sometimes printing works, sometimes things get confused, and sometimes (eg.
right now) khubd just sits in D state and I need to reboot to (hopefully) print
again.



Comment 6 Pete Zaitcev 2006-01-28 07:56:12 UTC
Created attachment 123830 [details]
Candidate #1 - cosmetically different for 2.6.9 of RHEL

Comment 8 Jason Baron 2006-04-05 17:47:45 UTC
committed in stream U4 build 34.12. A test kernel with this patch is available
from http://people.redhat.com/~jbaron/rhel4/


Comment 11 Mike Gahagan 2006-07-13 17:18:58 UTC
I have not been able to verify the bug itself with the USB devices I have,
however I have confirm the patch is in 40.1.EL, so marking as verified.


Comment 13 Red Hat Bugzilla 2006-08-10 21:14:00 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-0575.html



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