summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2015-01-11 20:34:50 +0100
committerMarek Vasut <marex@denx.de>2015-01-18 12:31:36 +0100
commite8672e3f0ec571d0ca7ccd8cbbeb113802c1d443 (patch)
tree563477257c6c1014869a1553f9e2288154ec5341
parentdc9a3912709e901eb8e513492fdad9743535b86f (diff)
musb-new: Fix interrupt transfers not working
For bulk and ctrl transfers common/usb.c sets udev->status = USB_ST_NOT_PROC, but it does not do so for interrupt transfers. musb_uboot.c: submit_urb() however was waiting for USB_ST_NOT_PROC to become 0, and thus without anyone setting USB_ST_NOT_PROC would exit immediately for interrupt urbs, returning the urb status of EINPROGRESS as error. This commit fixes this, thereby also making usb_kbd.c work together with musb_new and CONFIG_SYS_USB_EVENT_POLL. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r--drivers/usb/musb-new/musb_uboot.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/musb-new/musb_uboot.c b/drivers/usb/musb-new/musb_uboot.c
index f8a0346f36..28500bf157 100644
--- a/drivers/usb/musb-new/musb_uboot.c
+++ b/drivers/usb/musb-new/musb_uboot.c
@@ -74,7 +74,7 @@ static int submit_urb(struct usb_hcd *hcd, struct urb *urb)
if (ctrlc())
return -EIO;
host->isr(0, host);
- } while ((urb->dev->status & USB_ST_NOT_PROC) &&
+ } while (urb->status == -EINPROGRESS &&
get_timer(0) < timeout);
return urb->status;