Hello,
On Tue, Apr 02, 2019 at 01:13:16PM +0300, Sakari Ailus wrote:
> On Sun, Mar 17, 2019 at 01:01:25PM -0400, [email protected] wrote:
> > From: Sergey Dorodnicov <[email protected]>
> >
> > Section 4.2.2.3.6 of the USB Device Class Definition for Video Devices,
> > specifies "Auto" as a valid value for the power line frequency control.
> > This makes uvcvideo module consistent with control definition inside
> > /drivers/media/v4l2-core/v4l2-ctrls.c:
> > camera_power_line_frequency[] = {
> > "Disabled",
> > "50 Hz",
> > "60 Hz",
> > "Auto",
> >
> > Signed-off-by: Sergey Dorodnicov <[email protected]>
> > Signed-off-by: Evgeni Raikhel <[email protected]>
> > ---
> > drivers/media/usb/uvc/uvc_ctrl.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/media/usb/uvc/uvc_ctrl.c
> > b/drivers/media/usb/uvc/uvc_ctrl.c
> > index 14cff91..a85910a 100644
> > --- a/drivers/media/usb/uvc/uvc_ctrl.c
> > +++ b/drivers/media/usb/uvc/uvc_ctrl.c
> > @@ -358,6 +358,7 @@ static const struct uvc_menu_info
> > power_line_frequency_controls[] = {
> > { 0, "Disabled" },
> > { 1, "50 Hz" },
> > { 2, "60 Hz" },
> > + { 3, "Auto" },
>
> The auto option appears to have been added by UVC 1.5, so the menu entry
> may only be available for such devices.
That's correct. The power_line_frequency_controls array can always
contain the auto entry, but its availability should be conditioned on
the UVC protocol version. The PU_POWER_LINE_FREQUENCY_CONTROL control
unfortunately doesn't support GET_MAX, so we can't get the information
in a generic way by querying the control.
One option to keep the code generic would be to add protocol version
information to the uvc_control_mapping structure, to condition control
information on the protocol version. It could take the form of a [min,
max] version range for instance. Entries that don't set the min and max
versions would be applicable to all versions.
>
> > };
> >
> > static const struct uvc_menu_info exposure_auto_controls[] = {
--
Regards,
Laurent Pinchart