public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* zr364xx: Aiptek DV8800 (neo): 08ca:2062: Fails on subsequent zr364xx_open()
@ 2010-02-11  9:02 thomas schorpp
  2010-02-11 15:03 ` Antoine Jacquet
  0 siblings, 1 reply; 4+ messages in thread
From: thomas schorpp @ 2010-02-11  9:02 UTC (permalink / raw)
  To: linux-media; +Cc: royale

Hi, 

Linux 2.6.30+32.x

Great there's a driver but seems to be untested/stub for this device:

usb 1-2: new high speed USB device using ehci_hcd and address 9
usb 1-2: New USB device found, idVendor=08ca, idProduct=2062
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-2: Product: DV 8800
usb 1-2: Manufacturer: AIPTEK
usb 1-2: configuration #1 chosen from 1 choice
zr364xx probing...
zr364xx 1-2:1.0: Zoran 364xx compatible webcam plugged
zr364xx 1-2:1.0: model 08ca:2062 detected
usb 1-2: 320x240 mode selected
zr364xx dev: ffff88001eb62000, udev ffff88001e84c000 interface ffff88001ea35400
zr364xx num endpoints 3
zr364xx board init: ffff88001eb62000
zr364xx valloc ffff88001eb62028, idx 0, pdata ffffc900039d9000
zr364xx zr364xx_start_readpipe: start pipe IN x81
zr364xx submitting URB ffff88001eafccc0
zr364xx : board initialized
usb 1-2: Zoran 364xx controlling video device 3
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
Zoran 364xx: VIDIOC_QUERYCAP driver=Zoran 364xx, card=DV 8800, bus=1-2, version=0x00000703, capabilities=0x05000001
zr364xx zr364xx_release
zr364xx zr364xx_open
usb 1-2: Failed sending control message, error -110.
usb 1-2: error during open sequence: 6
zr364xx zr364xx_open: -110
usb 1-2: USB disconnect, address 9
zr364xx read_pipe_completion, err shutdown
zr364xx 1-2:1.0: Zoran 364xx webcam unplugged
zr364xx stop read pipe
zr364xx vfree ffffc900039d9000

Same with mode=2 like the cam is configured (VGA+QVGA available in settings).

I'll sniff out the cmd sequences on an old win xp32 installation, no x64/vista/7 drivers found, 
or do You see the failure reason already?

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.

y
tom


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: zr364xx: Aiptek DV8800 (neo): 08ca:2062: Fails on subsequent zr364xx_open()
  2010-02-11  9:02 zr364xx: Aiptek DV8800 (neo): 08ca:2062: Fails on subsequent zr364xx_open() thomas schorpp
@ 2010-02-11 15:03 ` Antoine Jacquet
  2010-02-12 14:38   ` thomas schorpp
  0 siblings, 1 reply; 4+ messages in thread
From: Antoine Jacquet @ 2010-02-11 15:03 UTC (permalink / raw)
  To: thomas.schorpp; +Cc: linux-media

[-- Attachment #1: Type: text/plain, Size: 534 bytes --]

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

[-- Attachment #2: zr364xx-mdelay.patch --]
[-- Type: text/x-patch, Size: 841 bytes --]

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:

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: zr364xx: Aiptek DV8800 (neo): 08ca:2062: Fails on subsequent zr364xx_open()
  2010-02-11 15:03 ` Antoine Jacquet
@ 2010-02-12 14:38   ` thomas schorpp
  2010-02-14 22:21     ` Antoine Jacquet
  0 siblings, 1 reply; 4+ messages in thread
From: thomas schorpp @ 2010-02-12 14:38 UTC (permalink / raw)
  To: linux-media; +Cc: Antoine Jacquet

