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 Linux-uvc-devel@lists.berlios.de https://lists.berlios.de/mailman/listinfo/linux-uvc-devel