[PATCH] media: uvcvideo: Add quirk for invalid dev_sof in Logitech C925e

Yunke Cao <[email protected]> Mon, 3 Aug 2026 15:58:11 +0900
Newsgroups org.kernel.vger.linux-media
Message-ID <[email protected]>
Logitech C925e SOF does not increases at a stable rate of 1kHz.
Add a quirk for this camera to make hwtimestamp usable.

Before applying the quirk:
```
seq:     31 ts: 1075.543294 delta: 29.423 ms fps: 34.94
seq:     32 ts: 1075.573022 delta: 29.728 ms fps: 34.90
seq:     33 ts: 1075.602353 delta: 29.331 ms fps: 34.87
seq:     34 ts: 1075.632031 delta: 29.678 ms fps: 34.84
seq:     35 ts: 1076.177759 delta: 545.728 ms fps: 23.00
seq:     36 ts: 1076.213255 delta: 35.496 ms fps: 23.12
seq:     37 ts: 1076.209371 delta: -3.884 ms fps: 23.82
seq:     38 ts: 1076.232233 delta: 22.862 ms fps: 24.11
seq:     39 ts: 1076.264682 delta: 32.449 ms fps: 24.24
seq:     40 ts: 1076.287318 delta: 22.636 ms fps: 24.52
seq:     41 ts: 1076.285949 delta: -1.369 ms fps: 25.16
seq:     42 ts: 1076.317714 delta: 31.765 ms fps: 25.28
seq:     43 ts: 1076.317085 delta: -0.629 ms fps: 25.89
seq:     44 ts: 1076.339919 delta: 22.834 ms fps: 26.13
seq:     45 ts: 1076.212836 delta: -127.083 ms fps: 28.91
seq:     46 ts: 1076.242494 delta: 29.658 ms fps: 29.00
seq:     47 ts: 1076.271852 delta: 29.358 ms fps: 29.09
seq:     48 ts: 1076.301739 delta: 29.887 ms fps: 29.17
seq:     49 ts: 1076.330887 delta: 29.148 ms fps: 29.26
seq:     50 ts: 1076.360639 delta: 29.752 ms fps: 29.33
seq:     51 ts: 1076.390095 delta: 29.456 ms fps: 29.41
```

After applying the quirk:
```
seq:     31 ts: 203.782342 delta: 33.460 ms fps: 30.94
seq:     32 ts: 203.815492 delta: 33.150 ms fps: 30.91
seq:     33 ts: 203.849017 delta: 33.525 ms fps: 30.88
seq:     34 ts: 203.882190 delta: 33.173 ms fps: 30.86
seq:     35 ts: 203.915672 delta: 33.482 ms fps: 30.83
seq:     36 ts: 203.948902 delta: 33.230 ms fps: 30.81
seq:     37 ts: 203.982335 delta: 33.433 ms fps: 30.78
seq:     38 ts: 204.015475 delta: 33.140 ms fps: 30.76
seq:     39 ts: 204.048992 delta: 33.517 ms fps: 30.74
seq:     40 ts: 204.082208 delta: 33.216 ms fps: 30.72
seq:     41 ts: 204.115675 delta: 33.467 ms fps: 30.70
seq:     42 ts: 204.148995 delta: 33.320 ms fps: 30.69
seq:     43 ts: 204.182354 delta: 33.359 ms fps: 30.67
seq:     44 ts: 204.215605 delta: 33.251 ms fps: 30.66
seq:     45 ts: 204.249004 delta: 33.399 ms fps: 30.64
seq:     46 ts: 204.282259 delta: 33.255 ms fps: 30.63
seq:     47 ts: 204.315686 delta: 33.427 ms fps: 30.61
seq:     48 ts: 204.348945 delta: 33.259 ms fps: 30.60
seq:     49 ts: 204.382337 delta: 33.392 ms fps: 30.59
seq:     50 ts: 204.415570 delta: 33.233 ms fps: 30.58
seq:     51 ts: 204.449069 delta: 33.499 ms fps: 30.56
seq:     52 ts: 204.482218 delta: 33.149 ms fps: 30.55
seq:     53 ts: 204.515706 delta: 33.488 ms fps: 30.54
seq:     54 ts: 204.548940 delta: 33.234 ms fps: 30.53
seq:     55 ts: 204.582403 delta: 33.463 ms fps: 30.52
seq:     56 ts: 204.615563 delta: 33.160 ms fps: 30.51
seq:     57 ts: 204.649057 delta: 33.494 ms fps: 30.50
seq:     58 ts: 204.682301 delta: 33.244 ms fps: 30.49
seq:     59 ts: 204.715735 delta: 33.434 ms fps: 30.48
seq:     60 ts: 204.748890 delta: 33.155 ms fps: 30.48
```

lsusb -v

Bus 003 Device 005: ID 046d:085b
Device Descriptor:
  bLength                18
  bDescriptorType          1
  bcdUSB               2.00
  bDeviceClass            239
  bDeviceSubClass         2
  bDeviceProtocol         1
  bMaxPacketSize0        64
  idVendor           0x046d
  idProduct          0x085b
  bcdDevice            0.16
  iManufacturer           0
  iProduct                2 Logitech Webcam C925e
  iSerial                 1 2F2036AF
  bNumConfigurations      1

Signed-off-by: Yunke Cao <[email protected]>
---
 drivers/media/usb/uvc/uvc_driver.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index e289cc71ba98..5b9ea19ad9f2 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2706,6 +2706,15 @@ static const struct usb_device_id uvc_ids[] = {
 	  .bInterfaceSubClass	= 1,
 	  .bInterfaceProtocol	= 0,
 	  .driver_info		= UVC_INFO_QUIRK(UVC_QUIRK_INVALID_DEVICE_SOF) },
+	/* Logitech HD Pro Webcam C925e */
+	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
+				| USB_DEVICE_ID_MATCH_INT_INFO,
+	  .idVendor		= 0x046d,
+	  .idProduct		= 0x085b,
+	  .bInterfaceClass	= USB_CLASS_VIDEO,
+	  .bInterfaceSubClass	= 1,
+	  .bInterfaceProtocol	= 0,
+	  .driver_info		= UVC_INFO_QUIRK(UVC_QUIRK_INVALID_DEVICE_SOF) },
 	/* Logitech Rally Bar Huddle */
 	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
 				| USB_DEVICE_ID_MATCH_INT_INFO,
-- 
2.55.0.508.g3f0d502094-goog