Re: [PATCH v10 3/6] media: uvcvideo: Quirk for invalid dev_sof in Logitech C922
From: Oleksandr Natalenko
Date: Mon Mar 25 2024 - 11:30:19 EST
On pondělí 25. března 2024 10:25:51, CET Ricardo Ribalda wrote:
> Hi Oleksandr
>
> On Mon, 25 Mar 2024 at 10:23, Oleksandr Natalenko
> <oleksandr@xxxxxxxxxxxxxx> wrote:
> >
> > Hello.
> >
> > On pondělí 25. března 2024 8:52:57, CET Ricardo Ribalda wrote:
> > > Hi Oleksandr
> > >
> > > On Sat, 23 Mar 2024 at 13:16, Oleksandr Natalenko
> > > <oleksandr@xxxxxxxxxxxxxx> wrote:
> > >
> > > >
> > > > How do I check whether C920 (046d:082d) is affected too? I have got one, I can run tests on it as long as those will not blow the webcam up.
> > > >
> > > > Thanks.
> > > >
> > >
> > > First of all you need to enable the hwtimestamps in the driver. You
> > > could do that with
> > >
> > > ```
> > > rmmod uvcvideo; modprobe uvcvideo hwtimestamps=1
> > > ```
> >
> > ```
> > $ cat /sys/module/uvcvideo/parameters/hwtimestamps
> > 1
> > ```
> >
> > > Then capture some frames with yavta
> > > ```
> > > yavta -c /dev/video0
> > > ```
> > >
> > > After around 5 seconds all the frames should have a stable fps, the
> > > fps is not stable then your camera is affected with this bug.
> >
> > ```
> > $ ./yavta -c /dev/video1
> > Device /dev/video1 opened.
> > Device `HD Pro Webcam C920' on `usb-0000:0f:00.3-3.4' (driver 'uvcvideo') supports video, capture, without mplanes.
> > Video format: MJPEG (47504a4d) 1920x1080 (stride 0) field none buffer size 4147200
> > …
> > 100 (4) [-] none 100 200717 B 212.919114 213.079004 33.727 fps ts mono/SoE
> > 101 (5) [-] none 101 200889 B 213.003703 213.114996 11.822 fps ts mono/SoE
> > 102 (6) [-] none 102 200926 B 213.035571 213.146999 31.379 fps ts mono/SoE
> > 103 (7) [-] none 103 200839 B 213.067424 213.179003 31.394 fps ts mono/SoE
> > 104 (0) [-] none 104 200692 B 213.293180 213.214991 4.430 fps ts mono/SoE
> > 105 (1) [-] none 105 200937 B 213.322374 213.247001 34.254 fps ts mono/SoE
> > 106 (2) [-] none 106 201013 B 213.352228 213.279005 33.496 fps ts mono/SoE
> > …
> > 168 (0) [-] none 168 200914 B 215.183707 215.347066 33.676 fps ts mono/SoE
> > 169 (1) [-] none 169 201141 B 215.271693 215.379066 11.365 fps ts mono/SoE
> > 170 (2) [-] none 170 201005 B 215.303449 215.415057 31.490 fps ts mono/SoE
> > 171 (3) [-] none 171 201195 B 215.335295 215.447062 31.401 fps ts mono/SoE
> > 172 (4) [-] none 172 200933 B 215.557731 215.479072 4.496 fps ts mono/SoE
> > 173 (5) [-] none 173 200973 B 215.587033 215.515063 34.127 fps ts mono/SoE
> > 174 (6) [-] none 174 200698 B 215.616811 215.547063 33.582 fps ts mono/SoE
> > 175 (7) [-] none 175 201290 B 215.646196 215.579075 34.031 fps ts mono/SoE
> > 176 (0) [-] none 176 200807 B 215.675857 215.615073 33.714 fps ts mono/SoE
> > …
> > ```
> >
> > Does the above mean the webcam is affected?
>
> Looks like it.... could you try applying this patch and run with
>
> rmmod uvcvideo; modprobe uvcvideo hwtimestamps=1 quirks=0x4000
>
> to see if that fixes it for you?
On top of v6.8, I've applied the whole v10, and also applied the following change instead of providing `quirks=`:
```
commit 884a61751d979ee9974c08a71c72e88e73bdd87e
Author: Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx>
Date: Mon Mar 25 10:28:00 2024 +0100
media: uvcvideo: Quirk for invalid dev_sof in Logitech C920
Signed-off-by: Oleksandr Natalenko <oleksandr@xxxxxxxxxxxxxx>
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index 723e6d5680c2e..444d7089885ea 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2573,7 +2573,8 @@ static const struct usb_device_id uvc_ids[] = {
.bInterfaceClass = USB_CLASS_VIDEO,
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
- .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_RESTORE_CTRLS_ON_INIT) },
+ .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_RESTORE_CTRLS_ON_INIT
+ | UVC_QUIRK_INVALID_DEVICE_SOF) },
/* Logitech HD Pro Webcam C922 */
{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE
| USB_DEVICE_ID_MATCH_INT_INFO,
```
Now I see this:
```
154 (2) [-] none 154 192417 B 42.199823 42.207788 27.779 fps ts mono/SoE
155 (3) [-] none 155 192040 B 42.231834 42.239791 31.239 fps ts mono/SoE
156 (4) [-] none 156 192213 B 42.263823 42.271822 31.261 fps ts mono/SoE
157 (5) [-] none 157 191981 B 42.299824 42.303827 27.777 fps ts mono/SoE
158 (6) [-] none 158 191953 B 42.331835 42.339811 31.239 fps ts mono/SoE
159 (7) [-] none 159 191904 B 42.363824 42.371813 31.261 fps ts mono/SoE
160 (0) [-] none 160 192210 B 42.399834 42.407801 27.770 fps ts mono/SoE
161 (1) [-] none 161 192235 B 42.431824 42.439806 31.260 fps ts mono/SoE
```
without dips in FPS.
What do you think?
>
> Thanks!
>
> >
> > Thank you.
> >
> > >
> > >
> > > Thanks!
> > >
> >
> >
> > --
> > Oleksandr Natalenko (post-factum)
>
>
>
>
--
Oleksandr Natalenko (post-factum)Attachment:
signature.asc
Description: This is a digitally signed message part.