2023-06-06 10:59:56

by Thorsten Leemhuis

[permalink] [raw]
Subject: Re: Webcam LED control regression

CCing a few people and lists that should be aware of this and might be
able to help.

On 05.06.23 18:39, Poncho wrote:
> With kernel 6.3, the LED of my C922 Pro Stream Webcam is no longer
> controllable.
>
> With kernel 6.1 v4l2-ctl --all returns:
>
>> led1_mode 0x0a046d05 (menu)   : min=0 max=3 default=0 value=0 (Off)
>>     0: Off
>>     1: On
>>     2: Blink
>>     3: Auto
>
>
>
> but with kernel 6.3 I get:
>
>> led1_mode 0x0a046d05 (menu)   : min=4 max=4 default=0 value=0
>>     4:

Thanks for the report.

FWIW, maybe one of those people that I CCed has an idea what's wrong. If
none of them brings one to the table withing the next two or three days,
you likely have to perform a bisection to find the change that broke
thing for you.

For the rest of this mail:

[TLDR: I'm adding this report to the list of tracked Linux kernel
regressions; the text you find below is based on a few templates
paragraphs you might have encountered already in similar form.
See link in footer if these mails annoy you.]

> Full output bellow:
>
>> Driver Info:
>>     Driver name      : uvcvideo
>>     Card type        : C922 Pro Stream Webcam
>>     Bus info         : usb-0000:00:14.0-9
>>     Driver version   : 6.3.5
>>     Capabilities     : 0x84a00001
>>         Video Capture
>>         Metadata Capture
>>         Streaming
>>         Extended Pix Format
>>         Device Capabilities
>>     Device Caps      : 0x04200001
>>         Video Capture
>>         Streaming
>>         Extended Pix Format
>> Media Driver Info:
>>     Driver name      : uvcvideo
>>     Model            : C922 Pro Stream Webcam
>>     Serial           : 6E8DF1BF
>>     Bus info         : usb-0000:00:14.0-9
>>     Media version    : 6.3.5
>>     Hardware revision: 0x00000016 (22)
>>     Driver version   : 6.3.5
>> Interface Info:
>>     ID               : 0x03000002
>>     Type             : V4L Video
>> Entity Info:
>>     ID               : 0x00000001 (1)
>>     Name             : C922 Pro Stream Webcam
>>     Function         : V4L2 I/O
>>     Flags            : default
>>     Pad 0x01000007   : 0: Sink
>>       Link 0x0200001f: from remote pad 0x100000a of entity 'Processing
>> 3' (Video Pixel Formatter): Data, Enabled, Immutable
>> Priority: 2
>> Video input : 0 (Camera 1: ok)
>> Format Video Capture:
>>     Width/Height      : 160/90
>>     Pixel Format      : 'YUYV' (YUYV 4:2:2)
>>     Field             : None
>>     Bytes per Line    : 320
>>     Size Image        : 28800
>>     Colorspace        : sRGB
>>     Transfer Function : Rec. 709
>>     YCbCr/HSV Encoding: ITU-R 601
>>     Quantization      : Default (maps to Limited Range)
>>     Flags             : Crop Capability Video Capture:
>>     Bounds      : Left 0, Top 0, Width 160, Height 90
>>     Default     : Left 0, Top 0, Width 160, Height 90
>>     Pixel Aspect: 1/1
>> Selection Video Capture: crop_default, Left 0, Top 0, Width 160,
>> Height 90, Flags: Selection Video Capture: crop_bounds, Left 0, Top 0,
>> Width 160, Height 90, Flags: Streaming Parameters Video Capture:
>>     Capabilities     : timeperframe
>>     Frames per second: 30.000 (30/1)
>>     Read buffers     : 0
>>
>> User Controls
>>
>>                      brightness 0x00980900 (int)    : min=0 max=255
>> step=1 default=128 value=128
>>                        contrast 0x00980901 (int)    : min=0 max=255
>> step=1 default=128 value=128
>>                      saturation 0x00980902 (int)    : min=0 max=255
>> step=1 default=128 value=128
>>         white_balance_automatic 0x0098090c (bool)   : default=1 value=1
>>                            gain 0x00980913 (int)    : min=0 max=255
>> step=1 default=0 value=0
>>            power_line_frequency 0x00980918 (menu)   : min=0 max=2
>> default=2 value=2 (60 Hz)
>>                 0: Disabled
>>                 1: 50 Hz
>>                 2: 60 Hz
>>       white_balance_temperature 0x0098091a (int)    : min=2000
>> max=6500 step=1 default=4000 value=4000 flags=inactive
>>                       sharpness 0x0098091b (int)    : min=0 max=255
>> step=1 default=128 value=128
>>          backlight_compensation 0x0098091c (int)    : min=0 max=1
>> step=1 default=0 value=0
>>
>> Camera Controls
>>
>>                   auto_exposure 0x009a0901 (menu)   : min=0 max=3
>> default=3 value=3 (Aperture Priority Mode)
>>                 1: Manual Mode
>>                 3: Aperture Priority Mode
>>          exposure_time_absolute 0x009a0902 (int)    : min=3 max=2047
>> step=1 default=250 value=250 flags=inactive
>>      exposure_dynamic_framerate 0x009a0903 (bool)   : default=0 value=1
>>                    pan_absolute 0x009a0908 (int)    : min=-36000
>> max=36000 step=3600 default=0 value=0
>>                   tilt_absolute 0x009a0909 (int)    : min=-36000
>> max=36000 step=3600 default=0 value=0
>>                  focus_absolute 0x009a090a (int)    : min=0 max=250
>> step=5 default=0 value=0 flags=inactive
>>      focus_automatic_continuous 0x009a090c (bool)   : default=1 value=1
>>                   zoom_absolute 0x009a090d (int)    : min=100 max=500
>> step=1 default=100 value=100
>>                       led1_mode 0x0a046d05 (menu)   : min=4 max=4
>> default=0 value=0
>>                 4:                  led1_frequency 0x0a046d06 (int)   
>> : min=0 max=255 step=1 default=0 value=255

