diff options
author | Hans de Goede <hdegoede@redhat.com> | 2015-01-11 19:34:50 (GMT) |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2015-01-18 11:31:36 (GMT) |
commit | e8672e3f0ec571d0ca7ccd8cbbeb113802c1d443 (patch) | |
tree | 563477257c6c1014869a1553f9e2288154ec5341 /drivers/usb | |
parent | dc9a3912709e901eb8e513492fdad9743535b86f (diff) | |
download | u-boot-e8672e3f0ec571d0ca7ccd8cbbeb113802c1d443.tar.xz |
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>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/musb-new/musb_uboot.c | 2 |
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 f8a0346..28500bf 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; |