Hi Thomas,

Looks like the device does not like to be fed with the (full) init METHOD2 on every open()...
Since the VIDIOC_QUERYCAP worked it should not be the wrong METHOD.

Someone reported similar behavior recently, and was apparently able to fix the issue by adding more delay between open/close sequences.

Could you try the attached patch to see if it solves the issue?

If not, we can also try to add some mdelay() after each usb_control_msg().

Regards,

Antoine

--
Antoine "Royale" Jacquet
http://royale.zerezo.com
diff -r 77e731753c15 linux/drivers/media/video/zr364xx.c
--- a/linux/drivers/media/video/zr364xx.c	Thu Feb 11 12:02:16 2010 -0200
+++ b/linux/drivers/media/video/zr364xx.c	Thu Feb 11 16:01:44 2010 +0100
@@ -1005,7 +1005,7 @@
 	/* Added some delay here, since opening/closing the camera quickly,
 	 * like Ekiga does during its startup, can crash the webcam
 	 */
-	mdelay(100);
+	mdelay(200);
 	cam->skip = 2;
 	ret = 0;
 
@@ -1310,7 +1310,7 @@
 	/* Added some delay here, since opening/closing the camera quickly,
 	 * like Ekiga does during its startup, can crash the webcam
 	 */
-	mdelay(100);
+	mdelay(200);
 	err = 0;
 
 out:
@@ -1396,7 +1396,7 @@
 	/* Added some delay here, since opening/closing the camera quickly,
 	 * like Ekiga does during its startup, can crash the webcam
 	 */
-	mdelay(100);
+	mdelay(200);
 	err = 0;
 
 out:

Reply via email to