summaryrefslogtreecommitdiff
path: root/drivers/usb/musb
diff options
context:
space:
mode:
authorMatej Frančeškin <matej.franceskin@comtrade.com>2012-08-30 09:24:39 +0200
committerMarek Vasut <marex@denx.de>2012-09-01 16:21:53 +0200
commit8c8650181904cee37721fa303622cd37255d51d6 (patch)
tree2e4c905e5557c6ead61092c79886a9c79fd6729b /drivers/usb/musb
parent749f8180c2b516abefdda3f5833d39f49b60f84d (diff)
downloadu-boot-imx-8c8650181904cee37721fa303622cd37255d51d6.zip
u-boot-imx-8c8650181904cee37721fa303622cd37255d51d6.tar.gz
u-boot-imx-8c8650181904cee37721fa303622cd37255d51d6.tar.bz2
MUSB driver: Timeout is never detected as the while loop does not end
Timeout variable is decremented once more when while condition is not met. Following "if" does not detect correctly that timeout has occurred. Because of this bug the "usb start" command on AM335X-EVM board did not detect correctly that USB device was not attached. timeout = musb_cfg.timeout; while (timeout--) if (readb(&musbr->devctl) & MUSB_DEVCTL_HM) break; /* if musb core is not in host mode, then return */ if (!timeout) return -1; Signed-off-by: Matej Franceskin <Matej.Franceskin@comtrade.com> CC: Marek Vasut <matex@denx.de>?
Diffstat (limited to 'drivers/usb/musb')
-rw-r--r--drivers/usb/musb/musb_hcd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/musb/musb_hcd.c b/drivers/usb/musb/musb_hcd.c
index 2df52c1..8d44c46 100644
--- a/drivers/usb/musb/musb_hcd.c
+++ b/drivers/usb/musb/musb_hcd.c
@@ -1113,7 +1113,7 @@ int usb_lowlevel_init(void)
* should be a usb device connected.
*/
timeout = musb_cfg.timeout;
- while (timeout--)
+ while (--timeout)
if (readb(&musbr->devctl) & MUSB_DEVCTL_HM)
break;