Title: [9626] trunk/drivers/usb/musb/musb_core.c: [#6442] drivers:musb: waitting for 'A'device during resume
Revision
9626
Author
lliubbo
Date
2011-02-24 01:11:39 -0500 (Thu, 24 Feb 2011)

Log Message

[#6442] drivers:musb: waitting for 'A'device during resume

Blackfin musb controller can't resume without reprobe during host mode except
waitting for detected 'A'device after restore MUSB_DEVCTL.

This can reduce resume time because of no usb reprobe.

Modified Paths

Diff

Modified: trunk/drivers/usb/musb/musb_core.c (9625 => 9626)


--- trunk/drivers/usb/musb/musb_core.c	2011-02-23 07:12:42 UTC (rev 9625)
+++ trunk/drivers/usb/musb/musb_core.c	2011-02-24 06:11:39 UTC (rev 9626)
@@ -2355,6 +2355,17 @@
 	musb_writeb(musb_base, MUSB_INTRUSBE, musb_context.intrusbe);
 	musb_writeb(musb_base, MUSB_DEVCTL, musb_context.devctl);
 
+#ifdef CONFIG_BLACKFIN
+	/*
+	 * Blackfin musb-host can't resume without reprobe if not polling for
+	 * detected 'A'device.
+	 */
+	if (is_host_enabled(musb)) {
+		while (musb_readb(musb_base, MUSB_DEVCTL) & MUSB_DEVCTL_BDEVICE)
+			mdelay(10);
+	}
+#endif
+
 	for (i = 0; i < musb->config->num_eps; ++i) {
 		epio = musb->endpoints[i].regs;
 		musb_writew(epio, MUSB_TXMAXP,
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to