To be sure the issue doesn't fall through the cracks unnoticed, I'm
adding it to regzbot, the Linux kernel regression tracking bot:

#regzbot ^introduced v6.1..v6.3
#regzbot title media: uvcvideo: Webcam LED control regression
#regzbot ignore-activity

This isn't a regression? This issue or a fix for it are already
discussed somewhere else? It was fixed already? You want to clarify when
the regression started to happen? Or point out I got the title or
something else totally wrong? Then just reply and tell me -- ideally
while also telling regzbot about it, as explained by the page listed in
the footer of this mail.

Developers: When fixing the issue, remember to add 'Link:' tags pointing
to the report (the parent of this mail). See page linked in footer for
details.

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
That page also explains what to do if mails like this annoy you.


2023-06-06 17:29:01

by Laurent Pinchart

[permalink] [raw]
Subject: Re: Webcam LED control regression

Hello,

CC'ing Ricardo.

On Tue, Jun 06, 2023 at 12:40:25PM +0200, Linux regression tracking (Thorsten Leemhuis) wrote:
> CCing a few people and lists that should be aware of this and might be
> able to help.
>
> On 05.06.23 18:39, Poncho wrote:
> > With kernel 6.3, the LED of my C922 Pro Stream Webcam is no longer
> > controllable.
> >
> > With kernel 6.1 v4l2-ctl --all returns:
> >
> >> led1_mode 0x0a046d05 (menu)   : min=0 max=3 default=0 value=0 (Off)
> >>     0: Off
> >>     1: On
> >>     2: Blink
> >>     3: Auto
> >
> >
> >
> > but with kernel 6.3 I get:
> >
> >> led1_mode 0x0a046d05 (menu)   : min=4 max=4 default=0 value=0
> >>     4:
>
> Thanks for the report.
>
> FWIW, maybe one of those people that I CCed has an idea what's wrong. If
> none of them brings one to the table withing the next two or three days,
> you likely have to perform a bisection to find the change that broke
> thing for you.

