]> git.sur5r.net Git - u-boot/commit
MUSB driver: Timeout is never detected as the while loop does not end
authorMatej Frančeškin <matej.franceskin@comtrade.com>
Thu, 30 Aug 2012 07:24:39 +0000 (09:24 +0200)
committerMarek Vasut <marex@denx.de>
Sat, 1 Sep 2012 14:21:53 +0000 (16:21 +0200)
commit8c8650181904cee37721fa303622cd37255d51d6
tree2e4c905e5557c6ead61092c79886a9c79fd6729b
parent749f8180c2b516abefdda3f5833d39f49b60f84d
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>?
drivers/usb/musb/musb_hcd.c