Re: [PATCH v2] media: uvcvideo: Fix power line control for a Chicony camera

From: Laurent Pinchart
Date: Wed Sep 06 2023 - 09:44:28 EST


Hi Ricardo,

On Tue, Sep 05, 2023 at 03:29:52PM +0000, Ricardo Ribalda wrote:
> The device does not implement the control properly.
>
> Fixes v4l2-compliance error:
>
> info: checking control 'Power Line Frequency' (0x00980918)
> fail: v4l2-test-controls.cpp(552): could not set valid menu item 3
>
> Signed-off-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

This still applies :-)

I've taken the patch in my tree and will push it for v6.7.

> ---
> This camera, like other Chicony devices, do not implement properly the
> Power Line Frequency control.
>
> This time, I do not have direct access to the device, just to the
> report, but since other devices from the same family are showing the
> same error, it is safe to assume that the same fix will work here.
> ---
> Changes in v2:
> - Fix IntefaceProtocol, the camera is uvc1.5
> - I managed to write 0 to the control, so the proper quirk is uvc11 not
> limited
> - Changes by Laurent:
> - Rename device
> - s/v4l/v4l2
> - Link to v1: https://lore.kernel.org/r/20230817-chicony-v1-1-76bde4d6ff6b@xxxxxxxxxxxx
> ---
> 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 08fcd2ffa727..4b5ea3501753 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -2592,6 +2592,15 @@ static const struct usb_device_id uvc_ids[] = {
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> .driver_info = (kernel_ulong_t)&uvc_ctrl_power_line_limited },
> + /* Chicony Electronics Co., Ltd Integrated Camera */
> + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + .idVendor = 0x04f2,
> + .idProduct = 0xb67c,
> + .bInterfaceClass = USB_CLASS_VIDEO,
> + .bInterfaceSubClass = 1,
> + .bInterfaceProtocol = UVC_PC_PROTOCOL_15,
> + .driver_info = (kernel_ulong_t)&uvc_ctrl_power_line_uvc11 },
> /* Chicony EasyCamera */
> { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
>
> ---
> base-commit: 4853c74bd7ab7fdb83f319bd9ace8a08c031e9b6
> change-id: 20230817-chicony-9c35f2046c6f

--
Regards,

Laurent Pinchart