USB: MUSB: upgrade the isochronous API
authorAlan Stern <stern@rowland.harvard.edu>
Wed, 29 May 2013 17:21:01 +0000 (13:21 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2013 12:34:29 +0000 (21:34 +0900)
This patch attempts to fix the isochonour API in the musb host
driver.  In particular, the urb->start_frame field should always be
set by the driver; it isn't an input parameter.

The simplest way to accomplish this is to treat all URBs as though the
URB_ISO_ASAP flag was set.  This won't give the right behavior when an
underrun occurs, but I don't know enough about the musb driver to
handle that case.

Unfortunately, I have no way to test this change.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/musb/musb_host.c

index 8914dec..85ed11e 100644 (file)
@@ -269,8 +269,7 @@ musb_start_urb(struct musb *musb, int is_in, struct musb_qh *qh)
                /* FIXME this doesn't implement that scheduling policy ...
                 * or handle framecounter wrapping
                 */
-               if ((urb->transfer_flags & URB_ISO_ASAP)
-                               || (frame >= urb->start_frame)) {
+               if (1) {        /* Always assume URB_ISO_ASAP */
                        /* REVISIT the SOF irq handler shouldn't duplicate
                         * this code; and we don't init urb->start_frame...
                         */