Message ID | 20230105-uvc-gcc5-v1-0-8550de720e82@chromium.org |
---|---|
Headers | show |
Series | media: uvcvideo: Hot fixes for top of next/uvc | expand |
Hi Laurent On Thu, 5 Jan 2023 at 13:33, Ricardo Ribalda <ribalda@chromium.org> wrote: > > The device does not implement the power line control correctly. It is > a UVC 1.5 device, but implements the PLC control as a UVC 1.1 device. > > Add the corresponding control mapping override. > > Bus 003 Device 002: ID 30c9:0093 Lenovo Integrated Camera > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.01 > bDeviceClass 239 Miscellaneous Device > bDeviceSubClass 2 > bDeviceProtocol 1 Interface Association > bMaxPacketSize0 64 > idVendor 0x30c9 > idProduct 0x0093 > bcdDevice 0.07 > iManufacturer 3 Lenovo > iProduct 1 Integrated Camera > iSerial 2 8SSC21J75356V1SR2830069 > bNumConfigurations 1 > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> I deleted the wrong singed-off-by, This should say Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> If I need to send a new version it will be fixed accordingly. Thanks! > --- > drivers/media/usb/uvc/uvc_ctrl.c | 2 +- > drivers/media/usb/uvc/uvc_driver.c | 16 ++++++++++++++++ > drivers/media/usb/uvc/uvcvideo.h | 1 + > 3 files changed, 18 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c > index f559a1ac6e3c..28ef9b2024a1 100644 > --- a/drivers/media/usb/uvc/uvc_ctrl.c > +++ b/drivers/media/usb/uvc/uvc_ctrl.c > @@ -736,7 +736,7 @@ const struct uvc_control_mapping uvc_ctrl_power_line_mapping_limited = { > V4L2_CID_POWER_LINE_FREQUENCY_50HZ), > }; > > -static const struct uvc_control_mapping uvc_ctrl_power_line_mapping_uvc11 = { > +const struct uvc_control_mapping uvc_ctrl_power_line_mapping_uvc11 = { > .id = V4L2_CID_POWER_LINE_FREQUENCY, > .entity = UVC_GUID_UVC_PROCESSING, > .selector = UVC_PU_POWER_LINE_FREQUENCY_CONTROL, > diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c > index 37d2b08bc8b2..57c948d47bbf 100644 > --- a/drivers/media/usb/uvc/uvc_driver.c > +++ b/drivers/media/usb/uvc/uvc_driver.c > @@ -2385,6 +2385,13 @@ static const struct uvc_device_info uvc_ctrl_power_line_limited = { > }, > }; > > +static const struct uvc_device_info uvc_ctrl_power_line_uvc11 = { > + .mappings = (const struct uvc_control_mapping *[]) { > + &uvc_ctrl_power_line_mapping_uvc11, > + NULL, /* Sentinel */ > + }, > +}; > + > static const struct uvc_device_info uvc_quirk_probe_minmax = { > .quirks = UVC_QUIRK_PROBE_MINMAX, > }; > @@ -2964,6 +2971,15 @@ static const struct usb_device_id uvc_ids[] = { > .bInterfaceSubClass = 1, > .bInterfaceProtocol = 0, > .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_FORCE_BPP) }, > + /* Lenovo Integrated Camera */ > + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE > + | USB_DEVICE_ID_MATCH_INT_INFO, > + .idVendor = 0x30c9, > + .idProduct = 0x0093, > + .bInterfaceClass = USB_CLASS_VIDEO, > + .bInterfaceSubClass = 1, > + .bInterfaceProtocol = UVC_PC_PROTOCOL_15, > + .driver_info = (kernel_ulong_t)&uvc_ctrl_power_line_uvc11 }, > /* Sonix Technology USB 2.0 Camera */ > { .match_flags = USB_DEVICE_ID_MATCH_DEVICE > | USB_DEVICE_ID_MATCH_INT_INFO, > diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h > index 1b2d9f327583..31c33eb0edf5 100644 > --- a/drivers/media/usb/uvc/uvcvideo.h > +++ b/drivers/media/usb/uvc/uvcvideo.h > @@ -748,6 +748,7 @@ void uvc_status_stop(struct uvc_device *dev); > > /* Controls */ > extern const struct uvc_control_mapping uvc_ctrl_power_line_mapping_limited; > +extern const struct uvc_control_mapping uvc_ctrl_power_line_mapping_uvc11; > extern const struct v4l2_subscribed_event_ops uvc_ctrl_sub_ev_ops; > > int uvc_query_v4l2_ctrl(struct uvc_video_chain *chain, > > -- > 2.39.0.314.g84b9a713c41-goog-b4-0.11.0-dev-696ae
Hi Laurent Here are some fixes for your next branch. We have not sent yet the patches to Mauro so I guess it is better to drop the broken patches and their reverts from this set. If it is too late the revert patches have the proper Fixes: tag Thanks! Cc: Sergey Senozhatsky <senozhatsky@chromium.org> Cc: Yunke Cao <yunkec@chromium.org> To: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> --- Ricardo Ribalda (6): Revert "media: uvcvideo: Fix power line control for Lenovo Integrated Camera" Revert "media: uvcvideo: Implement mask for V4L2_CTRL_TYPE_MENU" media: uvcvideo: Implement mask for V4L2_CTRL_TYPE_MENU media: uvcvideo: Refactor uvc_ctrl_mappings_uvcXX media: uvcvideo: Refactor power_line_frequency_controls_limited media: uvcvideo: Fix power line control for Lenovo Integrated Camera drivers/media/usb/uvc/uvc_ctrl.c | 75 ++++++++++++++++++++++---------------- drivers/media/usb/uvc/uvc_driver.c | 25 ++----------- drivers/media/usb/uvc/uvc_v4l2.c | 2 +- drivers/media/usb/uvc/uvcvideo.h | 1 + 4 files changed, 49 insertions(+), 54 deletions(-) --- base-commit: fb1316b0ff3fc3cd98637040ee17ab7be753aac7 change-id: 20230105-uvc-gcc5-7277141399d5 Best regards,