Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

USB: MUSB: upgrade the isochronous API

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>

authored by

Alan Stern and committed by
Greg Kroah-Hartman
8a1ea51f e6b0166f

+1 -2
+1 -2
drivers/usb/musb/musb_host.c
··· 269 269 /* FIXME this doesn't implement that scheduling policy ... 270 270 * or handle framecounter wrapping 271 271 */ 272 - if ((urb->transfer_flags & URB_ISO_ASAP) 273 - || (frame >= urb->start_frame)) { 272 + if (1) { /* Always assume URB_ISO_ASAP */ 274 273 /* REVISIT the SOF irq handler shouldn't duplicate 275 274 * this code; and we don't init urb->start_frame... 276 275 */