* [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