summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorCliff Cai <cliff.cai@analog.com>2011-04-21 12:42:10 -0400
committerRemy Bohmer <linux@bohmer.net>2011-06-25 09:53:10 +0200
commitb17ce92a424ab5ea93a1ed973e5d2ce047a7d321 (patch)
tree36c22919d8e894769c0cd718ca65fe159579936c /drivers/usb
parent9623c158f6a5150a21c25026bfba79e7ff7912f5 (diff)
downloadu-boot-imx-b17ce92a424ab5ea93a1ed973e5d2ce047a7d321.zip
u-boot-imx-b17ce92a424ab5ea93a1ed973e5d2ce047a7d321.tar.gz
u-boot-imx-b17ce92a424ab5ea93a1ed973e5d2ce047a7d321.tar.bz2
musb: process control messages after roothub accepted it
When dealing with non-multipoint devices, if the software root hub code accepted the message, then we still need to process it normally. So only return quickly when the root hub skipped the message or is otherwise in an error state. Signed-off-by: Cliff Cai <cliff.cai@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/musb/musb_hcd.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/musb/musb_hcd.c b/drivers/usb/musb/musb_hcd.c
index 8b0c61d..974bb31 100644
--- a/drivers/usb/musb/musb_hcd.c
+++ b/drivers/usb/musb/musb_hcd.c
@@ -853,8 +853,11 @@ int submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
#ifdef MUSB_NO_MULTIPOINT
/* Control message is for the HUB? */
- if (devnum == rh_devnum)
- return musb_submit_rh_msg(dev, pipe, buffer, len, setup);
+ if (devnum == rh_devnum) {
+ int stat = musb_submit_rh_msg(dev, pipe, buffer, len, setup);
+ if (stat)
+ return stat;
+ }
#endif
/* select control endpoint */