Title: [8504] trunk/drivers/usb/host/sl811-hcd.c: [#5972] Sl811-hcd.c USB removal
- Revision
- 8504
- Author
- hennerich
- Date
- 2010-03-18 08:09:56 -0400 (Thu, 18 Mar 2010)
Log Message
[#5972] Sl811-hcd.c USB removal
Chris Brissette pointed out that the Detection / Removal counter method
to distinguish instert or remove my fail under certain conditions.
Latest SL811HS datasheet (Document 38-08008 Rev. *D) adds following to
bit 6 of the Interrupt Status Register.
... Otherwise, this bit is used to indicate the presence of a device,
?\226?\128?\1531?\226?\128?\153 = device ?\226?\128?\152Not present?\226?\128?\153
and ?\226?\128?\1530?\226?\128?\153 = device ?\226?\128?\152Present.?\226?\128?\153 In this mode, check this bit along with bit
5 to determine whether a device has been inserted or removed.
Modified Paths
Diff
Modified: trunk/drivers/usb/host/sl811-hcd.c (8503 => 8504)
--- trunk/drivers/usb/host/sl811-hcd.c 2010-03-18 10:53:40 UTC (rev 8503)
+++ trunk/drivers/usb/host/sl811-hcd.c 2010-03-18 12:09:56 UTC (rev 8504)
@@ -720,10 +720,11 @@
/* 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;
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits