OMAP:MUSB: Fixes the TT programming.
Ajay Kumar Gupta [Thu, 11 Sep 2008 08:53:20 +0000 (11:53 +0300)]
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 8b4be01..fcd72b5 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;
                        }
                }
        }