From xiphmont@gmail.com Thu Sep 28 00:39:54 2006 Message-ID: <806dafc20609280033l54e893d9u8a7a8ce55e838484@mail.gmail.com> Date: Thu, 28 Sep 2006 03:33:22 -0400 From: "Christopher \"Monty\" Montgomery" To: linux-usb-devel@lists.sourceforge.net Subject: [PATCH 15/15] USB: usbaudio: correct bug caused by harmless underrun during playback setup Cc: greg@kroah.com, david-b@pacbell.net, xiphmont@gmail.com Content-Disposition: inline patch 15: This is a usbaudio fixed necessitated by fixing the isoch underrun detection/reporting in ehci. usbaudio playback nominally causes one harmless underrun in setup that the usbaudio code doesn't currently handle correctly. Signed-off-by: Christopher "Monty" Montgomery Cc: David Brownell Signed-off-by: Greg Kroah-Hartman --- --- sound/usb/usbaudio.c | 5 +++++ 1 file changed, 5 insertions(+) --- gregkh-2.6.orig/sound/usb/usbaudio.c +++ gregkh-2.6/sound/usb/usbaudio.c @@ -839,6 +839,9 @@ static int start_urbs(struct snd_usb_sub subs->running = 1; for (i = 0; i < subs->nurbs; i++) { err = usb_submit_urb(subs->dataurb[i].urb, GFP_ATOMIC); + if (err == -EL2NSYNC) + err = usb_submit_urb(subs->dataurb[i].urb, GFP_ATOMIC); + if (err < 0) { snd_printk(KERN_ERR "cannot submit datapipe " "for urb %d, error %d: %s\n", @@ -850,6 +853,8 @@ static int start_urbs(struct snd_usb_sub if (subs->syncpipe) { for (i = 0; i < SYNC_URBS; i++) { err = usb_submit_urb(subs->syncurb[i].urb, GFP_ATOMIC); + if (err == -EL2NSYNC) + err = usb_submit_urb(subs->syncurb[i].urb, GFP_ATOMIC); if (err < 0) { snd_printk(KERN_ERR "cannot submit syncpipe " "for urb %d, error %d: %s\n",