From: Cliff Cai Date: Thu, 21 Apr 2011 16:42:10 +0000 (-0400) Subject: musb: process control messages after roothub accepted it X-Git-Tag: v2011.06~4 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b17ce92a424ab5ea93a1ed973e5d2ce047a7d321;p=oweals%2Fu-boot.git 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 Signed-off-by: Mike Frysinger --- diff --git a/drivers/usb/musb/musb_hcd.c b/drivers/usb/musb/musb_hcd.c index 8b0c61d642..974bb311cc 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 */