[#5972] Sl811-hcd.c USB removal
Submitted By: Chris Brissette
Open Date
2010-03-16 09:21:41 Close Date
2010-03-24 12:16:29
Priority:
Medium Assignee:
Michael Hennerich
Status:
Closed Fixed In Release:
N/A
Found In Release:
2009R1.1-RC4 Release:
svn8416
Category:
N/A Board:
N/A
Processor:
ALL Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
2009R1 Toolchain version or rev.:
4.1.2 svn
App binary format:
N/A
Summary: Sl811-hcd.c USB removal
Details:
After patch from
USB Detection / Removal counter works about 50 % of the time. The counter quickly will miss a disconnect and will not recover.
You get the error
hub 1-0:1.0: unable to enumerate USB device on port 1
From that point on, the only way to recover, is to reload the module sl811-hcd.ko
Seems to miss the disconnect when there are pending transactions, (Wifi sticks show it the worst) We had luck using power control and shutting down the device, (with usb memory sticks) then removing. But with WiFi there is alot of transactions pending and the counter misses the removal.
Follow-ups
--- Michael Hennerich 2010-03-18 08:13:01
Should be fixed on trunk and 2009R1
Index: sl811-hcd.c
===================================================================
--- sl811-hcd.c (revision 8459)
+++ sl811-hcd.c (working copy)
@@ -720,10 +720,10 @@
/* port status seems weird until after reset, so
* force the reset and make khubd clean up later.
*/
- if (sl811->stat_insrmv & 1)
+ if (irqstat & SL11H_INTMASK_RD)
+ sl811->port1 &= ~(1 <<
USB_PORT_FEAT_CONNECTION);
+ else
sl811->port1 |= 1 <<
USB_PORT_FEAT_CONNECTION;
- else
- sl811->port1 &= ~(1 <<
USB_PORT_FEAT_CONNECTION);
sl811->port1 |= 1 << USB_PORT_FEAT_C_CONNECTION;
--- Chris Brissette 2010-03-22 08:39:01
Looks good now, thank you.
--- Michael Hennerich 2010-03-24 12:15:12
close it
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found