Hi Mark,
> I have a integrated webcam in my Acer laptop. The manufacter is Bison (not
> logitech) and I'm having a problem with uvcvideo driver which is similar to
> the logitech orbicam issue. The cam itself is 1.3 Megapixels, whether that
> is obtained through interpolation is another question.
From the luvcview -L output you posted, it seems the camera has a VGA
(640x480) sensor. Higher resolutions are probably achieved using software
interpolation.
> Please read through this as I provided additional information throughout.
>
> Here is the output of lsusb:
[snip]
Could you please post lsusb output with usbutils 0.72 or newer ?
> When running lucview I get the following error:
>
> # /usr/local/bin/luvcview
> luvcview version 0.2.1
> Video driver: x11
> A window manager is available
> video /dev/video0
> Unable to set format: 5.
> Init v4L2 failed !! exit fatal
>
> # /usr/local/bin/luvcview -L
> luvcview version 0.2.1
> Video driver: x11
> A window manager is available
> video /dev/video0
> /dev/video0 does not support read i/o
> { pixelformat = 'MJPG', description = 'MJPEG' }
> { discrete: width = 640, height = 480 }
> Time interval between frame: 1/30, 1/15, 1/10,
> { discrete: width = 320, height = 240 }
> Time interval between frame: 1/30, 1/15, 1/10,
> { discrete: width = 160, height = 120 }
> Time interval between frame: 1/30, 1/15, 1/10,
> { discrete: width = 352, height = 288 }
> Time interval between frame: 1/30, 1/15, 1/10,
> { discrete: width = 176, height = 144 }
> Time interval between frame: 1/30, 1/15, 1/10,
> { pixelformat = 'YUYV', description = 'Uncompressed' }
> { discrete: width = 640, height = 480 }
> Time interval between frame: 1/30, 1/15, 1/10,
> { discrete: width = 320, height = 240 }
> Time interval between frame: 1/30, 1/15, 1/10,
> { discrete: width = 160, height = 120 }
> Time interval between frame: 1/30, 1/15, 1/10,
> { discrete: width = 352, height = 288 }
> Time interval between frame: 1/30, 1/15, 1/10,
> { discrete: width = 176, height = 144 }
> Time interval between frame: 1/30, 1/15, 1/10,
As mentioned above, the highest resolution supported by the device is 640x480.
> I patched the current svn release with the USB Reset patch, this adds an
> extra line to my messages:
The reset patch should only be useful with Logitech devices. This was worth a
try though, as the webcam might have been a rebranded Logitech device, or
have been based on the same hardware.
> Jun 3 18:50:31 localhost kernel: uvcvideo: Failed to query (130) UVC
> control 1 (unit 0) : 2 (exp. 26).
This is the issue. The webcam sends a wrong response to a video format
negotiation command. I suspect the Windows driver not to use that command,
which is why the bug has gone undetected.
> Jun 3 18:50:31 localhost kernel: usb 3-5: reset high speed USB device
> using ehci_hcd and address 2
>
> Adding trace=255 does not produce much more in the way of useful
> information.
>
> At no time does the webcam function, in saying that it is *recognised*. I
> can confirm that using Ekiga and the webcam appears in the list. Ekiga is
> unable to obtain the requested pallete.
>
> It appears to fail, when using luvcview, at the following section:
>
> /* set format in */
> memset(&vd->fmt, 0, sizeof(struct v4l2_format));
> vd->fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
> vd->fmt.fmt.pix.width = vd->width;
> vd->fmt.fmt.pix.height = vd->height;
> vd->fmt.fmt.pix.pixelformat = vd->formatIn;
> vd->fmt.fmt.pix.field = V4L2_FIELD_ANY;
> ret = ioctl(vd->fd, VIDIOC_S_FMT, &vd->fmt);
> if (ret < 0) {
> printf("Unable to set format: %d.\n", errno);
> goto fatal;
>
> Any suggestions???
Please try the attached patch. Don't forget to post lsusb output with usbutils
0.72 or newer.
Best regards,
Laurent Pinchart
Index: uvc_driver.c
===================================================================
--- uvc_driver.c (revision 108)
+++ uvc_driver.c (working copy)
@@ -1642,6 +1642,16 @@
.bInterfaceProtocol = 0,
.driver_info = UVC_QUIRK_PROBE_EXTRAFIELDS
},
+ /* Bison */
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x5986,
+ .idProduct = 0x0100,
+ .bInterfaceClass = USB_CLASS_VIDEO,
+ .bInterfaceSubClass = 1,
+ .bInterfaceProtocol = 0,
+ .driver_info = UVC_QUIRK_PROBE_MINMAX
+ },
/* Generic USB Video Class */
{ USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) },
{}
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel