Linux kernel -stable discussions
 help / color / mirror / Atom feed
* [PATCH v3 0/5] media: uvcvideo: Automatically handle invalid uvc_versions
@ 2026-09-11 13:22 Ricardo Ribalda
  2026-09-11 13:22 ` [PATCH v3 5/5] media: uvcvideo: Force UVC version for Avermedia GC515 Ricardo Ribalda
  0 siblings, 1 reply; 6+ messages in thread
From: Ricardo Ribalda @ 2026-09-11 13:22 UTC (permalink / raw)
  To: Laurent Pinchart, Hans de Goede, Mauro Carvalho Chehab
  Cc: Edwin Gatier, linux-media, linux-kernel, Mauro Carvalho Chehab,
	Ricardo Ribalda, stable

This series changes the way we handle invalid uvc_versions. Instead of
just failing it will try to continue probing.

Now that we are at it fix the way we handle device warnings.

The last two patches are "optional". Feel free to ignore them.

Thanks!

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
Changes in v3:
- Move uvc_video_ctrl_size to uvc_video_init()
- Fixes for uvc_warn_once
- Remove bmVideoStandardParsing parsing
- Link to v2: https://lore.kernel.org/r/20260911-uvc-version-v2-0-395f27b0444c@chromium.org

Changes in v2:
- Add quirk for Avermedia
- Change the way the compliance error message is printed and cache
  ctrl_size
- Link to v1: https://lore.kernel.org/r/20260907-uvc-version-v1-1-34e45dfe04de@chromium.org

---
Ricardo Ribalda (5):
      media: uvcvideo: uvc_warn should warn not info
      media: uvcvideo: Use uvc_warn_once when it make sense
      media: uvcvideo: Automatically handle cameras with invalid uvc_version
      media: uvcvideo: Do not parse bmVideoStandards
      media: uvcvideo: Force UVC version for Avermedia GC515

 drivers/media/usb/uvc/uvc_driver.c | 17 ++++++++++-----
 drivers/media/usb/uvc/uvc_video.c  | 42 ++++++++++++++++++++++++--------------
 drivers/media/usb/uvc/uvcvideo.h   |  6 ++++--
 3 files changed, 43 insertions(+), 22 deletions(-)
---
base-commit: 27953c044974baf7e24dee3e9342fe0103dea80c
change-id: 20260907-uvc-version-aedefc4384ce

Best regards,
-- 
Ricardo Ribalda <ribalda@chromium.org>


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

* [PATCH v3 5/5] media: uvcvideo: Force UVC version for Avermedia GC515
  2026-09-11 13:22 [PATCH v3 0/5] media: uvcvideo: Automatically handle invalid uvc_versions Ricardo Ribalda
@ 2026-09-11 13:22 ` Ricardo Ribalda
  2026-09-28 12:37   ` Hans de Goede
  2026-09-28 12:38   ` Laurent Pinchart
  0 siblings, 2 replies; 6+ messages in thread
From: Ricardo Ribalda @ 2026-09-11 13:22 UTC (permalink / raw)
  To: Laurent Pinchart, Hans de Goede, Mauro Carvalho Chehab
  Cc: Edwin Gatier, linux-media, linux-kernel, Mauro Carvalho Chehab,
	Ricardo Ribalda, stable

The device announces itself as UVC 1.5, but it only accepts UVC 1.1
controls.

The camera can probably be handled by the automatic uvc_version handler,
but it is more correct to add a quirk and keep some tracking of what
vendors are more or less compliant. Also it might be more robust if we
introduce more UVC version-dependent code.

Bus 003 Device 021: ID 07ca:1515 AVerMedia Technologies, Inc. X'tra Go GC515
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 [unknown]
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x07ca AVerMedia Technologies, Inc.
  idProduct          0x1515 X'tra Go GC515
  bcdDevice            0.10
  iManufacturer           1 AVerMedia
  iProduct                2 X'tra Go GC515
  iSerial                 3 5313180000221
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x03fd
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass         14 Video
      bFunctionSubClass       3 Video Interface Collection
      bFunctionProtocol       0
      iFunction               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      1 Video Control
      bInterfaceProtocol      1
      iInterface              0
      VideoControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdUVC               1.50
        wTotalLength       0x0059
        dwClockFrequency       30.000000MHz
        bInCollection           1
        baInterfaceNr( 0)       1
      VideoControl Interface Descriptor:
        bLength                18
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0201 Camera Sensor
        bAssocTerminal          0
        iTerminal               0
        wObjectiveFocalLengthMin      0
        wObjectiveFocalLengthMax      0
        wOcularFocalLength            0
        bControlSize                  3
        bmControls           0x00000000
      VideoControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             2
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               4
        iTerminal               0
      VideoControl Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      4 (SELECTOR_UNIT)
        bUnitID                 3
        bNrInPins               1
        baSource( 0)            1
        iSelector               0
      VideoControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      5 (PROCESSING_UNIT)
        bUnitID                 4
        bSourceID               3
        wMaxMultiplier          0
        bControlSize            3
        bmControls     0x00000000
        iProcessing             0
        bmVideoStandards     0x00
      VideoControl Interface Descriptor:
        bLength                29
        bDescriptorType        36
        bDescriptorSubtype      6 (EXTENSION_UNIT)
        bUnitID                 5
        guidExtensionCode         {55be8e1c-2fdb-4f7a-bd8d-b9b1108d20c3}
        bNumControls           24
        bNrInPins               1
        baSourceID( 0)          4
        bControlSize            4
        bmControls( 0)       0xff
        bmControls( 1)       0xff
        bmControls( 2)       0xff
        bmControls( 3)       0x00
        iExtension              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
        VideoControl Endpoint Descriptor:
          bLength                 5
          bDescriptorType        37
          bDescriptorSubtype      3 (EP_INTERRUPT)
          wMaxTransferSize       64
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      1
      iInterface              0
      VideoStreaming Interface Descriptor:
        bLength                            16
        bDescriptorType                    36
        bDescriptorSubtype                  1 (INPUT_HEADER)
        bNumFormats                         3
        wTotalLength                   0x0303
        bEndpointAddress                 0x81  EP 1 IN
        bmInfo                              0
        bTerminalLink                       2
        bStillCaptureMethod                 1
        bTriggerSupport                     0
        bTriggerUsage                       0
        bControlSize                        1
        bmaControls( 0)                     4
        bmaControls( 1)                     4
        bmaControls( 2)                     0
      VideoStreaming Interface Descriptor:
        bLength                            28
        bDescriptorType                    36
        bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
        bFormatIndex                        1
        bNumFrameDescriptors                8
        guidFormat                            {34363248-0000-0010-8000-00aa00389b71}
        bBitsPerPixel                      24
        bDefaultFrameIndex                  1
        bAspectRatioX                       0
        bAspectRatioY                       0
        bmInterlaceFlags                 0x00
          Interlaced stream or variable: No
          Fields per frame: 2 fields
          Field 1 first: No
          Field pattern: Field 1 only
        bCopyProtect                        1
        bVariableSize                     1
      VideoStreaming Interface Descriptor:
        bLength                            62
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         1
        bmCapabilities                   0x01
          Still image supported
        wWidth                           1920
        wHeight                          1080
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  9
        dwBytesPerLine                      0
        dwFrameInterval( 0)             83333
        dwFrameInterval( 1)             83416
        dwFrameInterval( 2)            166666
        dwFrameInterval( 3)            166833
        dwFrameInterval( 4)            200000
        dwFrameInterval( 5)            333333
        dwFrameInterval( 6)            333667
        dwFrameInterval( 7)            400000
        dwFrameInterval( 8)            416666
      VideoStreaming Interface Descriptor:
        bLength                            42
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         2
        bmCapabilities                   0x01
          Still image supported
        wWidth                           3840
        wHeight                          2160
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         333333
        bFrameIntervalType                  4
        dwBytesPerLine                      0
        dwFrameInterval( 0)            333333
        dwFrameInterval( 1)            333667
        dwFrameInterval( 2)            400000
        dwFrameInterval( 3)            416666
      VideoStreaming Interface Descriptor:
        bLength                            34
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         3
        bmCapabilities                   0x01
          Still image supported
        wWidth                           2560
        wHeight                          1440
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  2
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
      VideoStreaming Interface Descriptor:
        bLength                            34
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         4
        bmCapabilities                   0x01
          Still image supported
        wWidth                           1280
        wHeight                           800
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  2
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
      VideoStreaming Interface Descriptor:
        bLength                            38
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         5
        bmCapabilities                   0x01
          Still image supported
        wWidth                           1280
        wHeight                           720
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  3
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
        dwFrameInterval( 2)            200000
      VideoStreaming Interface Descriptor:
        bLength                            34
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         6
        bmCapabilities                   0x01
          Still image supported
        wWidth                            720
        wHeight                           576
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         200000
        bFrameIntervalType                  2
        dwBytesPerLine                      0
        dwFrameInterval( 0)            200000
        dwFrameInterval( 1)            400000
      VideoStreaming Interface Descriptor:
        bLength                            42
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         7
        bmCapabilities                   0x01
          Still image supported
        wWidth                            720
        wHeight                           480
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  4
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            333667
      VideoStreaming Interface Descriptor:
        bLength                            34
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         8
        bmCapabilities                   0x01
          Still image supported
        wWidth                            640
        wHeight                           480
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  2
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
      VideoStreaming Interface Descriptor:
        bLength                             6
        bDescriptorType                    36
        bDescriptorSubtype                 13 (COLORFORMAT)
        bColorPrimaries                     0 (Unspecified)
        bTransferCharacteristics            0 (Unspecified)
        bMatrixCoefficients                 0 (Unspecified)
      VideoStreaming Interface Descriptor:
        bLength                            28
        bDescriptorType                    36
        bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
        bFormatIndex                        2
        bNumFrameDescriptors                8
        guidFormat                            {43564548-0000-0010-8000-00aa00389b71}
        bBitsPerPixel                      24
        bDefaultFrameIndex                  1
        bAspectRatioX                       0
        bAspectRatioY                       0
        bmInterlaceFlags                 0x00
          Interlaced stream or variable: No
          Fields per frame: 2 fields
          Field 1 first: No
          Field pattern: Field 1 only
        bCopyProtect                        1
        bVariableSize                     1
      VideoStreaming Interface Descriptor:
        bLength                            62
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         1
        bmCapabilities                   0x01
          Still image supported
        wWidth                           1920
        wHeight                          1080
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  9
        dwBytesPerLine                      0
        dwFrameInterval( 0)             83333
        dwFrameInterval( 1)             83416
        dwFrameInterval( 2)            166666
        dwFrameInterval( 3)            166833
        dwFrameInterval( 4)            200000
        dwFrameInterval( 5)            333333
        dwFrameInterval( 6)            333667
        dwFrameInterval( 7)            400000
        dwFrameInterval( 8)            416666
      VideoStreaming Interface Descriptor:
        bLength                            42
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         2
        bmCapabilities                   0x01
          Still image supported
        wWidth                           3840
        wHeight                          2160
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         333333
        bFrameIntervalType                  4
        dwBytesPerLine                      0
        dwFrameInterval( 0)            333333
        dwFrameInterval( 1)            333667
        dwFrameInterval( 2)            400000
        dwFrameInterval( 3)            416666
      VideoStreaming Interface Descriptor:
        bLength                            34
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         3
        bmCapabilities                   0x01
          Still image supported
        wWidth                           2560
        wHeight                          1440
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  2
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
      VideoStreaming Interface Descriptor:
        bLength                            34
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         4
        bmCapabilities                   0x01
          Still image supported
        wWidth                           1280
        wHeight                           800
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  2
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
      VideoStreaming Interface Descriptor:
        bLength                            38
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         5
        bmCapabilities                   0x01
          Still image supported
        wWidth                           1280
        wHeight                           720
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  3
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
        dwFrameInterval( 2)            200000
      VideoStreaming Interface Descriptor:
        bLength                            34
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         6
        bmCapabilities                   0x01
          Still image supported
        wWidth                            720
        wHeight                           576
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         200000
        bFrameIntervalType                  2
        dwBytesPerLine                      0
        dwFrameInterval( 0)            200000
        dwFrameInterval( 1)            400000
      VideoStreaming Interface Descriptor:
        bLength                            42
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         7
        bmCapabilities                   0x01
          Still image supported
        wWidth                            720
        wHeight                           480
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  4
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
        dwFrameInterval( 2)            333333
        dwFrameInterval( 3)            333667
      VideoStreaming Interface Descriptor:
        bLength                            34
        bDescriptorType                    36
        bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
        bFrameIndex                         8
        bmCapabilities                   0x01
          Still image supported
        wWidth                            640
        wHeight                           480
        dwMinBitRate                 33554432
        dwMaxBitRate                268435456
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  2
        dwBytesPerLine                      0
        dwFrameInterval( 0)            166666
        dwFrameInterval( 1)            166833
      VideoStreaming Interface Descriptor:
        bLength                             6
        bDescriptorType                    36
        bDescriptorSubtype                 13 (COLORFORMAT)
        bColorPrimaries                     0 (Unspecified)
        bTransferCharacteristics            0 (Unspecified)
        bMatrixCoefficients                 0 (Unspecified)
      VideoStreaming Interface Descriptor:
        bLength                            11
        bDescriptorType                    36
        bDescriptorSubtype                  6 (FORMAT_MJPEG)
        bFormatIndex                        3
        bNumFrameDescriptors                1
        bFlags                              0
          Fixed-size samples: No
        bDefaultFrameIndex                  1
        bAspectRatioX                       0
        bAspectRatioY                       0
        bmInterlaceFlags                 0x00
          Interlaced stream or variable: No
          Fields per frame: 1 fields
          Field 1 first: No
          Field pattern: Field 1 only
        bCopyProtect                        1
      VideoStreaming Interface Descriptor:
        bLength                            30
        bDescriptorType                    36
        bDescriptorSubtype                  7 (FRAME_MJPEG)
        bFrameIndex                         1
        bmCapabilities                   0x01
          Still image supported
        wWidth                           1920
        wHeight                          1080
        dwMinBitRate                314572800
        dwMaxBitRate                314572800
        dwMaxVideoFrameBufferSize     4147200
        dwDefaultFrameInterval         166666
        bFrameIntervalType                  1
        dwFrameInterval( 0)            166666
      VideoStreaming Interface Descriptor:
        bLength                             6
        bDescriptorType                    36
        bDescriptorSubtype                 13 (COLORFORMAT)
        bColorPrimaries                     0 (Unspecified)
        bTransferCharacteristics            0 (Unspecified)
        bMatrixCoefficients                 0 (Unspecified)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         2
      bInterfaceCount         2
      bFunctionClass          1 Audio
      bFunctionSubClass       2 Streaming
      bFunctionProtocol       0
      iFunction               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0
      iInterface              0
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength       0x0026
        bInCollection           1
        baInterfaceNr(0)        3
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0602 Digital Audio Interface
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0
        iTerminal               0
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             2
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               3
        iTerminal               0
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 3
        bSourceID               1
        bControlSize            1
        bmaControls(0)       0x03
          Mute Control
          Volume Control
        iFeature                0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bDelay                  1 frames
        wFormatTag         0x0001 PCM
      AudioStreaming Interface Descriptor:
        bLength                11
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            1 Discrete
        tSamFreq[ 0]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x00c4  1x 196 bytes
        bInterval               4
        bRefresh                0
        bSynchAddress           0
        AudioStreaming Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000

Cc: stable@vger.kernel.org
Fixes: b400b6f28af0 ("media: uvcvideo: Force UVC version to 1.0a for 1bcf:0b40") # When version overwritte was added
Reported-by: Edwin Gatier <edwin.gatier@protonmail.com>
Closes: https://lore.kernel.org/linux-media/CANiDSCu4AW=JZ9FS+Ny=DK_+LqqytGvSe+V6aVncRiGRiyDMfA@mail.gmail.com/T/#me584c35c4b523ac455925a1590a3de8efc354349
Tested-by: Edwin Gatier <edwin.gatier@protonmail.com>
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
 drivers/media/usb/uvc/uvc_driver.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index adec9d1aa653..bbfc409c5167 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2847,6 +2847,17 @@ static const struct usb_device_id uvc_ids[] = {
 	  .bInterfaceSubClass	= 1,
 	  .bInterfaceProtocol	= 0,
 	  .driver_info		= (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
+	/* Avermedia GC515 */
+	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
+				| USB_DEVICE_ID_MATCH_INT_INFO,
+	  .idVendor		= 0x07ca,
+	  .idProduct		= 0x1515,
+	  .bInterfaceClass	= USB_CLASS_VIDEO,
+	  .bInterfaceSubClass	= 1,
+	  .bInterfaceProtocol	= UVC_PC_PROTOCOL_15,
+	  .driver_info		= (kernel_ulong_t)&(const struct uvc_device_info){
+		.uvc_version = 0x0110,
+	  } },
 	/* ViMicro Vega */
 	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
 				| USB_DEVICE_ID_MATCH_INT_INFO,

-- 
2.55.0.1007.g17ff1f9808-goog


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

* Re: [PATCH v3 5/5] media: uvcvideo: Force UVC version for Avermedia GC515
  2026-09-11 13:22 ` [PATCH v3 5/5] media: uvcvideo: Force UVC version for Avermedia GC515 Ricardo Ribalda
@ 2026-09-28 12:37   ` Hans de Goede
  2026-09-28 12:38   ` Laurent Pinchart
  1 sibling, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2026-09-28 12:37 UTC (permalink / raw)
  To: Ricardo Ribalda, Laurent Pinchart, Mauro Carvalho Chehab
  Cc: Edwin Gatier, linux-media, linux-kernel, Mauro Carvalho Chehab,
	stable

Hi,

On 11-Sep-26 15:22, Ricardo Ribalda wrote:
> The device announces itself as UVC 1.5, but it only accepts UVC 1.1
> controls.
> 
> The camera can probably be handled by the automatic uvc_version handler,
> but it is more correct to add a quirk and keep some tracking of what
> vendors are more or less compliant. Also it might be more robust if we
> introduce more UVC version-dependent code.
> 
> Bus 003 Device 021: ID 07ca:1515 AVerMedia Technologies, Inc. X'tra Go GC515
> Negotiated speed: High Speed (480Mbps)
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass          239 Miscellaneous Device
>   bDeviceSubClass         2 [unknown]
>   bDeviceProtocol         1 Interface Association
>   bMaxPacketSize0        64
>   idVendor           0x07ca AVerMedia Technologies, Inc.
>   idProduct          0x1515 X'tra Go GC515
>   bcdDevice            0.10
>   iManufacturer           1 AVerMedia
>   iProduct                2 X'tra Go GC515
>   iSerial                 3 5313180000221
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength       0x03fd
>     bNumInterfaces          4
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xc0
>       Self Powered
>     MaxPower              500mA
>     Interface Association:
>       bLength                 8
>       bDescriptorType        11
>       bFirstInterface         0
>       bInterfaceCount         2
>       bFunctionClass         14 Video
>       bFunctionSubClass       3 Video Interface Collection
>       bFunctionProtocol       0
>       iFunction               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass        14 Video
>       bInterfaceSubClass      1 Video Control
>       bInterfaceProtocol      1
>       iInterface              0
>       VideoControl Interface Descriptor:
>         bLength                13
>         bDescriptorType        36
>         bDescriptorSubtype      1 (HEADER)
>         bcdUVC               1.50
>         wTotalLength       0x0059
>         dwClockFrequency       30.000000MHz
>         bInCollection           1
>         baInterfaceNr( 0)       1
>       VideoControl Interface Descriptor:
>         bLength                18
>         bDescriptorType        36
>         bDescriptorSubtype      2 (INPUT_TERMINAL)
>         bTerminalID             1
>         wTerminalType      0x0201 Camera Sensor
>         bAssocTerminal          0
>         iTerminal               0
>         wObjectiveFocalLengthMin      0
>         wObjectiveFocalLengthMax      0
>         wOcularFocalLength            0
>         bControlSize                  3
>         bmControls           0x00000000
>       VideoControl Interface Descriptor:
>         bLength                 9
>         bDescriptorType        36
>         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
>         bTerminalID             2
>         wTerminalType      0x0101 USB Streaming
>         bAssocTerminal          0
>         bSourceID               4
>         iTerminal               0
>       VideoControl Interface Descriptor:
>         bLength                 7
>         bDescriptorType        36
>         bDescriptorSubtype      4 (SELECTOR_UNIT)
>         bUnitID                 3
>         bNrInPins               1
>         baSource( 0)            1
>         iSelector               0
>       VideoControl Interface Descriptor:
>         bLength                13
>         bDescriptorType        36
>         bDescriptorSubtype      5 (PROCESSING_UNIT)
>         bUnitID                 4
>         bSourceID               3
>         wMaxMultiplier          0
>         bControlSize            3
>         bmControls     0x00000000
>         iProcessing             0
>         bmVideoStandards     0x00
>       VideoControl Interface Descriptor:
>         bLength                29
>         bDescriptorType        36
>         bDescriptorSubtype      6 (EXTENSION_UNIT)
>         bUnitID                 5
>         guidExtensionCode         {55be8e1c-2fdb-4f7a-bd8d-b9b1108d20c3}
>         bNumControls           24
>         bNrInPins               1
>         baSourceID( 0)          4
>         bControlSize            4
>         bmControls( 0)       0xff
>         bmControls( 1)       0xff
>         bmControls( 2)       0xff
>         bmControls( 3)       0x00
>         iExtension              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x85  EP 5 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               1
>         VideoControl Endpoint Descriptor:
>           bLength                 5
>           bDescriptorType        37
>           bDescriptorSubtype      3 (EP_INTERRUPT)
>           wMaxTransferSize       64
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass        14 Video
>       bInterfaceSubClass      2 Video Streaming
>       bInterfaceProtocol      1
>       iInterface              0
>       VideoStreaming Interface Descriptor:
>         bLength                            16
>         bDescriptorType                    36
>         bDescriptorSubtype                  1 (INPUT_HEADER)
>         bNumFormats                         3
>         wTotalLength                   0x0303
>         bEndpointAddress                 0x81  EP 1 IN
>         bmInfo                              0
>         bTerminalLink                       2
>         bStillCaptureMethod                 1
>         bTriggerSupport                     0
>         bTriggerUsage                       0
>         bControlSize                        1
>         bmaControls( 0)                     4
>         bmaControls( 1)                     4
>         bmaControls( 2)                     0
>       VideoStreaming Interface Descriptor:
>         bLength                            28
>         bDescriptorType                    36
>         bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
>         bFormatIndex                        1
>         bNumFrameDescriptors                8
>         guidFormat                            {34363248-0000-0010-8000-00aa00389b71}
>         bBitsPerPixel                      24
>         bDefaultFrameIndex                  1
>         bAspectRatioX                       0
>         bAspectRatioY                       0
>         bmInterlaceFlags                 0x00
>           Interlaced stream or variable: No
>           Fields per frame: 2 fields
>           Field 1 first: No
>           Field pattern: Field 1 only
>         bCopyProtect                        1
>         bVariableSize                     1
>       VideoStreaming Interface Descriptor:
>         bLength                            62
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         1
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1920
>         wHeight                          1080
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  9
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)             83333
>         dwFrameInterval( 1)             83416
>         dwFrameInterval( 2)            166666
>         dwFrameInterval( 3)            166833
>         dwFrameInterval( 4)            200000
>         dwFrameInterval( 5)            333333
>         dwFrameInterval( 6)            333667
>         dwFrameInterval( 7)            400000
>         dwFrameInterval( 8)            416666
>       VideoStreaming Interface Descriptor:
>         bLength                            42
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         2
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           3840
>         wHeight                          2160
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         333333
>         bFrameIntervalType                  4
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            333333
>         dwFrameInterval( 1)            333667
>         dwFrameInterval( 2)            400000
>         dwFrameInterval( 3)            416666
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         3
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           2560
>         wHeight                          1440
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         4
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1280
>         wHeight                           800
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                            38
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         5
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1280
>         wHeight                           720
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  3
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>         dwFrameInterval( 2)            200000
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         6
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            720
>         wHeight                           576
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         200000
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            200000
>         dwFrameInterval( 1)            400000
>       VideoStreaming Interface Descriptor:
>         bLength                            42
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         7
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            720
>         wHeight                           480
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  4
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>         dwFrameInterval( 2)            333333
>         dwFrameInterval( 3)            333667
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         8
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            640
>         wHeight                           480
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                             6
>         bDescriptorType                    36
>         bDescriptorSubtype                 13 (COLORFORMAT)
>         bColorPrimaries                     0 (Unspecified)
>         bTransferCharacteristics            0 (Unspecified)
>         bMatrixCoefficients                 0 (Unspecified)
>       VideoStreaming Interface Descriptor:
>         bLength                            28
>         bDescriptorType                    36
>         bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
>         bFormatIndex                        2
>         bNumFrameDescriptors                8
>         guidFormat                            {43564548-0000-0010-8000-00aa00389b71}
>         bBitsPerPixel                      24
>         bDefaultFrameIndex                  1
>         bAspectRatioX                       0
>         bAspectRatioY                       0
>         bmInterlaceFlags                 0x00
>           Interlaced stream or variable: No
>           Fields per frame: 2 fields
>           Field 1 first: No
>           Field pattern: Field 1 only
>         bCopyProtect                        1
>         bVariableSize                     1
>       VideoStreaming Interface Descriptor:
>         bLength                            62
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         1
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1920
>         wHeight                          1080
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  9
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)             83333
>         dwFrameInterval( 1)             83416
>         dwFrameInterval( 2)            166666
>         dwFrameInterval( 3)            166833
>         dwFrameInterval( 4)            200000
>         dwFrameInterval( 5)            333333
>         dwFrameInterval( 6)            333667
>         dwFrameInterval( 7)            400000
>         dwFrameInterval( 8)            416666
>       VideoStreaming Interface Descriptor:
>         bLength                            42
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         2
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           3840
>         wHeight                          2160
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         333333
>         bFrameIntervalType                  4
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            333333
>         dwFrameInterval( 1)            333667
>         dwFrameInterval( 2)            400000
>         dwFrameInterval( 3)            416666
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         3
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           2560
>         wHeight                          1440
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         4
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1280
>         wHeight                           800
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                            38
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         5
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1280
>         wHeight                           720
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  3
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>         dwFrameInterval( 2)            200000
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         6
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            720
>         wHeight                           576
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         200000
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            200000
>         dwFrameInterval( 1)            400000
>       VideoStreaming Interface Descriptor:
>         bLength                            42
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         7
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            720
>         wHeight                           480
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  4
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>         dwFrameInterval( 2)            333333
>         dwFrameInterval( 3)            333667
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         8
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            640
>         wHeight                           480
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                             6
>         bDescriptorType                    36
>         bDescriptorSubtype                 13 (COLORFORMAT)
>         bColorPrimaries                     0 (Unspecified)
>         bTransferCharacteristics            0 (Unspecified)
>         bMatrixCoefficients                 0 (Unspecified)
>       VideoStreaming Interface Descriptor:
>         bLength                            11
>         bDescriptorType                    36
>         bDescriptorSubtype                  6 (FORMAT_MJPEG)
>         bFormatIndex                        3
>         bNumFrameDescriptors                1
>         bFlags                              0
>           Fixed-size samples: No
>         bDefaultFrameIndex                  1
>         bAspectRatioX                       0
>         bAspectRatioY                       0
>         bmInterlaceFlags                 0x00
>           Interlaced stream or variable: No
>           Fields per frame: 1 fields
>           Field 1 first: No
>           Field pattern: Field 1 only
>         bCopyProtect                        1
>       VideoStreaming Interface Descriptor:
>         bLength                            30
>         bDescriptorType                    36
>         bDescriptorSubtype                  7 (FRAME_MJPEG)
>         bFrameIndex                         1
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1920
>         wHeight                          1080
>         dwMinBitRate                314572800
>         dwMaxBitRate                314572800
>         dwMaxVideoFrameBufferSize     4147200
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  1
>         dwFrameInterval( 0)            166666
>       VideoStreaming Interface Descriptor:
>         bLength                             6
>         bDescriptorType                    36
>         bDescriptorSubtype                 13 (COLORFORMAT)
>         bColorPrimaries                     0 (Unspecified)
>         bTransferCharacteristics            0 (Unspecified)
>         bMatrixCoefficients                 0 (Unspecified)
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>     Interface Association:
>       bLength                 8
>       bDescriptorType        11
>       bFirstInterface         2
>       bInterfaceCount         2
>       bFunctionClass          1 Audio
>       bFunctionSubClass       2 Streaming
>       bFunctionProtocol       0
>       iFunction               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        2
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass         1 Audio
>       bInterfaceSubClass      1 Control Device
>       bInterfaceProtocol      0
>       iInterface              0
>       AudioControl Interface Descriptor:
>         bLength                 9
>         bDescriptorType        36
>         bDescriptorSubtype      1 (HEADER)
>         bcdADC               1.00
>         wTotalLength       0x0026
>         bInCollection           1
>         baInterfaceNr(0)        3
>       AudioControl Interface Descriptor:
>         bLength                12
>         bDescriptorType        36
>         bDescriptorSubtype      2 (INPUT_TERMINAL)
>         bTerminalID             1
>         wTerminalType      0x0602 Digital Audio Interface
>         bAssocTerminal          0
>         bNrChannels             2
>         wChannelConfig     0x0003
>           Left Front (L)
>           Right Front (R)
>         iChannelNames           0
>         iTerminal               0
>       AudioControl Interface Descriptor:
>         bLength                 9
>         bDescriptorType        36
>         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
>         bTerminalID             2
>         wTerminalType      0x0101 USB Streaming
>         bAssocTerminal          0
>         bSourceID               3
>         iTerminal               0
>       AudioControl Interface Descriptor:
>         bLength                 8
>         bDescriptorType        36
>         bDescriptorSubtype      6 (FEATURE_UNIT)
>         bUnitID                 3
>         bSourceID               1
>         bControlSize            1
>         bmaControls(0)       0x03
>           Mute Control
>           Volume Control
>         iFeature                0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        3
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass         1 Audio
>       bInterfaceSubClass      2 Streaming
>       bInterfaceProtocol      0
>       iInterface              0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        3
>       bAlternateSetting       1
>       bNumEndpoints           1
>       bInterfaceClass         1 Audio
>       bInterfaceSubClass      2 Streaming
>       bInterfaceProtocol      0
>       iInterface              0
>       AudioStreaming Interface Descriptor:
>         bLength                 7
>         bDescriptorType        36
>         bDescriptorSubtype      1 (AS_GENERAL)
>         bTerminalLink           2
>         bDelay                  1 frames
>         wFormatTag         0x0001 PCM
>       AudioStreaming Interface Descriptor:
>         bLength                11
>         bDescriptorType        36
>         bDescriptorSubtype      2 (FORMAT_TYPE)
>         bFormatType             1 (FORMAT_TYPE_I)
>         bNrChannels             2
>         bSubframeSize           2
>         bBitResolution         16
>         bSamFreqType            1 Discrete
>         tSamFreq[ 0]        48000
>       Endpoint Descriptor:
>         bLength                 9
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            5
>           Transfer Type            Isochronous
>           Synch Type               Asynchronous
>           Usage Type               Data
>         wMaxPacketSize     0x00c4  1x 196 bytes
>         bInterval               4
>         bRefresh                0
>         bSynchAddress           0
>         AudioStreaming Endpoint Descriptor:
>           bLength                 7
>           bDescriptorType        37
>           bDescriptorSubtype      1 (EP_GENERAL)
>           bmAttributes         0x01
>             Sampling Frequency
>           bLockDelayUnits         0 Undefined
>           wLockDelay         0x0000
> 
> Cc: stable@vger.kernel.org
> Fixes: b400b6f28af0 ("media: uvcvideo: Force UVC version to 1.0a for 1bcf:0b40") # When version overwritte was added
> Reported-by: Edwin Gatier <edwin.gatier@protonmail.com>
> Closes: https://lore.kernel.org/linux-media/CANiDSCu4AW=JZ9FS+Ny=DK_+LqqytGvSe+V6aVncRiGRiyDMfA@mail.gmail.com/T/#me584c35c4b523ac455925a1590a3de8efc354349
> Tested-by: Edwin Gatier <edwin.gatier@protonmail.com>
> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>

Thanks, patch looks good to me:

Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>

Regards,

Hans



> ---
>  drivers/media/usb/uvc/uvc_driver.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> index adec9d1aa653..bbfc409c5167 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -2847,6 +2847,17 @@ static const struct usb_device_id uvc_ids[] = {
>  	  .bInterfaceSubClass	= 1,
>  	  .bInterfaceProtocol	= 0,
>  	  .driver_info		= (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
> +	/* Avermedia GC515 */
> +	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
> +				| USB_DEVICE_ID_MATCH_INT_INFO,
> +	  .idVendor		= 0x07ca,
> +	  .idProduct		= 0x1515,
> +	  .bInterfaceClass	= USB_CLASS_VIDEO,
> +	  .bInterfaceSubClass	= 1,
> +	  .bInterfaceProtocol	= UVC_PC_PROTOCOL_15,
> +	  .driver_info		= (kernel_ulong_t)&(const struct uvc_device_info){
> +		.uvc_version = 0x0110,
> +	  } },
>  	/* ViMicro Vega */
>  	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
>  				| USB_DEVICE_ID_MATCH_INT_INFO,
> 


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

* Re: [PATCH v3 5/5] media: uvcvideo: Force UVC version for Avermedia GC515
  2026-09-11 13:22 ` [PATCH v3 5/5] media: uvcvideo: Force UVC version for Avermedia GC515 Ricardo Ribalda
  2026-09-28 12:37   ` Hans de Goede
@ 2026-09-28 12:38   ` Laurent Pinchart
  2026-09-28 12:40     ` Ricardo Ribalda
  1 sibling, 1 reply; 6+ messages in thread
From: Laurent Pinchart @ 2026-09-28 12:38 UTC (permalink / raw)
  To: Ricardo Ribalda
  Cc: Hans de Goede, Mauro Carvalho Chehab, Edwin Gatier, linux-media,
	linux-kernel, Mauro Carvalho Chehab, stable

On Fri, Sep 11, 2026 at 01:22:29PM +0000, Ricardo Ribalda wrote:
> The device announces itself as UVC 1.5, but it only accepts UVC 1.1
> controls.
> 
> The camera can probably be handled by the automatic uvc_version handler,
> but it is more correct to add a quirk and keep some tracking of what
> vendors are more or less compliant. Also it might be more robust if we
> introduce more UVC version-dependent code.
> 
> Bus 003 Device 021: ID 07ca:1515 AVerMedia Technologies, Inc. X'tra Go GC515
> Negotiated speed: High Speed (480Mbps)
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass          239 Miscellaneous Device
>   bDeviceSubClass         2 [unknown]
>   bDeviceProtocol         1 Interface Association
>   bMaxPacketSize0        64
>   idVendor           0x07ca AVerMedia Technologies, Inc.
>   idProduct          0x1515 X'tra Go GC515
>   bcdDevice            0.10
>   iManufacturer           1 AVerMedia
>   iProduct                2 X'tra Go GC515
>   iSerial                 3 5313180000221
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength       0x03fd
>     bNumInterfaces          4
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xc0
>       Self Powered
>     MaxPower              500mA
>     Interface Association:
>       bLength                 8
>       bDescriptorType        11
>       bFirstInterface         0
>       bInterfaceCount         2
>       bFunctionClass         14 Video
>       bFunctionSubClass       3 Video Interface Collection
>       bFunctionProtocol       0
>       iFunction               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass        14 Video
>       bInterfaceSubClass      1 Video Control
>       bInterfaceProtocol      1
>       iInterface              0
>       VideoControl Interface Descriptor:
>         bLength                13
>         bDescriptorType        36
>         bDescriptorSubtype      1 (HEADER)
>         bcdUVC               1.50
>         wTotalLength       0x0059
>         dwClockFrequency       30.000000MHz
>         bInCollection           1
>         baInterfaceNr( 0)       1
>       VideoControl Interface Descriptor:
>         bLength                18
>         bDescriptorType        36
>         bDescriptorSubtype      2 (INPUT_TERMINAL)
>         bTerminalID             1
>         wTerminalType      0x0201 Camera Sensor
>         bAssocTerminal          0
>         iTerminal               0
>         wObjectiveFocalLengthMin      0
>         wObjectiveFocalLengthMax      0
>         wOcularFocalLength            0
>         bControlSize                  3
>         bmControls           0x00000000
>       VideoControl Interface Descriptor:
>         bLength                 9
>         bDescriptorType        36
>         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
>         bTerminalID             2
>         wTerminalType      0x0101 USB Streaming
>         bAssocTerminal          0
>         bSourceID               4
>         iTerminal               0
>       VideoControl Interface Descriptor:
>         bLength                 7
>         bDescriptorType        36
>         bDescriptorSubtype      4 (SELECTOR_UNIT)
>         bUnitID                 3
>         bNrInPins               1
>         baSource( 0)            1
>         iSelector               0
>       VideoControl Interface Descriptor:
>         bLength                13
>         bDescriptorType        36
>         bDescriptorSubtype      5 (PROCESSING_UNIT)
>         bUnitID                 4
>         bSourceID               3
>         wMaxMultiplier          0
>         bControlSize            3
>         bmControls     0x00000000
>         iProcessing             0
>         bmVideoStandards     0x00
>       VideoControl Interface Descriptor:
>         bLength                29
>         bDescriptorType        36
>         bDescriptorSubtype      6 (EXTENSION_UNIT)
>         bUnitID                 5
>         guidExtensionCode         {55be8e1c-2fdb-4f7a-bd8d-b9b1108d20c3}
>         bNumControls           24
>         bNrInPins               1
>         baSourceID( 0)          4
>         bControlSize            4
>         bmControls( 0)       0xff
>         bmControls( 1)       0xff
>         bmControls( 2)       0xff
>         bmControls( 3)       0x00
>         iExtension              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x85  EP 5 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               1
>         VideoControl Endpoint Descriptor:
>           bLength                 5
>           bDescriptorType        37
>           bDescriptorSubtype      3 (EP_INTERRUPT)
>           wMaxTransferSize       64
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass        14 Video
>       bInterfaceSubClass      2 Video Streaming
>       bInterfaceProtocol      1
>       iInterface              0
>       VideoStreaming Interface Descriptor:
>         bLength                            16
>         bDescriptorType                    36
>         bDescriptorSubtype                  1 (INPUT_HEADER)
>         bNumFormats                         3
>         wTotalLength                   0x0303
>         bEndpointAddress                 0x81  EP 1 IN
>         bmInfo                              0
>         bTerminalLink                       2
>         bStillCaptureMethod                 1
>         bTriggerSupport                     0
>         bTriggerUsage                       0
>         bControlSize                        1
>         bmaControls( 0)                     4
>         bmaControls( 1)                     4
>         bmaControls( 2)                     0
>       VideoStreaming Interface Descriptor:
>         bLength                            28
>         bDescriptorType                    36
>         bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
>         bFormatIndex                        1
>         bNumFrameDescriptors                8
>         guidFormat                            {34363248-0000-0010-8000-00aa00389b71}
>         bBitsPerPixel                      24
>         bDefaultFrameIndex                  1
>         bAspectRatioX                       0
>         bAspectRatioY                       0
>         bmInterlaceFlags                 0x00
>           Interlaced stream or variable: No
>           Fields per frame: 2 fields
>           Field 1 first: No
>           Field pattern: Field 1 only
>         bCopyProtect                        1
>         bVariableSize                     1
>       VideoStreaming Interface Descriptor:
>         bLength                            62
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         1
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1920
>         wHeight                          1080
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  9
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)             83333
>         dwFrameInterval( 1)             83416
>         dwFrameInterval( 2)            166666
>         dwFrameInterval( 3)            166833
>         dwFrameInterval( 4)            200000
>         dwFrameInterval( 5)            333333
>         dwFrameInterval( 6)            333667
>         dwFrameInterval( 7)            400000
>         dwFrameInterval( 8)            416666
>       VideoStreaming Interface Descriptor:
>         bLength                            42
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         2
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           3840
>         wHeight                          2160
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         333333
>         bFrameIntervalType                  4
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            333333
>         dwFrameInterval( 1)            333667
>         dwFrameInterval( 2)            400000
>         dwFrameInterval( 3)            416666
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         3
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           2560
>         wHeight                          1440
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         4
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1280
>         wHeight                           800
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                            38
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         5
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1280
>         wHeight                           720
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  3
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>         dwFrameInterval( 2)            200000
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         6
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            720
>         wHeight                           576
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         200000
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            200000
>         dwFrameInterval( 1)            400000
>       VideoStreaming Interface Descriptor:
>         bLength                            42
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         7
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            720
>         wHeight                           480
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  4
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>         dwFrameInterval( 2)            333333
>         dwFrameInterval( 3)            333667
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         8
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            640
>         wHeight                           480
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                             6
>         bDescriptorType                    36
>         bDescriptorSubtype                 13 (COLORFORMAT)
>         bColorPrimaries                     0 (Unspecified)
>         bTransferCharacteristics            0 (Unspecified)
>         bMatrixCoefficients                 0 (Unspecified)
>       VideoStreaming Interface Descriptor:
>         bLength                            28
>         bDescriptorType                    36
>         bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
>         bFormatIndex                        2
>         bNumFrameDescriptors                8
>         guidFormat                            {43564548-0000-0010-8000-00aa00389b71}
>         bBitsPerPixel                      24
>         bDefaultFrameIndex                  1
>         bAspectRatioX                       0
>         bAspectRatioY                       0
>         bmInterlaceFlags                 0x00
>           Interlaced stream or variable: No
>           Fields per frame: 2 fields
>           Field 1 first: No
>           Field pattern: Field 1 only
>         bCopyProtect                        1
>         bVariableSize                     1
>       VideoStreaming Interface Descriptor:
>         bLength                            62
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         1
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1920
>         wHeight                          1080
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  9
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)             83333
>         dwFrameInterval( 1)             83416
>         dwFrameInterval( 2)            166666
>         dwFrameInterval( 3)            166833
>         dwFrameInterval( 4)            200000
>         dwFrameInterval( 5)            333333
>         dwFrameInterval( 6)            333667
>         dwFrameInterval( 7)            400000
>         dwFrameInterval( 8)            416666
>       VideoStreaming Interface Descriptor:
>         bLength                            42
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         2
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           3840
>         wHeight                          2160
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         333333
>         bFrameIntervalType                  4
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            333333
>         dwFrameInterval( 1)            333667
>         dwFrameInterval( 2)            400000
>         dwFrameInterval( 3)            416666
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         3
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           2560
>         wHeight                          1440
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         4
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1280
>         wHeight                           800
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                            38
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         5
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1280
>         wHeight                           720
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  3
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>         dwFrameInterval( 2)            200000
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         6
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            720
>         wHeight                           576
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         200000
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            200000
>         dwFrameInterval( 1)            400000
>       VideoStreaming Interface Descriptor:
>         bLength                            42
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         7
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            720
>         wHeight                           480
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  4
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>         dwFrameInterval( 2)            333333
>         dwFrameInterval( 3)            333667
>       VideoStreaming Interface Descriptor:
>         bLength                            34
>         bDescriptorType                    36
>         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
>         bFrameIndex                         8
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                            640
>         wHeight                           480
>         dwMinBitRate                 33554432
>         dwMaxBitRate                268435456
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  2
>         dwBytesPerLine                      0
>         dwFrameInterval( 0)            166666
>         dwFrameInterval( 1)            166833
>       VideoStreaming Interface Descriptor:
>         bLength                             6
>         bDescriptorType                    36
>         bDescriptorSubtype                 13 (COLORFORMAT)
>         bColorPrimaries                     0 (Unspecified)
>         bTransferCharacteristics            0 (Unspecified)
>         bMatrixCoefficients                 0 (Unspecified)
>       VideoStreaming Interface Descriptor:
>         bLength                            11
>         bDescriptorType                    36
>         bDescriptorSubtype                  6 (FORMAT_MJPEG)
>         bFormatIndex                        3
>         bNumFrameDescriptors                1
>         bFlags                              0
>           Fixed-size samples: No
>         bDefaultFrameIndex                  1
>         bAspectRatioX                       0
>         bAspectRatioY                       0
>         bmInterlaceFlags                 0x00
>           Interlaced stream or variable: No
>           Fields per frame: 1 fields
>           Field 1 first: No
>           Field pattern: Field 1 only
>         bCopyProtect                        1
>       VideoStreaming Interface Descriptor:
>         bLength                            30
>         bDescriptorType                    36
>         bDescriptorSubtype                  7 (FRAME_MJPEG)
>         bFrameIndex                         1
>         bmCapabilities                   0x01
>           Still image supported
>         wWidth                           1920
>         wHeight                          1080
>         dwMinBitRate                314572800
>         dwMaxBitRate                314572800
>         dwMaxVideoFrameBufferSize     4147200
>         dwDefaultFrameInterval         166666
>         bFrameIntervalType                  1
>         dwFrameInterval( 0)            166666
>       VideoStreaming Interface Descriptor:
>         bLength                             6
>         bDescriptorType                    36
>         bDescriptorSubtype                 13 (COLORFORMAT)
>         bColorPrimaries                     0 (Unspecified)
>         bTransferCharacteristics            0 (Unspecified)
>         bMatrixCoefficients                 0 (Unspecified)
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>     Interface Association:
>       bLength                 8
>       bDescriptorType        11
>       bFirstInterface         2
>       bInterfaceCount         2
>       bFunctionClass          1 Audio
>       bFunctionSubClass       2 Streaming
>       bFunctionProtocol       0
>       iFunction               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        2
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass         1 Audio
>       bInterfaceSubClass      1 Control Device
>       bInterfaceProtocol      0
>       iInterface              0
>       AudioControl Interface Descriptor:
>         bLength                 9
>         bDescriptorType        36
>         bDescriptorSubtype      1 (HEADER)
>         bcdADC               1.00
>         wTotalLength       0x0026
>         bInCollection           1
>         baInterfaceNr(0)        3
>       AudioControl Interface Descriptor:
>         bLength                12
>         bDescriptorType        36
>         bDescriptorSubtype      2 (INPUT_TERMINAL)
>         bTerminalID             1
>         wTerminalType      0x0602 Digital Audio Interface
>         bAssocTerminal          0
>         bNrChannels             2
>         wChannelConfig     0x0003
>           Left Front (L)
>           Right Front (R)
>         iChannelNames           0
>         iTerminal               0
>       AudioControl Interface Descriptor:
>         bLength                 9
>         bDescriptorType        36
>         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
>         bTerminalID             2
>         wTerminalType      0x0101 USB Streaming
>         bAssocTerminal          0
>         bSourceID               3
>         iTerminal               0
>       AudioControl Interface Descriptor:
>         bLength                 8
>         bDescriptorType        36
>         bDescriptorSubtype      6 (FEATURE_UNIT)
>         bUnitID                 3
>         bSourceID               1
>         bControlSize            1
>         bmaControls(0)       0x03
>           Mute Control
>           Volume Control
>         iFeature                0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        3
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass         1 Audio
>       bInterfaceSubClass      2 Streaming
>       bInterfaceProtocol      0
>       iInterface              0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        3
>       bAlternateSetting       1
>       bNumEndpoints           1
>       bInterfaceClass         1 Audio
>       bInterfaceSubClass      2 Streaming
>       bInterfaceProtocol      0
>       iInterface              0
>       AudioStreaming Interface Descriptor:
>         bLength                 7
>         bDescriptorType        36
>         bDescriptorSubtype      1 (AS_GENERAL)
>         bTerminalLink           2
>         bDelay                  1 frames
>         wFormatTag         0x0001 PCM
>       AudioStreaming Interface Descriptor:
>         bLength                11
>         bDescriptorType        36
>         bDescriptorSubtype      2 (FORMAT_TYPE)
>         bFormatType             1 (FORMAT_TYPE_I)
>         bNrChannels             2
>         bSubframeSize           2
>         bBitResolution         16
>         bSamFreqType            1 Discrete
>         tSamFreq[ 0]        48000
>       Endpoint Descriptor:
>         bLength                 9
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            5
>           Transfer Type            Isochronous
>           Synch Type               Asynchronous
>           Usage Type               Data
>         wMaxPacketSize     0x00c4  1x 196 bytes
>         bInterval               4
>         bRefresh                0
>         bSynchAddress           0
>         AudioStreaming Endpoint Descriptor:
>           bLength                 7
>           bDescriptorType        37
>           bDescriptorSubtype      1 (EP_GENERAL)
>           bmAttributes         0x01
>             Sampling Frequency
>           bLockDelayUnits         0 Undefined
>           wLockDelay         0x0000
> 
> Cc: stable@vger.kernel.org
> Fixes: b400b6f28af0 ("media: uvcvideo: Force UVC version to 1.0a for 1bcf:0b40") # When version overwritte was added

That doesn't seem quite right, this patch doesn't fix that commit. I
think you can omit the Fixes tag. With that,

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Reported-by: Edwin Gatier <edwin.gatier@protonmail.com>
> Closes: https://lore.kernel.org/linux-media/CANiDSCu4AW=JZ9FS+Ny=DK_+LqqytGvSe+V6aVncRiGRiyDMfA@mail.gmail.com/T/#me584c35c4b523ac455925a1590a3de8efc354349
> Tested-by: Edwin Gatier <edwin.gatier@protonmail.com>
> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> ---
>  drivers/media/usb/uvc/uvc_driver.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> index adec9d1aa653..bbfc409c5167 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -2847,6 +2847,17 @@ static const struct usb_device_id uvc_ids[] = {
>  	  .bInterfaceSubClass	= 1,
>  	  .bInterfaceProtocol	= 0,
>  	  .driver_info		= (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
> +	/* Avermedia GC515 */
> +	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
> +				| USB_DEVICE_ID_MATCH_INT_INFO,
> +	  .idVendor		= 0x07ca,
> +	  .idProduct		= 0x1515,
> +	  .bInterfaceClass	= USB_CLASS_VIDEO,
> +	  .bInterfaceSubClass	= 1,
> +	  .bInterfaceProtocol	= UVC_PC_PROTOCOL_15,
> +	  .driver_info		= (kernel_ulong_t)&(const struct uvc_device_info){
> +		.uvc_version = 0x0110,
> +	  } },
>  	/* ViMicro Vega */
>  	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
>  				| USB_DEVICE_ID_MATCH_INT_INFO,

-- 
Regards,

Laurent Pinchart

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

* Re: [PATCH v3 5/5] media: uvcvideo: Force UVC version for Avermedia GC515
  2026-09-28 12:38   ` Laurent Pinchart
@ 2026-09-28 12:40     ` Ricardo Ribalda
  2026-09-28 12:56       ` Laurent Pinchart
  0 siblings, 1 reply; 6+ messages in thread
From: Ricardo Ribalda @ 2026-09-28 12:40 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: Hans de Goede, Mauro Carvalho Chehab, Edwin Gatier, linux-media,
	linux-kernel, Mauro Carvalho Chehab, stable

On Mon, 28 Sept 2026 at 14:38, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> On Fri, Sep 11, 2026 at 01:22:29PM +0000, Ricardo Ribalda wrote:
> > The device announces itself as UVC 1.5, but it only accepts UVC 1.1
> > controls.
> >
> > The camera can probably be handled by the automatic uvc_version handler,
> > but it is more correct to add a quirk and keep some tracking of what
> > vendors are more or less compliant. Also it might be more robust if we
> > introduce more UVC version-dependent code.
> >
> > Bus 003 Device 021: ID 07ca:1515 AVerMedia Technologies, Inc. X'tra Go GC515
> > Negotiated speed: High Speed (480Mbps)
> > Device Descriptor:
> >   bLength                18
> >   bDescriptorType         1
> >   bcdUSB               2.00
> >   bDeviceClass          239 Miscellaneous Device
> >   bDeviceSubClass         2 [unknown]
> >   bDeviceProtocol         1 Interface Association
> >   bMaxPacketSize0        64
> >   idVendor           0x07ca AVerMedia Technologies, Inc.
> >   idProduct          0x1515 X'tra Go GC515
> >   bcdDevice            0.10
> >   iManufacturer           1 AVerMedia
> >   iProduct                2 X'tra Go GC515
> >   iSerial                 3 5313180000221
> >   bNumConfigurations      1
> >   Configuration Descriptor:
> >     bLength                 9
> >     bDescriptorType         2
> >     wTotalLength       0x03fd
> >     bNumInterfaces          4
> >     bConfigurationValue     1
> >     iConfiguration          0
> >     bmAttributes         0xc0
> >       Self Powered
> >     MaxPower              500mA
> >     Interface Association:
> >       bLength                 8
> >       bDescriptorType        11
> >       bFirstInterface         0
> >       bInterfaceCount         2
> >       bFunctionClass         14 Video
> >       bFunctionSubClass       3 Video Interface Collection
> >       bFunctionProtocol       0
> >       iFunction               0
> >     Interface Descriptor:
> >       bLength                 9
> >       bDescriptorType         4
> >       bInterfaceNumber        0
> >       bAlternateSetting       0
> >       bNumEndpoints           1
> >       bInterfaceClass        14 Video
> >       bInterfaceSubClass      1 Video Control
> >       bInterfaceProtocol      1
> >       iInterface              0
> >       VideoControl Interface Descriptor:
> >         bLength                13
> >         bDescriptorType        36
> >         bDescriptorSubtype      1 (HEADER)
> >         bcdUVC               1.50
> >         wTotalLength       0x0059
> >         dwClockFrequency       30.000000MHz
> >         bInCollection           1
> >         baInterfaceNr( 0)       1
> >       VideoControl Interface Descriptor:
> >         bLength                18
> >         bDescriptorType        36
> >         bDescriptorSubtype      2 (INPUT_TERMINAL)
> >         bTerminalID             1
> >         wTerminalType      0x0201 Camera Sensor
> >         bAssocTerminal          0
> >         iTerminal               0
> >         wObjectiveFocalLengthMin      0
> >         wObjectiveFocalLengthMax      0
> >         wOcularFocalLength            0
> >         bControlSize                  3
> >         bmControls           0x00000000
> >       VideoControl Interface Descriptor:
> >         bLength                 9
> >         bDescriptorType        36
> >         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
> >         bTerminalID             2
> >         wTerminalType      0x0101 USB Streaming
> >         bAssocTerminal          0
> >         bSourceID               4
> >         iTerminal               0
> >       VideoControl Interface Descriptor:
> >         bLength                 7
> >         bDescriptorType        36
> >         bDescriptorSubtype      4 (SELECTOR_UNIT)
> >         bUnitID                 3
> >         bNrInPins               1
> >         baSource( 0)            1
> >         iSelector               0
> >       VideoControl Interface Descriptor:
> >         bLength                13
> >         bDescriptorType        36
> >         bDescriptorSubtype      5 (PROCESSING_UNIT)
> >         bUnitID                 4
> >         bSourceID               3
> >         wMaxMultiplier          0
> >         bControlSize            3
> >         bmControls     0x00000000
> >         iProcessing             0
> >         bmVideoStandards     0x00
> >       VideoControl Interface Descriptor:
> >         bLength                29
> >         bDescriptorType        36
> >         bDescriptorSubtype      6 (EXTENSION_UNIT)
> >         bUnitID                 5
> >         guidExtensionCode         {55be8e1c-2fdb-4f7a-bd8d-b9b1108d20c3}
> >         bNumControls           24
> >         bNrInPins               1
> >         baSourceID( 0)          4
> >         bControlSize            4
> >         bmControls( 0)       0xff
> >         bmControls( 1)       0xff
> >         bmControls( 2)       0xff
> >         bmControls( 3)       0x00
> >         iExtension              0
> >       Endpoint Descriptor:
> >         bLength                 7
> >         bDescriptorType         5
> >         bEndpointAddress     0x85  EP 5 IN
> >         bmAttributes            3
> >           Transfer Type            Interrupt
> >           Synch Type               None
> >           Usage Type               Data
> >         wMaxPacketSize     0x0040  1x 64 bytes
> >         bInterval               1
> >         VideoControl Endpoint Descriptor:
> >           bLength                 5
> >           bDescriptorType        37
> >           bDescriptorSubtype      3 (EP_INTERRUPT)
> >           wMaxTransferSize       64
> >     Interface Descriptor:
> >       bLength                 9
> >       bDescriptorType         4
> >       bInterfaceNumber        1
> >       bAlternateSetting       0
> >       bNumEndpoints           1
> >       bInterfaceClass        14 Video
> >       bInterfaceSubClass      2 Video Streaming
> >       bInterfaceProtocol      1
> >       iInterface              0
> >       VideoStreaming Interface Descriptor:
> >         bLength                            16
> >         bDescriptorType                    36
> >         bDescriptorSubtype                  1 (INPUT_HEADER)
> >         bNumFormats                         3
> >         wTotalLength                   0x0303
> >         bEndpointAddress                 0x81  EP 1 IN
> >         bmInfo                              0
> >         bTerminalLink                       2
> >         bStillCaptureMethod                 1
> >         bTriggerSupport                     0
> >         bTriggerUsage                       0
> >         bControlSize                        1
> >         bmaControls( 0)                     4
> >         bmaControls( 1)                     4
> >         bmaControls( 2)                     0
> >       VideoStreaming Interface Descriptor:
> >         bLength                            28
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
> >         bFormatIndex                        1
> >         bNumFrameDescriptors                8
> >         guidFormat                            {34363248-0000-0010-8000-00aa00389b71}
> >         bBitsPerPixel                      24
> >         bDefaultFrameIndex                  1
> >         bAspectRatioX                       0
> >         bAspectRatioY                       0
> >         bmInterlaceFlags                 0x00
> >           Interlaced stream or variable: No
> >           Fields per frame: 2 fields
> >           Field 1 first: No
> >           Field pattern: Field 1 only
> >         bCopyProtect                        1
> >         bVariableSize                     1
> >       VideoStreaming Interface Descriptor:
> >         bLength                            62
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         1
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           1920
> >         wHeight                          1080
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  9
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)             83333
> >         dwFrameInterval( 1)             83416
> >         dwFrameInterval( 2)            166666
> >         dwFrameInterval( 3)            166833
> >         dwFrameInterval( 4)            200000
> >         dwFrameInterval( 5)            333333
> >         dwFrameInterval( 6)            333667
> >         dwFrameInterval( 7)            400000
> >         dwFrameInterval( 8)            416666
> >       VideoStreaming Interface Descriptor:
> >         bLength                            42
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         2
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           3840
> >         wHeight                          2160
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         333333
> >         bFrameIntervalType                  4
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            333333
> >         dwFrameInterval( 1)            333667
> >         dwFrameInterval( 2)            400000
> >         dwFrameInterval( 3)            416666
> >       VideoStreaming Interface Descriptor:
> >         bLength                            34
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         3
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           2560
> >         wHeight                          1440
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  2
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >       VideoStreaming Interface Descriptor:
> >         bLength                            34
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         4
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           1280
> >         wHeight                           800
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  2
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >       VideoStreaming Interface Descriptor:
> >         bLength                            38
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         5
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           1280
> >         wHeight                           720
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  3
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >         dwFrameInterval( 2)            200000
> >       VideoStreaming Interface Descriptor:
> >         bLength                            34
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         6
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                            720
> >         wHeight                           576
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         200000
> >         bFrameIntervalType                  2
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            200000
> >         dwFrameInterval( 1)            400000
> >       VideoStreaming Interface Descriptor:
> >         bLength                            42
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         7
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                            720
> >         wHeight                           480
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  4
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >         dwFrameInterval( 2)            333333
> >         dwFrameInterval( 3)            333667
> >       VideoStreaming Interface Descriptor:
> >         bLength                            34
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         8
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                            640
> >         wHeight                           480
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  2
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >       VideoStreaming Interface Descriptor:
> >         bLength                             6
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 13 (COLORFORMAT)
> >         bColorPrimaries                     0 (Unspecified)
> >         bTransferCharacteristics            0 (Unspecified)
> >         bMatrixCoefficients                 0 (Unspecified)
> >       VideoStreaming Interface Descriptor:
> >         bLength                            28
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
> >         bFormatIndex                        2
> >         bNumFrameDescriptors                8
> >         guidFormat                            {43564548-0000-0010-8000-00aa00389b71}
> >         bBitsPerPixel                      24
> >         bDefaultFrameIndex                  1
> >         bAspectRatioX                       0
> >         bAspectRatioY                       0
> >         bmInterlaceFlags                 0x00
> >           Interlaced stream or variable: No
> >           Fields per frame: 2 fields
> >           Field 1 first: No
> >           Field pattern: Field 1 only
> >         bCopyProtect                        1
> >         bVariableSize                     1
> >       VideoStreaming Interface Descriptor:
> >         bLength                            62
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         1
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           1920
> >         wHeight                          1080
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  9
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)             83333
> >         dwFrameInterval( 1)             83416
> >         dwFrameInterval( 2)            166666
> >         dwFrameInterval( 3)            166833
> >         dwFrameInterval( 4)            200000
> >         dwFrameInterval( 5)            333333
> >         dwFrameInterval( 6)            333667
> >         dwFrameInterval( 7)            400000
> >         dwFrameInterval( 8)            416666
> >       VideoStreaming Interface Descriptor:
> >         bLength                            42
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         2
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           3840
> >         wHeight                          2160
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         333333
> >         bFrameIntervalType                  4
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            333333
> >         dwFrameInterval( 1)            333667
> >         dwFrameInterval( 2)            400000
> >         dwFrameInterval( 3)            416666
> >       VideoStreaming Interface Descriptor:
> >         bLength                            34
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         3
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           2560
> >         wHeight                          1440
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  2
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >       VideoStreaming Interface Descriptor:
> >         bLength                            34
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         4
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           1280
> >         wHeight                           800
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  2
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >       VideoStreaming Interface Descriptor:
> >         bLength                            38
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         5
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           1280
> >         wHeight                           720
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  3
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >         dwFrameInterval( 2)            200000
> >       VideoStreaming Interface Descriptor:
> >         bLength                            34
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         6
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                            720
> >         wHeight                           576
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         200000
> >         bFrameIntervalType                  2
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            200000
> >         dwFrameInterval( 1)            400000
> >       VideoStreaming Interface Descriptor:
> >         bLength                            42
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         7
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                            720
> >         wHeight                           480
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  4
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >         dwFrameInterval( 2)            333333
> >         dwFrameInterval( 3)            333667
> >       VideoStreaming Interface Descriptor:
> >         bLength                            34
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> >         bFrameIndex                         8
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                            640
> >         wHeight                           480
> >         dwMinBitRate                 33554432
> >         dwMaxBitRate                268435456
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  2
> >         dwBytesPerLine                      0
> >         dwFrameInterval( 0)            166666
> >         dwFrameInterval( 1)            166833
> >       VideoStreaming Interface Descriptor:
> >         bLength                             6
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 13 (COLORFORMAT)
> >         bColorPrimaries                     0 (Unspecified)
> >         bTransferCharacteristics            0 (Unspecified)
> >         bMatrixCoefficients                 0 (Unspecified)
> >       VideoStreaming Interface Descriptor:
> >         bLength                            11
> >         bDescriptorType                    36
> >         bDescriptorSubtype                  6 (FORMAT_MJPEG)
> >         bFormatIndex                        3
> >         bNumFrameDescriptors                1
> >         bFlags                              0
> >           Fixed-size samples: No
> >         bDefaultFrameIndex                  1
> >         bAspectRatioX                       0
> >         bAspectRatioY                       0
> >         bmInterlaceFlags                 0x00
> >           Interlaced stream or variable: No
> >           Fields per frame: 1 fields
> >           Field 1 first: No
> >           Field pattern: Field 1 only
> >         bCopyProtect                        1
> >       VideoStreaming Interface Descriptor:
> >         bLength                            30
> >         bDescriptorType                    36
> >         bDescriptorSubtype                  7 (FRAME_MJPEG)
> >         bFrameIndex                         1
> >         bmCapabilities                   0x01
> >           Still image supported
> >         wWidth                           1920
> >         wHeight                          1080
> >         dwMinBitRate                314572800
> >         dwMaxBitRate                314572800
> >         dwMaxVideoFrameBufferSize     4147200
> >         dwDefaultFrameInterval         166666
> >         bFrameIntervalType                  1
> >         dwFrameInterval( 0)            166666
> >       VideoStreaming Interface Descriptor:
> >         bLength                             6
> >         bDescriptorType                    36
> >         bDescriptorSubtype                 13 (COLORFORMAT)
> >         bColorPrimaries                     0 (Unspecified)
> >         bTransferCharacteristics            0 (Unspecified)
> >         bMatrixCoefficients                 0 (Unspecified)
> >       Endpoint Descriptor:
> >         bLength                 7
> >         bDescriptorType         5
> >         bEndpointAddress     0x81  EP 1 IN
> >         bmAttributes            2
> >           Transfer Type            Bulk
> >           Synch Type               None
> >           Usage Type               Data
> >         wMaxPacketSize     0x0200  1x 512 bytes
> >         bInterval               0
> >     Interface Association:
> >       bLength                 8
> >       bDescriptorType        11
> >       bFirstInterface         2
> >       bInterfaceCount         2
> >       bFunctionClass          1 Audio
> >       bFunctionSubClass       2 Streaming
> >       bFunctionProtocol       0
> >       iFunction               0
> >     Interface Descriptor:
> >       bLength                 9
> >       bDescriptorType         4
> >       bInterfaceNumber        2
> >       bAlternateSetting       0
> >       bNumEndpoints           0
> >       bInterfaceClass         1 Audio
> >       bInterfaceSubClass      1 Control Device
> >       bInterfaceProtocol      0
> >       iInterface              0
> >       AudioControl Interface Descriptor:
> >         bLength                 9
> >         bDescriptorType        36
> >         bDescriptorSubtype      1 (HEADER)
> >         bcdADC               1.00
> >         wTotalLength       0x0026
> >         bInCollection           1
> >         baInterfaceNr(0)        3
> >       AudioControl Interface Descriptor:
> >         bLength                12
> >         bDescriptorType        36
> >         bDescriptorSubtype      2 (INPUT_TERMINAL)
> >         bTerminalID             1
> >         wTerminalType      0x0602 Digital Audio Interface
> >         bAssocTerminal          0
> >         bNrChannels             2
> >         wChannelConfig     0x0003
> >           Left Front (L)
> >           Right Front (R)
> >         iChannelNames           0
> >         iTerminal               0
> >       AudioControl Interface Descriptor:
> >         bLength                 9
> >         bDescriptorType        36
> >         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
> >         bTerminalID             2
> >         wTerminalType      0x0101 USB Streaming
> >         bAssocTerminal          0
> >         bSourceID               3
> >         iTerminal               0
> >       AudioControl Interface Descriptor:
> >         bLength                 8
> >         bDescriptorType        36
> >         bDescriptorSubtype      6 (FEATURE_UNIT)
> >         bUnitID                 3
> >         bSourceID               1
> >         bControlSize            1
> >         bmaControls(0)       0x03
> >           Mute Control
> >           Volume Control
> >         iFeature                0
> >     Interface Descriptor:
> >       bLength                 9
> >       bDescriptorType         4
> >       bInterfaceNumber        3
> >       bAlternateSetting       0
> >       bNumEndpoints           0
> >       bInterfaceClass         1 Audio
> >       bInterfaceSubClass      2 Streaming
> >       bInterfaceProtocol      0
> >       iInterface              0
> >     Interface Descriptor:
> >       bLength                 9
> >       bDescriptorType         4
> >       bInterfaceNumber        3
> >       bAlternateSetting       1
> >       bNumEndpoints           1
> >       bInterfaceClass         1 Audio
> >       bInterfaceSubClass      2 Streaming
> >       bInterfaceProtocol      0
> >       iInterface              0
> >       AudioStreaming Interface Descriptor:
> >         bLength                 7
> >         bDescriptorType        36
> >         bDescriptorSubtype      1 (AS_GENERAL)
> >         bTerminalLink           2
> >         bDelay                  1 frames
> >         wFormatTag         0x0001 PCM
> >       AudioStreaming Interface Descriptor:
> >         bLength                11
> >         bDescriptorType        36
> >         bDescriptorSubtype      2 (FORMAT_TYPE)
> >         bFormatType             1 (FORMAT_TYPE_I)
> >         bNrChannels             2
> >         bSubframeSize           2
> >         bBitResolution         16
> >         bSamFreqType            1 Discrete
> >         tSamFreq[ 0]        48000
> >       Endpoint Descriptor:
> >         bLength                 9
> >         bDescriptorType         5
> >         bEndpointAddress     0x83  EP 3 IN
> >         bmAttributes            5
> >           Transfer Type            Isochronous
> >           Synch Type               Asynchronous
> >           Usage Type               Data
> >         wMaxPacketSize     0x00c4  1x 196 bytes
> >         bInterval               4
> >         bRefresh                0
> >         bSynchAddress           0
> >         AudioStreaming Endpoint Descriptor:
> >           bLength                 7
> >           bDescriptorType        37
> >           bDescriptorSubtype      1 (EP_GENERAL)
> >           bmAttributes         0x01
> >             Sampling Frequency
> >           bLockDelayUnits         0 Undefined
> >           wLockDelay         0x0000
> >
> > Cc: stable@vger.kernel.org
> > Fixes: b400b6f28af0 ("media: uvcvideo: Force UVC version to 1.0a for 1bcf:0b40") # When version overwritte was added
>
> That doesn't seem quite right, this patch doesn't fix that commit. I
> think you can omit the Fixes tag. With that,

Without the Fixes tag, how to I let stable know until what version it
should backport the patch?

>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> > Reported-by: Edwin Gatier <edwin.gatier@protonmail.com>
> > Closes: https://lore.kernel.org/linux-media/CANiDSCu4AW=JZ9FS+Ny=DK_+LqqytGvSe+V6aVncRiGRiyDMfA@mail.gmail.com/T/#me584c35c4b523ac455925a1590a3de8efc354349
> > Tested-by: Edwin Gatier <edwin.gatier@protonmail.com>
> > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> > ---
> >  drivers/media/usb/uvc/uvc_driver.c | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >
> > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> > index adec9d1aa653..bbfc409c5167 100644
> > --- a/drivers/media/usb/uvc/uvc_driver.c
> > +++ b/drivers/media/usb/uvc/uvc_driver.c
> > @@ -2847,6 +2847,17 @@ static const struct usb_device_id uvc_ids[] = {
> >         .bInterfaceSubClass   = 1,
> >         .bInterfaceProtocol   = 0,
> >         .driver_info          = (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
> > +     /* Avermedia GC515 */
> > +     { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
> > +                             | USB_DEVICE_ID_MATCH_INT_INFO,
> > +       .idVendor             = 0x07ca,
> > +       .idProduct            = 0x1515,
> > +       .bInterfaceClass      = USB_CLASS_VIDEO,
> > +       .bInterfaceSubClass   = 1,
> > +       .bInterfaceProtocol   = UVC_PC_PROTOCOL_15,
> > +       .driver_info          = (kernel_ulong_t)&(const struct uvc_device_info){
> > +             .uvc_version = 0x0110,
> > +       } },
> >       /* ViMicro Vega */
> >       { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
> >                               | USB_DEVICE_ID_MATCH_INT_INFO,
>
> --
> Regards,
>
> Laurent Pinchart



-- 
Ricardo Ribalda

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

* Re: [PATCH v3 5/5] media: uvcvideo: Force UVC version for Avermedia GC515
  2026-09-28 12:40     ` Ricardo Ribalda
@ 2026-09-28 12:56       ` Laurent Pinchart
  0 siblings, 0 replies; 6+ messages in thread
From: Laurent Pinchart @ 2026-09-28 12:56 UTC (permalink / raw)
  To: Ricardo Ribalda
  Cc: Hans de Goede, Mauro Carvalho Chehab, Edwin Gatier, linux-media,
	linux-kernel, Mauro Carvalho Chehab, stable

On Mon, Sep 28, 2026 at 02:40:05PM +0200, Ricardo Ribalda wrote:
> On Mon, 28 Sept 2026 at 14:38, Laurent Pinchart wrote:
> > On Fri, Sep 11, 2026 at 01:22:29PM +0000, Ricardo Ribalda wrote:
> > > The device announces itself as UVC 1.5, but it only accepts UVC 1.1
> > > controls.
> > >
> > > The camera can probably be handled by the automatic uvc_version handler,
> > > but it is more correct to add a quirk and keep some tracking of what
> > > vendors are more or less compliant. Also it might be more robust if we
> > > introduce more UVC version-dependent code.
> > >
> > > Bus 003 Device 021: ID 07ca:1515 AVerMedia Technologies, Inc. X'tra Go GC515
> > > Negotiated speed: High Speed (480Mbps)
> > > Device Descriptor:
> > >   bLength                18
> > >   bDescriptorType         1
> > >   bcdUSB               2.00
> > >   bDeviceClass          239 Miscellaneous Device
> > >   bDeviceSubClass         2 [unknown]
> > >   bDeviceProtocol         1 Interface Association
> > >   bMaxPacketSize0        64
> > >   idVendor           0x07ca AVerMedia Technologies, Inc.
> > >   idProduct          0x1515 X'tra Go GC515
> > >   bcdDevice            0.10
> > >   iManufacturer           1 AVerMedia
> > >   iProduct                2 X'tra Go GC515
> > >   iSerial                 3 5313180000221
> > >   bNumConfigurations      1
> > >   Configuration Descriptor:
> > >     bLength                 9
> > >     bDescriptorType         2
> > >     wTotalLength       0x03fd
> > >     bNumInterfaces          4
> > >     bConfigurationValue     1
> > >     iConfiguration          0
> > >     bmAttributes         0xc0
> > >       Self Powered
> > >     MaxPower              500mA
> > >     Interface Association:
> > >       bLength                 8
> > >       bDescriptorType        11
> > >       bFirstInterface         0
> > >       bInterfaceCount         2
> > >       bFunctionClass         14 Video
> > >       bFunctionSubClass       3 Video Interface Collection
> > >       bFunctionProtocol       0
> > >       iFunction               0
> > >     Interface Descriptor:
> > >       bLength                 9
> > >       bDescriptorType         4
> > >       bInterfaceNumber        0
> > >       bAlternateSetting       0
> > >       bNumEndpoints           1
> > >       bInterfaceClass        14 Video
> > >       bInterfaceSubClass      1 Video Control
> > >       bInterfaceProtocol      1
> > >       iInterface              0
> > >       VideoControl Interface Descriptor:
> > >         bLength                13
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      1 (HEADER)
> > >         bcdUVC               1.50
> > >         wTotalLength       0x0059
> > >         dwClockFrequency       30.000000MHz
> > >         bInCollection           1
> > >         baInterfaceNr( 0)       1
> > >       VideoControl Interface Descriptor:
> > >         bLength                18
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      2 (INPUT_TERMINAL)
> > >         bTerminalID             1
> > >         wTerminalType      0x0201 Camera Sensor
> > >         bAssocTerminal          0
> > >         iTerminal               0
> > >         wObjectiveFocalLengthMin      0
> > >         wObjectiveFocalLengthMax      0
> > >         wOcularFocalLength            0
> > >         bControlSize                  3
> > >         bmControls           0x00000000
> > >       VideoControl Interface Descriptor:
> > >         bLength                 9
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
> > >         bTerminalID             2
> > >         wTerminalType      0x0101 USB Streaming
> > >         bAssocTerminal          0
> > >         bSourceID               4
> > >         iTerminal               0
> > >       VideoControl Interface Descriptor:
> > >         bLength                 7
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      4 (SELECTOR_UNIT)
> > >         bUnitID                 3
> > >         bNrInPins               1
> > >         baSource( 0)            1
> > >         iSelector               0
> > >       VideoControl Interface Descriptor:
> > >         bLength                13
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      5 (PROCESSING_UNIT)
> > >         bUnitID                 4
> > >         bSourceID               3
> > >         wMaxMultiplier          0
> > >         bControlSize            3
> > >         bmControls     0x00000000
> > >         iProcessing             0
> > >         bmVideoStandards     0x00
> > >       VideoControl Interface Descriptor:
> > >         bLength                29
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      6 (EXTENSION_UNIT)
> > >         bUnitID                 5
> > >         guidExtensionCode         {55be8e1c-2fdb-4f7a-bd8d-b9b1108d20c3}
> > >         bNumControls           24
> > >         bNrInPins               1
> > >         baSourceID( 0)          4
> > >         bControlSize            4
> > >         bmControls( 0)       0xff
> > >         bmControls( 1)       0xff
> > >         bmControls( 2)       0xff
> > >         bmControls( 3)       0x00
> > >         iExtension              0
> > >       Endpoint Descriptor:
> > >         bLength                 7
> > >         bDescriptorType         5
> > >         bEndpointAddress     0x85  EP 5 IN
> > >         bmAttributes            3
> > >           Transfer Type            Interrupt
> > >           Synch Type               None
> > >           Usage Type               Data
> > >         wMaxPacketSize     0x0040  1x 64 bytes
> > >         bInterval               1
> > >         VideoControl Endpoint Descriptor:
> > >           bLength                 5
> > >           bDescriptorType        37
> > >           bDescriptorSubtype      3 (EP_INTERRUPT)
> > >           wMaxTransferSize       64
> > >     Interface Descriptor:
> > >       bLength                 9
> > >       bDescriptorType         4
> > >       bInterfaceNumber        1
> > >       bAlternateSetting       0
> > >       bNumEndpoints           1
> > >       bInterfaceClass        14 Video
> > >       bInterfaceSubClass      2 Video Streaming
> > >       bInterfaceProtocol      1
> > >       iInterface              0
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            16
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                  1 (INPUT_HEADER)
> > >         bNumFormats                         3
> > >         wTotalLength                   0x0303
> > >         bEndpointAddress                 0x81  EP 1 IN
> > >         bmInfo                              0
> > >         bTerminalLink                       2
> > >         bStillCaptureMethod                 1
> > >         bTriggerSupport                     0
> > >         bTriggerUsage                       0
> > >         bControlSize                        1
> > >         bmaControls( 0)                     4
> > >         bmaControls( 1)                     4
> > >         bmaControls( 2)                     0
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            28
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
> > >         bFormatIndex                        1
> > >         bNumFrameDescriptors                8
> > >         guidFormat                            {34363248-0000-0010-8000-00aa00389b71}
> > >         bBitsPerPixel                      24
> > >         bDefaultFrameIndex                  1
> > >         bAspectRatioX                       0
> > >         bAspectRatioY                       0
> > >         bmInterlaceFlags                 0x00
> > >           Interlaced stream or variable: No
> > >           Fields per frame: 2 fields
> > >           Field 1 first: No
> > >           Field pattern: Field 1 only
> > >         bCopyProtect                        1
> > >         bVariableSize                     1
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            62
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         1
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           1920
> > >         wHeight                          1080
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  9
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)             83333
> > >         dwFrameInterval( 1)             83416
> > >         dwFrameInterval( 2)            166666
> > >         dwFrameInterval( 3)            166833
> > >         dwFrameInterval( 4)            200000
> > >         dwFrameInterval( 5)            333333
> > >         dwFrameInterval( 6)            333667
> > >         dwFrameInterval( 7)            400000
> > >         dwFrameInterval( 8)            416666
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            42
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         2
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           3840
> > >         wHeight                          2160
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         333333
> > >         bFrameIntervalType                  4
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            333333
> > >         dwFrameInterval( 1)            333667
> > >         dwFrameInterval( 2)            400000
> > >         dwFrameInterval( 3)            416666
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            34
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         3
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           2560
> > >         wHeight                          1440
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  2
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            34
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         4
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           1280
> > >         wHeight                           800
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  2
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            38
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         5
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           1280
> > >         wHeight                           720
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  3
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >         dwFrameInterval( 2)            200000
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            34
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         6
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                            720
> > >         wHeight                           576
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         200000
> > >         bFrameIntervalType                  2
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            200000
> > >         dwFrameInterval( 1)            400000
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            42
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         7
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                            720
> > >         wHeight                           480
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  4
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >         dwFrameInterval( 2)            333333
> > >         dwFrameInterval( 3)            333667
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            34
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         8
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                            640
> > >         wHeight                           480
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  2
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                             6
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 13 (COLORFORMAT)
> > >         bColorPrimaries                     0 (Unspecified)
> > >         bTransferCharacteristics            0 (Unspecified)
> > >         bMatrixCoefficients                 0 (Unspecified)
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            28
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 16 (FORMAT_FRAME_BASED)
> > >         bFormatIndex                        2
> > >         bNumFrameDescriptors                8
> > >         guidFormat                            {43564548-0000-0010-8000-00aa00389b71}
> > >         bBitsPerPixel                      24
> > >         bDefaultFrameIndex                  1
> > >         bAspectRatioX                       0
> > >         bAspectRatioY                       0
> > >         bmInterlaceFlags                 0x00
> > >           Interlaced stream or variable: No
> > >           Fields per frame: 2 fields
> > >           Field 1 first: No
> > >           Field pattern: Field 1 only
> > >         bCopyProtect                        1
> > >         bVariableSize                     1
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            62
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         1
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           1920
> > >         wHeight                          1080
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  9
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)             83333
> > >         dwFrameInterval( 1)             83416
> > >         dwFrameInterval( 2)            166666
> > >         dwFrameInterval( 3)            166833
> > >         dwFrameInterval( 4)            200000
> > >         dwFrameInterval( 5)            333333
> > >         dwFrameInterval( 6)            333667
> > >         dwFrameInterval( 7)            400000
> > >         dwFrameInterval( 8)            416666
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            42
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         2
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           3840
> > >         wHeight                          2160
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         333333
> > >         bFrameIntervalType                  4
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            333333
> > >         dwFrameInterval( 1)            333667
> > >         dwFrameInterval( 2)            400000
> > >         dwFrameInterval( 3)            416666
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            34
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         3
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           2560
> > >         wHeight                          1440
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  2
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            34
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         4
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           1280
> > >         wHeight                           800
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  2
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            38
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         5
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           1280
> > >         wHeight                           720
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  3
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >         dwFrameInterval( 2)            200000
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            34
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         6
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                            720
> > >         wHeight                           576
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         200000
> > >         bFrameIntervalType                  2
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            200000
> > >         dwFrameInterval( 1)            400000
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            42
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         7
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                            720
> > >         wHeight                           480
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  4
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >         dwFrameInterval( 2)            333333
> > >         dwFrameInterval( 3)            333667
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            34
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 17 (FRAME_FRAME_BASED)
> > >         bFrameIndex                         8
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                            640
> > >         wHeight                           480
> > >         dwMinBitRate                 33554432
> > >         dwMaxBitRate                268435456
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  2
> > >         dwBytesPerLine                      0
> > >         dwFrameInterval( 0)            166666
> > >         dwFrameInterval( 1)            166833
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                             6
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 13 (COLORFORMAT)
> > >         bColorPrimaries                     0 (Unspecified)
> > >         bTransferCharacteristics            0 (Unspecified)
> > >         bMatrixCoefficients                 0 (Unspecified)
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            11
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                  6 (FORMAT_MJPEG)
> > >         bFormatIndex                        3
> > >         bNumFrameDescriptors                1
> > >         bFlags                              0
> > >           Fixed-size samples: No
> > >         bDefaultFrameIndex                  1
> > >         bAspectRatioX                       0
> > >         bAspectRatioY                       0
> > >         bmInterlaceFlags                 0x00
> > >           Interlaced stream or variable: No
> > >           Fields per frame: 1 fields
> > >           Field 1 first: No
> > >           Field pattern: Field 1 only
> > >         bCopyProtect                        1
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                            30
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                  7 (FRAME_MJPEG)
> > >         bFrameIndex                         1
> > >         bmCapabilities                   0x01
> > >           Still image supported
> > >         wWidth                           1920
> > >         wHeight                          1080
> > >         dwMinBitRate                314572800
> > >         dwMaxBitRate                314572800
> > >         dwMaxVideoFrameBufferSize     4147200
> > >         dwDefaultFrameInterval         166666
> > >         bFrameIntervalType                  1
> > >         dwFrameInterval( 0)            166666
> > >       VideoStreaming Interface Descriptor:
> > >         bLength                             6
> > >         bDescriptorType                    36
> > >         bDescriptorSubtype                 13 (COLORFORMAT)
> > >         bColorPrimaries                     0 (Unspecified)
> > >         bTransferCharacteristics            0 (Unspecified)
> > >         bMatrixCoefficients                 0 (Unspecified)
> > >       Endpoint Descriptor:
> > >         bLength                 7
> > >         bDescriptorType         5
> > >         bEndpointAddress     0x81  EP 1 IN
> > >         bmAttributes            2
> > >           Transfer Type            Bulk
> > >           Synch Type               None
> > >           Usage Type               Data
> > >         wMaxPacketSize     0x0200  1x 512 bytes
> > >         bInterval               0
> > >     Interface Association:
> > >       bLength                 8
> > >       bDescriptorType        11
> > >       bFirstInterface         2
> > >       bInterfaceCount         2
> > >       bFunctionClass          1 Audio
> > >       bFunctionSubClass       2 Streaming
> > >       bFunctionProtocol       0
> > >       iFunction               0
> > >     Interface Descriptor:
> > >       bLength                 9
> > >       bDescriptorType         4
> > >       bInterfaceNumber        2
> > >       bAlternateSetting       0
> > >       bNumEndpoints           0
> > >       bInterfaceClass         1 Audio
> > >       bInterfaceSubClass      1 Control Device
> > >       bInterfaceProtocol      0
> > >       iInterface              0
> > >       AudioControl Interface Descriptor:
> > >         bLength                 9
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      1 (HEADER)
> > >         bcdADC               1.00
> > >         wTotalLength       0x0026
> > >         bInCollection           1
> > >         baInterfaceNr(0)        3
> > >       AudioControl Interface Descriptor:
> > >         bLength                12
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      2 (INPUT_TERMINAL)
> > >         bTerminalID             1
> > >         wTerminalType      0x0602 Digital Audio Interface
> > >         bAssocTerminal          0
> > >         bNrChannels             2
> > >         wChannelConfig     0x0003
> > >           Left Front (L)
> > >           Right Front (R)
> > >         iChannelNames           0
> > >         iTerminal               0
> > >       AudioControl Interface Descriptor:
> > >         bLength                 9
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      3 (OUTPUT_TERMINAL)
> > >         bTerminalID             2
> > >         wTerminalType      0x0101 USB Streaming
> > >         bAssocTerminal          0
> > >         bSourceID               3
> > >         iTerminal               0
> > >       AudioControl Interface Descriptor:
> > >         bLength                 8
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      6 (FEATURE_UNIT)
> > >         bUnitID                 3
> > >         bSourceID               1
> > >         bControlSize            1
> > >         bmaControls(0)       0x03
> > >           Mute Control
> > >           Volume Control
> > >         iFeature                0
> > >     Interface Descriptor:
> > >       bLength                 9
> > >       bDescriptorType         4
> > >       bInterfaceNumber        3
> > >       bAlternateSetting       0
> > >       bNumEndpoints           0
> > >       bInterfaceClass         1 Audio
> > >       bInterfaceSubClass      2 Streaming
> > >       bInterfaceProtocol      0
> > >       iInterface              0
> > >     Interface Descriptor:
> > >       bLength                 9
> > >       bDescriptorType         4
> > >       bInterfaceNumber        3
> > >       bAlternateSetting       1
> > >       bNumEndpoints           1
> > >       bInterfaceClass         1 Audio
> > >       bInterfaceSubClass      2 Streaming
> > >       bInterfaceProtocol      0
> > >       iInterface              0
> > >       AudioStreaming Interface Descriptor:
> > >         bLength                 7
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      1 (AS_GENERAL)
> > >         bTerminalLink           2
> > >         bDelay                  1 frames
> > >         wFormatTag         0x0001 PCM
> > >       AudioStreaming Interface Descriptor:
> > >         bLength                11
> > >         bDescriptorType        36
> > >         bDescriptorSubtype      2 (FORMAT_TYPE)
> > >         bFormatType             1 (FORMAT_TYPE_I)
> > >         bNrChannels             2
> > >         bSubframeSize           2
> > >         bBitResolution         16
> > >         bSamFreqType            1 Discrete
> > >         tSamFreq[ 0]        48000
> > >       Endpoint Descriptor:
> > >         bLength                 9
> > >         bDescriptorType         5
> > >         bEndpointAddress     0x83  EP 3 IN
> > >         bmAttributes            5
> > >           Transfer Type            Isochronous
> > >           Synch Type               Asynchronous
> > >           Usage Type               Data
> > >         wMaxPacketSize     0x00c4  1x 196 bytes
> > >         bInterval               4
> > >         bRefresh                0
> > >         bSynchAddress           0
> > >         AudioStreaming Endpoint Descriptor:
> > >           bLength                 7
> > >           bDescriptorType        37
> > >           bDescriptorSubtype      1 (EP_GENERAL)
> > >           bmAttributes         0x01
> > >             Sampling Frequency
> > >           bLockDelayUnits         0 Undefined
> > >           wLockDelay         0x0000
> > >
> > > Cc: stable@vger.kernel.org
> > > Fixes: b400b6f28af0 ("media: uvcvideo: Force UVC version to 1.0a for 1bcf:0b40") # When version overwritte was added
> >
> > That doesn't seem quite right, this patch doesn't fix that commit. I
> > think you can omit the Fixes tag. With that,
> 
> Without the Fixes tag, how to I let stable know until what version it
> should backport the patch?

I think that would be

Cc: stable@vger.kernel.org # 5.12.x

See Documentation/process/stable-kernel-rules.rst, Option 1:

* Point out kernel version prerequisites::

    Cc: <stable@vger.kernel.org> # 3.3.x

  The tag has the meaning of::

    git cherry-pick <this commit>

  For each "-stable" tree starting with the specified version.

  Note, such tagging is unnecessary if the stable team can derive the
  appropriate versions from Fixes: tags.

No need to resend just for this. If you're fine with the above it can be
adjusted when applying.

> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >
> > > Reported-by: Edwin Gatier <edwin.gatier@protonmail.com>
> > > Closes: https://lore.kernel.org/linux-media/CANiDSCu4AW=JZ9FS+Ny=DK_+LqqytGvSe+V6aVncRiGRiyDMfA@mail.gmail.com/T/#me584c35c4b523ac455925a1590a3de8efc354349
> > > Tested-by: Edwin Gatier <edwin.gatier@protonmail.com>
> > > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
> > > ---
> > >  drivers/media/usb/uvc/uvc_driver.c | 11 +++++++++++
> > >  1 file changed, 11 insertions(+)
> > >
> > > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> > > index adec9d1aa653..bbfc409c5167 100644
> > > --- a/drivers/media/usb/uvc/uvc_driver.c
> > > +++ b/drivers/media/usb/uvc/uvc_driver.c
> > > @@ -2847,6 +2847,17 @@ static const struct usb_device_id uvc_ids[] = {
> > >         .bInterfaceSubClass   = 1,
> > >         .bInterfaceProtocol   = 0,
> > >         .driver_info          = (kernel_ulong_t)&uvc_quirk_fix_bandwidth },
> > > +     /* Avermedia GC515 */
> > > +     { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
> > > +                             | USB_DEVICE_ID_MATCH_INT_INFO,
> > > +       .idVendor             = 0x07ca,
> > > +       .idProduct            = 0x1515,
> > > +       .bInterfaceClass      = USB_CLASS_VIDEO,
> > > +       .bInterfaceSubClass   = 1,
> > > +       .bInterfaceProtocol   = UVC_PC_PROTOCOL_15,
> > > +       .driver_info          = (kernel_ulong_t)&(const struct uvc_device_info){
> > > +             .uvc_version = 0x0110,
> > > +       } },
> > >       /* ViMicro Vega */
> > >       { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
> > >                               | USB_DEVICE_ID_MATCH_INT_INFO,

-- 
Regards,

Laurent Pinchart

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

end of thread, other threads:[~2026-09-28 12:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 13:22 [PATCH v3 0/5] media: uvcvideo: Automatically handle invalid uvc_versions Ricardo Ribalda
2026-09-11 13:22 ` [PATCH v3 5/5] media: uvcvideo: Force UVC version for Avermedia GC515 Ricardo Ribalda
2026-09-28 12:37   ` Hans de Goede
2026-09-28 12:38   ` Laurent Pinchart
2026-09-28 12:40     ` Ricardo Ribalda
2026-09-28 12:56       ` Laurent Pinchart

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