OMAP:MUSB: Fixes the TT programming.
authorAjay Kumar Gupta <ajay.gupta@ti.com>
Thu, 11 Sep 2008 08:53:20 +0000 (11:53 +0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 17 Oct 2008 21:40:58 +0000 (14:40 -0700)
Fixes enumeration failures when a USB device attached to a LS hub is
connected to OMAP EVM via HS hub. This is fixed by correctly
programming hub address register in enqueue path.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/musb/musb_host.c

index 8b4be012669a683b6e4d9ee7764d38defb1aaed8..fcd72b54c8512d4ea86de85ae25f24b7377473bc 100644 (file)
@@ -1873,7 +1873,11 @@ static int musb_urb_enqueue(
                        /* set up tt info if needed */
                        if (urb->dev->tt) {
                                qh->h_port_reg = (u8) urb->dev->ttport;
-                               qh->h_addr_reg |= 0x80;
+                               if (urb->dev->tt->hub)
+                                       qh->h_addr_reg =
+                                               (u8) urb->dev->tt->hub->devnum;
+                               if (urb->dev->tt->multi)
+                                       qh->h_addr_reg |= 0x80;
                        }
                }
        }