I suspect commit 716c330433e3 ("media: uvcvideo: Use standard names for
menus") to be the culprit. I'll post a (untested) candidate fix in reply
to this e-mail.

> For the rest of this mail:
>
> [TLDR: I'm adding this report to the list of tracked Linux kernel
> regressions; the text you find below is based on a few templates
> paragraphs you might have encountered already in similar form.
> See link in footer if these mails annoy you.]
>
> > Full output bellow:
> >
> >> Driver Info:
> >>     Driver name      : uvcvideo
> >>     Card type        : C922 Pro Stream Webcam
> >>     Bus info         : usb-0000:00:14.0-9
> >>     Driver version   : 6.3.5
> >>     Capabilities     : 0x84a00001
> >>         Video Capture
> >>         Metadata Capture
> >>         Streaming
> >>         Extended Pix Format
> >>         Device Capabilities
> >>     Device Caps      : 0x04200001
> >>         Video Capture
> >>         Streaming
> >>         Extended Pix Format
> >> Media Driver Info:
> >>     Driver name      : uvcvideo
> >>     Model            : C922 Pro Stream Webcam
> >>     Serial           : 6E8DF1BF
> >>     Bus info         : usb-0000:00:14.0-9
> >>     Media version    : 6.3.5
> >>     Hardware revision: 0x00000016 (22)
> >>     Driver version   : 6.3.5
> >> Interface Info:
> >>     ID               : 0x03000002
> >>     Type             : V4L Video
> >> Entity Info:
> >>     ID               : 0x00000001 (1)
> >>     Name             : C922 Pro Stream Webcam
> >>     Function         : V4L2 I/O
> >>     Flags            : default
> >>     Pad 0x01000007   : 0: Sink
> >>       Link 0x0200001f: from remote pad 0x100000a of entity 'Processing 3' (Video Pixel Formatter): Data, Enabled, Immutable
> >> Priority: 2
> >> Video input : 0 (Camera 1: ok)
> >> Format Video Capture:
> >>     Width/Height      : 160/90
> >>     Pixel Format      : 'YUYV' (YUYV 4:2:2)
> >>     Field             : None
> >>     Bytes per Line    : 320
> >>     Size Image        : 28800
> >>     Colorspace        : sRGB
> >>     Transfer Function : Rec. 709
> >>     YCbCr/HSV Encoding: ITU-R 601
> >>     Quantization      : Default (maps to Limited Range)
> >>     Flags             : Crop Capability Video Capture:
> >>     Bounds      : Left 0, Top 0, Width 160, Height 90
> >>     Default     : Left 0, Top 0, Width 160, Height 90
> >>     Pixel Aspect: 1/1
> >> Selection Video Capture: crop_default, Left 0, Top 0, Width 160,
> >> Height 90, Flags: Selection Video Capture: crop_bounds, Left 0, Top 0,
> >> Width 160, Height 90, Flags: Streaming Parameters Video Capture:
> >>     Capabilities     : timeperframe
> >>     Frames per second: 30.000 (30/1)
> >>     Read buffers     : 0
> >>
> >> User Controls
> >>
> >>                      brightness 0x00980900 (int)    : min=0 max=255 step=1 default=128 value=128
> >>                        contrast 0x00980901 (int)    : min=0 max=255 step=1 default=128 value=128
> >>                      saturation 0x00980902 (int)    : min=0 max=255 step=1 default=128 value=128
> >>         white_balance_automatic 0x0098090c (bool)   : default=1 value=1
> >>                            gain 0x00980913 (int)    : min=0 max=255 step=1 default=0 value=0
> >>            power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=2 value=2 (60 Hz)
> >>                 0: Disabled
> >>                 1: 50 Hz
> >>                 2: 60 Hz
> >>       white_balance_temperature 0x0098091a (int)    : min=2000 max=6500 step=1 default=4000 value=4000 flags=inactive
> >>                       sharpness 0x0098091b (int)    : min=0 max=255 step=1 default=128 value=128
> >>          backlight_compensation 0x0098091c (int)    : min=0 max=1 step=1 default=0 value=0
> >>
> >> Camera Controls
> >>
> >>                   auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=3 (Aperture Priority Mode)
> >>                 1: Manual Mode
> >>                 3: Aperture Priority Mode
> >>          exposure_time_absolute 0x009a0902 (int)    : min=3 max=2047 step=1 default=250 value=250 flags=inactive
> >>      exposure_dynamic_framerate 0x009a0903 (bool)   : default=0 value=1
> >>                    pan_absolute 0x009a0908 (int)    : min=-36000 max=36000 step=3600 default=0 value=0
> >>                   tilt_absolute 0x009a0909 (int)    : min=-36000 max=36000 step=3600 default=0 value=0
> >>                  focus_absolute 0x009a090a (int)    : min=0 max=250 step=5 default=0 value=0 flags=inactive
> >>      focus_automatic_continuous 0x009a090c (bool)   : default=1 value=1
> >>                   zoom_absolute 0x009a090d (int)    : min=100 max=500 step=1 default=100 value=100
> >>                       led1_mode 0x0a046d05 (menu)   : min=4 max=4 default=0 value=0
> >>                 4:                  led1_frequency 0x0a046d06 (int)   
> >> : min=0 max=255 step=1 default=0 value=255
>
> To be sure the issue doesn't fall through the cracks unnoticed, I'm
> adding it to regzbot, the Linux kernel regression tracking bot:
>
> #regzbot ^introduced v6.1..v6.3
> #regzbot title media: uvcvideo: Webcam LED control regression
> #regzbot ignore-activity
>
> This isn't a regression? This issue or a fix for it are already
> discussed somewhere else? It was fixed already? You want to clarify when
> the regression started to happen? Or point out I got the title or
> something else totally wrong? Then just reply and tell me -- ideally
> while also telling regzbot about it, as explained by the page listed in
> the footer of this mail.
>
> Developers: When fixing the issue, remember to add 'Link:' tags pointing
> to the report (the parent of this mail). See page linked in footer for
> details.
>
> Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
> --
> Everything you wanna know about Linux kernel regression tracking:
> https://linux-regtracking.leemhuis.info/about/#tldr
> That page also explains what to do if mails like this annoy you.

--
Regards,

Laurent Pinchart