Re: Something is really broken for Logitech webcams

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Oliver,

On Thu, Jul 27, 2023 at 01:48:28PM +0200, Oliver Neukum wrote:
> Hi,
> 
> looking at bd21f0222adab
> ("USB: Fix chipmunk-like voice when using Logitech C270 for recording audio.")
> we see that it introduced RESET_RESUME for the C270 webcam
> 
> For that camera I asked a user to provide lsusb, which got this
> (a bit shortened)
> 
> Bus 001 Device 004: ID 046d:0825 Logitech, Inc. Webcam C270
> Device Descriptor:
>    bLength                18
>    bDescriptorType         1
>    bcdUSB               2.00
>    bDeviceClass          239 Miscellaneous Device
>    bDeviceSubClass         2
>    bDeviceProtocol         1 Interface Association
>    bMaxPacketSize0        64
>    idVendor           0x046d Logitech, Inc.
>    idProduct          0x0825 Webcam C270
> 
>      Interface Descriptor:
>        bLength                 9
>        bDescriptorType         4
>        bInterfaceNumber        0
>        bAlternateSetting       0
>        bNumEndpoints           1
>        bInterfaceClass        14 Video
>        bInterfaceSubClass      1 Video Control
>        bInterfaceProtocol      0
>        iInterface              0
> 
> So this thing says that it is UVC. That means that it should trigger
> e387ef5c47dde ("usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams")
> adding the following declaration:
> 
> static const struct usb_device_id usb_interface_quirk_list[] = {
>          /* Logitech UVC Cameras */
>          { USB_VENDOR_AND_INTERFACE_INFO(0x046d, USB_CLASS_VIDEO, 1, 0),
>            .driver_info = USB_QUIRK_RESET_RESUME },
> 
> wich AFAICT matches the device.
> 
> On the face of it, this makes no sense. What is going on here?
> Do we really need to assume that Logitech has been selling a whole slew
> of cameras in both UVC and something else, which we have no driver for,
> but nobody complains?

The first Logitech webcams that were developed against the UVC
specification were not fully UVC-compatible. They were thus advertised
with a vendor-specific class. The uvcvideo driver supports them, you can
find the list in uvc_driver.c:

Logitech Quickcam Fusion			0x08c1
Logitech Quickcam Orbit MP			0x08c2
Logitech Quickcam Pro for Notebook		0x08c3
Logitech Quickcam Pro 5000			0x08c5
Logitech Quickcam OEM Dell Notebook		0x08c6
Logitech Quickcam OEM Cisco VT Camera II	0x08c7

This explains why usb_quirk_list has 6 corresponding entries.

Why Marco's patch is needed, I'm not sure. It seems that the device and
interface quirks are handled at different points of time, maybe that
plays a role ?

> Could somebody please look at this or am I somehow not right in the head?
> 
> And Marco specifically, did you make your patch based on a bisection?

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux