[alsa-devel] Linux 3.10.4 and Logitech HD Webcam C525/C310

Alan Stern stern at rowland.harvard.edu
Tue Aug 6 15:59:21 CEST 2013


On Tue, 6 Aug 2013, [koi8-r] âÏÊËÏ íÁËÓÉÍ wrote:

> Hi,
> 
> I have Logitech HD Webcam 525  (046d:0826) but its mic works strange. The mic is turned off while video works fine. In dmesg I see the following messages
> 
> [  472.079738] cannot submit urb (err = -18)
> [  472.079748] cannot submit urb (err = -18)
> [  472.079754] cannot submit urb (err = -18)
> [  472.079759] cannot submit urb (err = -18)
> [  472.079783] cannot submit urb (err = -18)
> [  472.079787] cannot submit urb (err = -18)
> [  472.079792] cannot submit urb (err = -18)
> [  472.079797] cannot submit urb (err = -18)

> I have not enough experience to fix it myself but I can help with
> finding a bug and testing fixes. I have also found that the same
> problem exists for Logitech Webcam C310 (046d:081b). The bug is not
> specific for my laptop. I have the same issue on my desktop with both
> cameras.

Does this patch help?

Alan Stern



Index: usb-3.11/drivers/usb/host/ehci-sched.c
===================================================================
--- usb-3.11.orig/drivers/usb/host/ehci-sched.c
+++ usb-3.11/drivers/usb/host/ehci-sched.c
@@ -1391,21 +1391,20 @@ iso_stream_schedule (
 
 		/* Behind the scheduling threshold? */
 		if (unlikely(start < next)) {
+			unsigned now2 = (now - base) & (mod - 1);
 
 			/* USB_ISO_ASAP: Round up to the first available slot */
 			if (urb->transfer_flags & URB_ISO_ASAP)
 				start += (next - start + period - 1) & -period;
 
 			/*
-			 * Not ASAP: Use the next slot in the stream.  If
-			 * the entire URB falls before the threshold, fail.
+			 * Not ASAP: Use the next slot in the stream,
+			 * no matter what.
 			 */
-			else if (start + span - period < next) {
-				ehci_dbg(ehci, "iso urb late %p (%u+%u < %u)\n",
+			else if (start + span - period < now2) {
+				ehci_dbg(ehci, "iso underrun %p (%u+%u < %u)\n",
 						urb, start + base,
-						span - period, next + base);
-				status = -EXDEV;
-				goto fail;
+						span - period, now2 + base);
 			}
 		}
 



More information about the Alsa-devel mailing list