2024-01-08 14:04:47

by Ricardo Ribalda

[permalink] [raw]
Subject: [PATCH v2] media: uvcvideo: Fix power line control for Shine-Optics Camera

The device does not implement the power line frequency control
correctly. It is a UVC 1.5 device, but implements the control as a UVC
1.1 device.

Add the corresponding control mapping override.

Bus 003 Device 002: ID 3277:009e Shine-Optics Integrated Camera
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.01
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x3277
idProduct 0x009e
bcdDevice 0.01
iManufacturer 3 Shine-Optics
iProduct 1 Integrated Camera
iSerial 2 0001

Signed-off-by: Ricardo Ribalda <[email protected]>
---
Changes in v2:
- Fix camera name in subject
- Link to v1: https://lore.kernel.org/r/[email protected]
---
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..ceca1addd7e0 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -3012,6 +3012,15 @@ static const struct usb_device_id uvc_ids[] = {
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = (kernel_ulong_t)&uvc_ctrl_power_line_limited },
+ /* Shine-Optics Integrated Camera */
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x3277,
+ .idProduct = 0x009e,
+ .bInterfaceClass = USB_CLASS_VIDEO,
+ .bInterfaceSubClass = 1,
+ .bInterfaceProtocol = UVC_PC_PROTOCOL_15,
+ .driver_info = (kernel_ulong_t)&uvc_ctrl_power_line_uvc11 },
/* Acer EasyCamera */
{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE
| USB_DEVICE_ID_MATCH_INT_INFO,

---
base-commit: 0dd3ee31125508cd67f7e7172247f05b7fd1753a
change-id: 20240108-shine-06c600d17a2a

Best regards,
--
Ricardo Ribalda <[email protected]>



2024-01-09 12:53:25

by Sergey Senozhatsky

[permalink] [raw]
Subject: Re: [PATCH v2] media: uvcvideo: Fix power line control for Shine-Optics Camera

On (24/01/08 14:04), Ricardo Ribalda wrote:
> The device does not implement the power line frequency control
> correctly. It is a UVC 1.5 device, but implements the control as a UVC
> 1.1 device.
>
> Add the corresponding control mapping override.
>
> Bus 003 Device 002: ID 3277:009e Shine-Optics Integrated Camera
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 2.01
> bDeviceClass 239 Miscellaneous Device
> bDeviceSubClass 2
> bDeviceProtocol 1 Interface Association
> bMaxPacketSize0 64
> idVendor 0x3277
> idProduct 0x009e
> bcdDevice 0.01
> iManufacturer 3 Shine-Optics
> iProduct 1 Integrated Camera
> iSerial 2 0001
>
> Signed-off-by: Ricardo Ribalda <[email protected]>

Reviewed-by: Sergey Senozhatsky <[email protected]>




[..]
> ---
> base-commit: 0dd3ee31125508cd67f7e7172247f05b7fd1753a
> change-id: 20240108-shine-06c600d17a2a
>
> Best regards,
> --
> Ricardo Ribalda <[email protected]>

A side note: not sure what these lines are for.

2024-03-22 12:08:01

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH v2] media: uvcvideo: Fix power line control for Shine-Optics Camera

Hi Ricardo,

Thank you for the patch.

On Mon, Jan 08, 2024 at 02:04:16PM +0000, Ricardo Ribalda wrote:
> The device does not implement the power line frequency control
> correctly. It is a UVC 1.5 device, but implements the control as a UVC
> 1.1 device.
>
> Add the corresponding control mapping override.
>
> Bus 003 Device 002: ID 3277:009e Shine-Optics Integrated Camera
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 2.01
> bDeviceClass 239 Miscellaneous Device
> bDeviceSubClass 2
> bDeviceProtocol 1 Interface Association
> bMaxPacketSize0 64
> idVendor 0x3277
> idProduct 0x009e
> bcdDevice 0.01
> iManufacturer 3 Shine-Optics
> iProduct 1 Integrated Camera
> iSerial 2 0001
>
> Signed-off-by: Ricardo Ribalda <[email protected]>

Reviewed-by: Laurent Pinchart <[email protected]>

> ---
> Changes in v2:
> - Fix camera name in subject
> - Link to v1: https://lore.kernel.org/r/[email protected]
> ---
> 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..ceca1addd7e0 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -3012,6 +3012,15 @@ static const struct usb_device_id uvc_ids[] = {
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> .driver_info = (kernel_ulong_t)&uvc_ctrl_power_line_limited },
> + /* Shine-Optics Integrated Camera */
> + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + .idVendor = 0x3277,
> + .idProduct = 0x009e,
> + .bInterfaceClass = USB_CLASS_VIDEO,
> + .bInterfaceSubClass = 1,
> + .bInterfaceProtocol = UVC_PC_PROTOCOL_15,
> + .driver_info = (kernel_ulong_t)&uvc_ctrl_power_line_uvc11 },
> /* Acer EasyCamera */
> { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
>
> ---
> base-commit: 0dd3ee31125508cd67f7e7172247f05b7fd1753a
> change-id: 20240108-shine-06c600d17a2a
>
> Best regards,
> --
> Ricardo Ribalda <[email protected]>
>

--
Regards,

Laurent Pinchart