]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
musb_hdrc: Allow BABBLE for non-HS host
authorTony Lindgren <tony@atomide.com>
Mon, 18 Jun 2007 12:53:40 +0000 (05:53 -0700)
committerTony Lindgren <tony@atomide.com>
Fri, 29 Jun 2007 06:27:20 +0000 (23:27 -0700)
Looks like we can ignore LS and FS BABBLE. Only HS BABBLE
cannot be ignored.

Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/usb/musb/plat_uds.c

index 6c9efd51e7e3f76e29a6eeff8da6726fa2746edc..1b7d96697115b9b0ac0f7839e34719a4405d8d28 100644 (file)
@@ -538,13 +538,18 @@ static irqreturn_t musb_stage0_irq(struct musb * pThis, u8 bIntrUSB,
        if (bIntrUSB & MGC_M_INTR_RESET) {
                if (devctl & MGC_M_DEVCTL_HM) {
                        /*
-                        * BABBLE is an error condition, so the solution is
-                        * to avoid babble in the first place and fix whatever
-                        * causes BABBLE. When BABBLE happens we can only stop
+                        * Looks like non-HS BABBLE can be ignored, but
+                        * HS BABBLE is an error condition. For HS the solution
+                        * is to avoid babble in the first place and fix whatever
+                        * causes BABBLE. When HS BABBLE happens we can only stop
                         * the session.
                         */
-                       ERR("Stopping host session because of babble\n");
-                       musb_writeb(pBase, MGC_O_HDRC_DEVCTL, 0);
+                       if (devctl & (MGC_M_DEVCTL_FSDEV | MGC_M_DEVCTL_LSDEV))
+                               DBG(1, "BABBLE devctl: %02x\n", devctl);
+                       else {
+                               ERR("Stopping host session because of babble\n");
+                               musb_writeb(pBase, MGC_O_HDRC_DEVCTL, 0);
+                       }
                } else {
                        DBG(1, "BUS RESET\n");