usb: musb: set target address for non-multipoint devices
authorBryan Wu <bryan.wu@analog.com>
Mon, 9 Aug 2010 22:41:12 +0000 (18:41 -0400)
committerRemy Bohmer <linux@bohmer.net>
Sat, 11 Sep 2010 07:49:22 +0000 (09:49 +0200)
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
drivers/usb/musb/musb_hcd.c

index f14e12ffaf61a3152bbfbac2d8c33921ce7dd944..af989aa78d27175ba22a04958d909e752c51fb57 100644 (file)
@@ -917,6 +917,13 @@ int submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
 
        dev->status = 0;
        dev->act_len = len;
+
+#ifdef MUSB_NO_MULTIPOINT
+       /* Set device address to USB_FADDR register */
+       if (setup->request == USB_REQ_SET_ADDRESS)
+               writeb(dev->devnum, &musbr->faddr);
+#endif
+
        return len;
 }