[-- Attachment #1: Type: text/plain, Size: 14494 bytes --]

Hi Antoine,

Antoine Jacquet wrote:
> 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.

No search tags to find it on the list, can You remember device model?

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

Didn't work, same -110 errors, sorry, no v4l-dvb git here, vdr production machine on 2.6.32.7.

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

1. Patch with optimized delay below, slow but works, 1st try was delaying subsequent msg 
at open sequence i=6, worked until the last 2 open() before capture start.
>From the windows snoopy log I sent yesterday I can see only 1-2 URBs with relevant delay of ~1s but 
cannot see the sequence point.

What is error -22, can not find it in errno.h?

2. Picture with (640->320) lines alignment error with ekiga+cheese 
*attached*, wether cam is configured internally for 640x480 or 320x240, not affecting.
setting the driver to mode=2 fails with libv4l jpeg decoding errors. I try to correct this.

3. Driver oops on modprobe -r or device firmware crash, 
I need to unplug first or null pointer fault occours (mutex locks), see below

> 
> Regards,
> 
> Antoine
> 

y
tom

--- drivers/media/video/zr364xx.c.orig	2009-12-18 23:27:07.000000000 +0100
+++ drivers/media/video/zr364xx.c	2010-02-12 12:57:54.000000000 +0100
@@ -205,40 +205,41 @@
 struct zr364xx_buffer {
 	/* common v4l buffer stuff -- must be first */
 	struct videobuf_buffer vb;
 	const struct zr364xx_fmt *fmt;
 };
 
 /* function used to send initialisation commands to the camera */
 static int send_control_msg(struct usb_device *udev, u8 request, u16 value,
 			    u16 index, unsigned char *cp, u16 size)
 {
 	int status;
 
 	unsigned char *transfer_buffer = kmalloc(size, GFP_KERNEL);
 	if (!transfer_buffer) {
 		dev_err(&udev->dev, "kmalloc(%d) failed\n", size);
 		return -ENOMEM;
 	}
 
 	memcpy(transfer_buffer, cp, size);
 
+	mdelay(300);
 	status = usb_control_msg(udev,
 				 usb_sndctrlpipe(udev, 0),
 				 request,
 				 USB_DIR_OUT | USB_TYPE_VENDOR |
 				 USB_RECIP_DEVICE, value, index,
 				 transfer_buffer, size, CTRL_TIMEOUT);
 
 	kfree(transfer_buffer);
 
 	if (status < 0)
 		dev_err(&udev->dev,
 			"Failed sending control message, error %d.\n", status);
 
 	return status;
 }
 
 
 /* Control messages sent to the camera to initialize it
  * and launch the capture */
 typedef struct {
@@ -1248,40 +1249,41 @@
 
 
 /* open the camera */
 static int zr364xx_open(struct file *file)
 {
 	struct video_device *vdev = video_devdata(file);
 	struct zr364xx_camera *cam = video_drvdata(file);
 	struct usb_device *udev = cam->udev;
 	int i, err;
 
 	DBG("%s\n", __func__);
 
 	mutex_lock(&cam->open_lock);
 
 	if (cam->users) {
 		err = -EBUSY;
 		goto out;
 	}
 
 	for (i = 0; init[cam->method][i].size != -1; i++) {
+//		if (i == 6) mdelay(1000);
 		err =
 		    send_control_msg(udev, 1, init[cam->method][i].value,
 				     0, init[cam->method][i].bytes,
 				     init[cam->method][i].size);
 		if (err < 0) {
 			dev_err(&cam->udev->dev,
 				"error during open sequence: %d\n", i);
 			goto out;
 		}
 	}
 
 	cam->skip = 2;
 	cam->users++;
 	file->private_data = vdev;
 	cam->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
 	cam->fmt = formats;
 
 	videobuf_queue_vmalloc_init(&cam->vb_vidq, &zr364xx_video_qops,
 				    NULL, &cam->slock,
 				    cam->type,


usb 1-2: new high speed USB device using ehci_hcd and address 7
usb 1-2: New USB device found, idVendor=08ca, idProduct=2062
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-2: Product: DV 8800
usb 1-2: Manufacturer: AIPTEK
usb 1-2: configuration #1 chosen from 1 choice
zr364xx probing...
zr364xx 1-2:1.0: Zoran 364xx compatible webcam plugged
zr364xx 1-2:1.0: model 08ca:2062 detected
usb 1-2: 320x240 mode selected
zr364xx dev: ffff880039379000, udev ffff8800388d1800 interface ffff880039380a00
zr364xx num endpoints 3
zr364xx board init: ffff880039379000
zr364xx valloc ffff880039379028, idx 0, pdata ffffc900019ef000
zr364xx zr364xx_start_readpipe: start pipe IN x81
zr364xx submitting URB ffff8800393a1900
zr364xx : board initialized
usb 1-2: Zoran 364xx controlling video device 3
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
Zoran 364xx: VIDIOC_QUERYCAP driver=Zoran 364xx, card=DV 8800, bus=1-2, version=0x00000703, capabilities=0x05000001
zr364xx zr364xx_release
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
zr364xx zr364xx_release
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
Zoran 364xx: VIDIOC_QUERYCAP driver=Zoran 364xx, card=DV 8800, bus=1-2, version=0x00000703, capabilities=0x05000001
zr364xx zr364xx_release
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
zr364xx zr364xx_release
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
Zoran 364xx: VIDIOC_QUERYCAP driver=Zoran 364xx, card=DV 8800, bus=1-2, version=0x00000703, capabilities=0x05000001
Zoran 364xx: VIDIOC_ENUMINPUT index=0, name=Zoran 364xx Camera, type=2, audioset=0, tuner=0, std=00000000, status=0
Zoran 364xx: VIDIOC_ENUMINPUT error -22
Zoran 364xx: VIDIOC_ENUM_FMT index=0, type=1, flags=1, pixelformat=JPEG, description='JPG'
Zoran 364xx: VIDIOC_TRY_FMT type=vid-cap
zr364xx zr364xx_vidioc_try_fmt_vid_cap: V4L2_PIX_FMT_JPEG (1) ok!
Zoran 364xx: width=320, height=240, format=JPEG, field=none, bytesperline=640 sizeimage=153600, colorspace=0
zr364xx zr364xx_release
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
zr364xx zr364xx_release
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
Zoran 364xx: VIDIOC_QUERYCAP driver=Zoran 364xx, card=DV 8800, bus=1-2, version=0x00000703, capabilities=0x05000001
zr364xx zr364xx_release
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
zr364xx zr364xx_release
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
Zoran 364xx: VIDIOC_QUERYCAP driver=Zoran 364xx, card=DV 8800, bus=1-2, version=0x00000703, capabilities=0x05000001
zr364xx zr364xx_release
zr364xx zr364xx_open
zr364xx zr364xx_open: 0
Zoran 364xx: VIDIOC_QUERYCAP driver=Zoran 364xx, card=DV 8800, bus=1-2, version=0x00000703, capabilities=0x05000001
Zoran 364xx: VIDIOC_G_FMT type=vid-cap
Zoran 364xx: width=320, height=240, format=JPEG, field=none, bytesperline=640 sizeimage=153600, colorspace=0
Zoran 364xx: VIDIOC_ENUM_FMT index=0, type=1, flags=1, pixelformat=JPEG, description='JPG'
Zoran 364xx: VIDIOC_ENUM_FRAMESIZES error -22
Zoran 364xx: VIDIOC_ENUM_FMT error -22
Zoran 364xx: VIDIOC_QUERYCAP driver=Zoran 364xx, card=DV 8800, bus=1-2, version=0x00000703, capabilities=0x05000001
Zoran 364xx: VIDIOC_G_INPUT value=0
Zoran 364xx: VIDIOC_ENUMINPUT index=0, name=Zoran 364xx Camera, type=2, audioset=0, tuner=0, std=00000000, status=0
Zoran 364xx: VIDIOC_QUERYCTRL id=0x80000000
Zoran 364xx: VIDIOC_QUERYCTRL error -22
Zoran 364xx: VIDIOC_QUERYCAP driver=Zoran 364xx, card=DV 8800, bus=1-2, version=0x00000703, capabilities=0x05000001
Zoran 364xx: VIDIOC_G_PARM type=1
Zoran 364xx: VIDIOC_G_PARM error -22
Zoran 364xx: VIDIOC_S_STD std=000000ff
Zoran 364xx: VIDIOC_S_STD error -22
Zoran 364xx: VIDIOC_ENUMINPUT index=0, name=Zoran 364xx Camera, type=2, audioset=0, tuner=0, std=00000000, status=0
Zoran 364xx: VIDIOC_ENUMINPUT error -22
Zoran 364xx: VIDIOC_S_INPUT value=0
Zoran 364xx: VIDIOC_QUERYBUF error -22
Zoran 364xx: VIDIOC_G_PARM type=1
Zoran 364xx: VIDIOC_G_PARM error -22
Zoran 364xx: VIDIOC_TRY_FMT type=vid-cap
zr364xx zr364xx_vidioc_try_fmt_vid_cap: V4L2_PIX_FMT_JPEG (1) ok!
Zoran 364xx: width=320, height=240, format=JPEG, field=none, bytesperline=640 sizeimage=153600, colorspace=0
Zoran 364xx: VIDIOC_TRY_FMT type=vid-cap
zr364xx zr364xx_vidioc_try_fmt_vid_cap: V4L2_PIX_FMT_JPEG (1) ok!
Zoran 364xx: width=320, height=240, format=JPEG, field=none, bytesperline=640 sizeimage=153600, colorspace=0
Zoran 364xx: VIDIOC_TRY_FMT type=vid-cap
zr364xx zr364xx_vidioc_try_fmt_vid_cap: V4L2_PIX_FMT_JPEG (1) ok!
Zoran 364xx: width=320, height=240, format=JPEG, field=none, bytesperline=640 sizeimage=153600, colorspace=0
Zoran 364xx: VIDIOC_QUERYBUF error -22
Zoran 364xx: VIDIOC_G_PARM type=1
Zoran 364xx: VIDIOC_G_PARM error -22
Zoran 364xx: VIDIOC_REQBUFS count=4, type=vid-cap, memory=mmap
Zoran 364xx: VIDIOC_QUERYBUF 00:00:00.00000000 index=0, type=vid-cap, bytesused=0, flags=0x00000000, field=0, sequence=0, memory=mmap, offset/userptr=0x00000000, length=233472
...
Zoran 364xx: VIDIOC_QUERYBUF 351661:46:32.00475137 index=3, type=vid-cap, bytesused=230400, flags=0x00000001, field=1, sequence=9, memory=mmap, offset/userptr=0x000ab000, length=233472
Zoran 364xx: timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000
Zoran 364xx: VIDIOC_QUERYBUF error -22
zr364xx zr364xx_release
usb 1-2: USB disconnect, address 7
zr364xx read_pipe_completion, err shutdown
zr364xx 1-2:1.0: Zoran 364xx webcam unplugged
zr364xx stop read pipe
zr364xx vfree ffffc900019ef000


Feb 12 07:35:17 tom1 kernel: usb 1-2: USB disconnect, address 9
Feb 12 07:35:17 tom1 kernel: zr364xx read_pipe_completion, err shutdown
Feb 12 07:35:17 tom1 kernel: BUG: unable to handle kernel NULL pointer dereference at (null)
Feb 12 07:35:17 tom1 kernel: IP: [<ffffffff8160f168>] __mutex_lock_slowpath+0x48/0x140
Feb 12 07:35:17 tom1 kernel: PGD 3cf8f067 PUD 2fd36067 PMD 0 
Feb 12 07:35:17 tom1 kernel: Oops: 0002 [#1] PREEMPT 
Feb 12 07:35:17 tom1 kernel: last sysfs file: /sys/devices/platform/w83627hf.656/fan2_input
Feb 12 07:35:17 tom1 kernel: CPU 0 
Feb 12 07:35:17 tom1 kernel: Modules linked in: zr364xx videobuf_vmalloc isofs ehci_hcd dvb_usb_dibusb_mc dvb_usb_dibusb_common dib3000mc dibx000_common dvb_usb mt2060 radeon ttm drm_kms_helper drm i2c_algo_bit cfbcopyarea cfbimgblt cfbfillrect ppdev lp parport sco bridge stp llc bnep l2cap bluetooth rfkill battery cpufreq_userspace cpufreq_powersave cpufreq_conservative cpufreq_stats cpufreq_ondemand freq_table nfsd nfs lockd sunrpc ipv6 af_packet joydev hid_sunplus fuse w83627hf hwmon_vid usbhid snd_usb_audio hid snd_usb_lib uvcvideo snd_hwdep ves1820 snd_via82xx gameport snd_ac97_codec ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm dvb_ttpci snd_page_alloc snd_mpu401_uart tda10021 snd_seq_dummy snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event budget_av budget_core saa7146_vv uhci_hcd snd_seq videodev v4l1_compat v4l2_compat_ioctl32 videobuf_dma_sg snd_timer snd_seq_device videobuf_core dvb_core psmouse ohci1394 k8temp saa7146 snd ttpci_eeprom usbcore rtc_cmos evdev proc
essor thermal hwmon button serio_r
Feb 12 07:35:17 tom1 kernel: w pcspkr ieee1394 i2c_viapro sata_promise r8169 mii soundcore i2c_core unix [last unloaded: videobuf_vmalloc]
Feb 12 07:35:17 tom1 kernel: Pid: 1474, comm: khubd Not tainted 2.6.32.7 #4 MS-6702E
Feb 12 07:35:17 tom1 kernel: RIP: 0010:[<ffffffff8160f168>]  [<ffffffff8160f168>] __mutex_lock_slowpath+0x48/0x140
Feb 12 07:35:17 tom1 kernel: RSP: 0018:ffff88003da73b50  EFLAGS: 00010213
Feb 12 07:35:17 tom1 kernel: RAX: ffff88003da73b50 RBX: ffff880001e0a500 RCX: ffff88003ba3fc00
Feb 12 07:35:17 tom1 kernel: RDX: 0000000000000000 RSI: 0000000000000083 RDI: 0000000000000001
Feb 12 07:35:17 tom1 kernel: RBP: ffff88003da73ba0 R08: 0000000000000000 R09: 00000000000043c1
Feb 12 07:35:17 tom1 kernel: R10: 0000000000000000 R11: 0000000000000000 R12: ffff88002c514000
Feb 12 07:35:17 tom1 kernel: R13: ffff88003df95320 R14: ffff880019289800 R15: ffff880001e0a508
Feb 12 07:35:17 tom1 kernel: FS:  00007f0a41208910(0000) GS:ffffffff817e6000(0000) knlGS:0000000000000000
Feb 12 07:35:17 tom1 kernel: CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
Feb 12 07:35:17 tom1 kernel: CR2: 0000000000000000 CR3: 000000003ebde000 CR4: 00000000000006f0
Feb 12 07:35:17 tom1 kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Feb 12 07:35:17 tom1 kernel: DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Feb 12 07:35:17 tom1 kernel: Process khubd (pid: 1474, threadinfo ffff88003da72000, task ffff88003df95320)
Feb 12 07:35:17 tom1 kernel: Stack:
Feb 12 07:35:17 tom1 kernel:  ffff880001e0a508 0000000000000000 ffff88003da73b88 ffff88003da73fd8
Feb 12 07:35:17 tom1 kernel: <0> ffff88003da73fd8 ffff880001e0a500 ffff88002c514000 ffff880001e0a400
Feb 12 07:35:17 tom1 kernel: <0> ffff880019289800 ffff880019289890 ffff88003da73bb0 ffffffff8160f08d
Feb 12 07:35:17 tom1 kernel: Call Trace:
Feb 12 07:35:17 tom1 kernel:  [<ffffffff8160f08d>] mutex_lock+0xd/0x10
Feb 12 07:35:17 tom1 kernel:  [<ffffffffa01645b9>] videobuf_mmap_free+0x19/0x40 [videobuf_core]
Feb 12 07:35:17 tom1 kernel:  [<ffffffffa01bb12b>] zr364xx_disconnect+0x2b/0x1a0 [zr364xx]
Feb 12 07:35:17 tom1 kernel:  [<ffffffffa00bc78c>] usb_unbind_interface+0xac/0x100 [usbcore]
Feb 12 07:35:17 tom1 kernel:  [<ffffffff814690f0>] __device_release_driver+0x70/0xd0
Feb 12 07:35:17 tom1 kernel:  [<ffffffff81469268>] device_release_driver+0x28/0x40
Feb 12 07:35:17 tom1 kernel:  [<ffffffff8146856c>] bus_remove_device+0x9c/0xd0
Feb 12 07:35:17 tom1 kernel:  [<ffffffff814666ab>] device_del+0x12b/0x1d0
Feb 12 07:35:17 tom1 kernel:  [<ffffffffa00b9885>] usb_disable_device+0x95/0x110 [usbcore]
Feb 12 07:35:17 tom1 kernel:  [<ffffffffa00b3d23>] usb_disconnect+0xb3/0x140 [usbcore]
Feb 12 07:35:17 tom1 kernel:  [<ffffffffa00b4ce9>] hub_thread+0x339/0x1340 [usbcore]
Feb 12 07:35:17 tom1 kernel:  [<ffffffff81038488>] ? pick_next_task_fair+0xc8/0x110
Feb 12 07:35:17 tom1 kernel:  [<ffffffff8105c3a0>] ? autoremove_wake_function+0x0/0x40
Feb 12 07:35:17 tom1 kernel:  [<ffffffffa00b49b0>] ? hub_thread+0x0/0x1340 [usbcore]
Feb 12 07:35:17 tom1 kernel:  [<ffffffffa00b49b0>] ? hub_thread+0x0/0x1340 [usbcore]
Feb 12 07:35:17 tom1 kernel:  [<ffffffff8105bfae>] kthread+0x8e/0xa0
Feb 12 07:35:17 tom1 kernel:  [<ffffffff8100c14a>] child_rip+0xa/0x20
Feb 12 07:35:17 tom1 kernel:  [<ffffffff8105bf20>] ? kthread+0x0/0xa0
Feb 12 07:35:17 tom1 kernel:  [<ffffffff8100c140>] ? child_rip+0x0/0x20
Feb 12 07:35:17 tom1 kernel: Code: 48 83 ec 28 e8 7a 97 a2 ff bf 01 00 00 00 e8 70 97 a2 ff 48 8b 53 10 48 8d 45 b0 4c 8d 7b 08 48 89 43 10 4c 89 7d b0 48 89 55 b8 <48> 89 02 48 c7 c2 ff ff ff ff 4c 89 6d c0 48 89 d0 87 03 ff c8 
Feb 12 07:35:17 tom1 kernel: RIP  [<ffffffff8160f168>] __mutex_lock_slowpath+0x48/0x140
Feb 12 07:35:17 tom1 kernel:  RSP <ffff88003da73b50>
Feb 12 07:35:17 tom1 kernel: CR2: 0000000000000000
Feb 12 07:35:17 tom1 kernel: ---[ end trace 6a5f37e07ec8365f ]---



[-- Attachment #2: 2010-02-12-095743.jpg --]
[-- Type: image/jpeg, Size: 10108 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: zr364xx: Aiptek DV8800 (neo): 08ca:2062: Fails on subsequent zr364xx_open()
  2010-02-12 14:38   ` thomas schorpp
@ 2010-02-14 22:21     ` Antoine Jacquet
  0 siblings, 0 replies; 4+ messages in thread
From: Antoine Jacquet @ 2010-02-14 22:21 UTC (permalink / raw)
  To: thomas.schorpp; +Cc: linux-media

Hi,

>> Someone reported similar behavior recently, and was apparently able to 
>> fix the issue by adding more delay between open/close sequences.
> 
> No search tags to find it on the list, can You remember device model?

Yes, this was an off-list discussion, available here:
	http://royale.zerezo.com/forum/viewtopic.php?t=355

> Didn't work, same -110 errors, sorry, no v4l-dvb git here, vdr 
> production machine on 2.6.32.7.

Just checked and the differences in the zr364xx driver are minor.
Would be better if you could work on LinuxTV hg/git tree so we have the 
same basis for patches.

> 1. Patch with optimized delay below, slow but works, 1st try was 
> delaying subsequent msg at open sequence i=6, worked until the last 2 
> open() before capture start.
>> From the windows snoopy log I sent yesterday I can see only 1-2 URBs 
>> with relevant delay of ~1s but 
> cannot see the sequence point.

Ok this is a bit hardcore but nice if it works.
What do you mean by "until the last 2 open()"?
Also, you may want to try with simpler tools like "dd" to do only one 
clean open/close.
Ekiga/Cheese/Skype tend to do many open/close and this may not be the 
ideal tools for debugging, but great to trigger the bugs ;-)

> What is error -22, can not find it in errno.h?

I think it's -EINVAL.

> 2. Picture with (640->320) lines alignment error with ekiga+cheese 
> *attached*, wether cam is configured internally for 640x480 or 320x240, 
> not affecting.
> setting the driver to mode=2 fails with libv4l jpeg decoding errors. I 
> try to correct this.

Do you know if the Windows driver support this mode?
If so, it would be helpful to have the snoop too.

> 3. Driver oops on modprobe -r or device firmware crash, I need to unplug 
> first or null pointer fault occours (mutex locks), see below

Ok that's bad, let me know if you find the issue.

Regards,

Antoine


-- 
Antoine "Royale" Jacquet
http://royale.zerezo.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-02-14 22:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-11  9:02 zr364xx: Aiptek DV8800 (neo): 08ca:2062: Fails on subsequent zr364xx_open() thomas schorpp
2010-02-11 15:03 ` Antoine Jacquet
2010-02-12 14:38   ` thomas schorpp
2010-02-14 22:21     ` Antoine Jacquet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox