2024-03-25 16:26:32

by Oleksandr Natalenko

[permalink] [raw]
Subject: [PATCH] media/uvcvideo: add quirk for invalid dev_sof in Logitech C920

Similarly to Logitech C922, C920 seems to also suffer from a firmware
bug that breaks hardware timestamping.

Add a quirk for this camera model too.

Before applying the quirk:

```
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

```

After applying the quirk:

```
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
```

Link: https://lore.kernel.org/lkml/[email protected]/
Reviewed-by: Ricardo Ribalda <[email protected]>
Signed-off-by: Oleksandr Natalenko <[email protected]>
---
drivers/media/usb/uvc/uvc_driver.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

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,
--
2.44.0



2024-04-01 17:22:58

by Oleksandr Natalenko

[permalink] [raw]
Subject: Re: [PATCH] media/uvcvideo: add quirk for invalid dev_sof in Logitech C920

On pondělí 25. března 2024 15:26:11, CEST Oleksandr Natalenko wrote:
> Similarly to Logitech C922, C920 seems to also suffer from a firmware
> bug that breaks hardware timestamping.
>
> Add a quirk for this camera model too.
>
> Before applying the quirk:
>
> ```
> 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
> …
> ```
>
> After applying the quirk:
>
> ```
> 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
> ```
>
> Link: https://lore.kernel.org/lkml/[email protected]/
> Reviewed-by: Ricardo Ribalda <[email protected]>
> Signed-off-by: Oleksandr Natalenko <[email protected]>
> ---
> drivers/media/usb/uvc/uvc_driver.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> 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,
>

Gentle ping on this one.

Also, should I have added:

Fixes: 5d0fd3c806b9 ("[media] uvcvideo: Disable hardware timestamps by default")

?

(it's not that this change re-enables HW timestamping, but 5d0fd3c806b9 explicitly mentions C920 as affected)

--
Oleksandr Natalenko (post-factum)


Attachments:
signature.asc (849.00 B)
This is a digitally signed message part.

2024-04-04 01:11:46

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] media/uvcvideo: add quirk for invalid dev_sof in Logitech C920

Hi Oleksandr,

On Mon, Apr 01, 2024 at 06:45:16PM +0200, Oleksandr Natalenko wrote:
> On pondělí 25. března 2024 15:26:11, CEST Oleksandr Natalenko wrote:
> > Similarly to Logitech C922, C920 seems to also suffer from a firmware
> > bug that breaks hardware timestamping.
> >
> > Add a quirk for this camera model too.
> >
> > Before applying the quirk:
> >
> > ```
> > 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
> > …
> > ```
> >
> > After applying the quirk:
> >
> > ```
> > 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
> > ```
> >
> > Link: https://lore.kernel.org/lkml/[email protected]/
> > Reviewed-by: Ricardo Ribalda <[email protected]>
> > Signed-off-by: Oleksandr Natalenko <[email protected]>
> > ---
> > drivers/media/usb/uvc/uvc_driver.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > 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,
> >
>
> Gentle ping on this one.

Ricardo, could you include this in the next version of your hw timestamp
series ?

> Also, should I have added:
>
> Fixes: 5d0fd3c806b9 ("[media] uvcvideo: Disable hardware timestamps by default")
>
> ?

I don't think that's needed, no.

> (it's not that this change re-enables HW timestamping, but
> 5d0fd3c806b9 explicitly mentions C920 as affected)

--
Regards,

Laurent Pinchart

2024-04-04 06:35:43

by Ricardo Ribalda

[permalink] [raw]
Subject: Re: [PATCH] media/uvcvideo: add quirk for invalid dev_sof in Logitech C920

Hi Laurent

On Thu, 4 Apr 2024 at 03:11, Laurent Pinchart
<[email protected]> wrote:
>
> Hi Oleksandr,
>
> On Mon, Apr 01, 2024 at 06:45:16PM +0200, Oleksandr Natalenko wrote:
> > On pondělí 25. března 2024 15:26:11, CEST Oleksandr Natalenko wrote:
> > > Similarly to Logitech C922, C920 seems to also suffer from a firmware
> > > bug that breaks hardware timestamping.
> > >
> > > Add a quirk for this camera model too.
> > >
> > > Before applying the quirk:
> > >
> > > ```
> > > 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
> > > …
> > > ```
> > >
> > > After applying the quirk:
> > >
> > > ```
> > > 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
> > > ```
> > >
> > > Link: https://lore.kernel.org/lkml/[email protected]/
> > > Reviewed-by: Ricardo Ribalda <[email protected]>
> > > Signed-off-by: Oleksandr Natalenko <[email protected]>
> > > ---
> > > drivers/media/usb/uvc/uvc_driver.c | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > 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,
> > >
> >
> > Gentle ping on this one.
>
> Ricardo, could you include this in the next version of your hw timestamp
> series ?

There are no outstanding comments on the series
https://patchwork.linuxtv.org/project/linux-media/list/?series=12485

Do you need me to send a v11 with this patch? or you can take that
directly from your tree?

Thanks!

>
> > Also, should I have added:
> >
> > Fixes: 5d0fd3c806b9 ("[media] uvcvideo: Disable hardware timestamps by default")
> >
> > ?
>
> I don't think that's needed, no.
>
> > (it's not that this change re-enables HW timestamping, but
> > 5d0fd3c806b9 explicitly mentions C920 as affected)
>
> --
> Regards,
>
> Laurent Pinchart



--
Ricardo Ribalda