Re: [PATCH v3] media: uvcvideo: Enable Intel RealSense metadata for devices.

From: Laurent Pinchart
Date: Thu Apr 20 2023 - 06:34:28 EST


Hi Dmitry,

Thank you for the patch.

On Thu, Apr 20, 2023 at 12:06:55PM +0300, Dmitry Perchanov wrote:
> Intel RealSense UVC Depth cameras produce metadata in a
> vendor-specific format that is already supported by the uvcvideo driver.
> Enable handling of this metadata for 7 additional RealSense devices.
>
> Co-developed-by: Yu MENG <yu1.meng@xxxxxxxxx>
> Co-developed-by: Evgeni Raikhel <evgeni.raikhel@xxxxxxxxx>
> Signed-off-by: Dmitry Perchanov <dmitry.perchanov@xxxxxxxxx>

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

I will wait for the answer to Sakari's question before merging this
though.

> ---
> drivers/media/usb/uvc/uvc_driver.c | 63 ++++++++++++++++++++++++++++++
> 1 file changed, 63 insertions(+)
>
> diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
> index 7aefa76a42b3..f69573e2de96 100644
> --- a/drivers/media/usb/uvc/uvc_driver.c
> +++ b/drivers/media/usb/uvc/uvc_driver.c
> @@ -3014,6 +3014,33 @@ static const struct usb_device_id uvc_ids[] = {
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> .driver_info = (kernel_ulong_t)&uvc_ctrl_power_line_limited },
> + /* Intel D410/ASR depth camera */
> + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + .idVendor = 0x8086,
> + .idProduct = 0x0ad2,
> + .bInterfaceClass = USB_CLASS_VIDEO,
> + .bInterfaceSubClass = 1,
> + .bInterfaceProtocol = 0,
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> + /* Intel D415/ASRC depth camera */
> + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + .idVendor = 0x8086,
> + .idProduct = 0x0ad3,
> + .bInterfaceClass = USB_CLASS_VIDEO,
> + .bInterfaceSubClass = 1,
> + .bInterfaceProtocol = 0,
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> + /* Intel D430/AWG depth camera */
> + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + .idVendor = 0x8086,
> + .idProduct = 0x0ad4,
> + .bInterfaceClass = USB_CLASS_VIDEO,
> + .bInterfaceSubClass = 1,
> + .bInterfaceProtocol = 0,
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> /* Intel RealSense D4M */
> { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> | USB_DEVICE_ID_MATCH_INT_INFO,
> @@ -3023,6 +3050,42 @@ static const struct usb_device_id uvc_ids[] = {
> .bInterfaceSubClass = 1,
> .bInterfaceProtocol = 0,
> .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> + /* Intel D435/AWGC depth camera */
> + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + .idVendor = 0x8086,
> + .idProduct = 0x0b07,
> + .bInterfaceClass = USB_CLASS_VIDEO,
> + .bInterfaceSubClass = 1,
> + .bInterfaceProtocol = 0,
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> + /* Intel D435i depth camera */
> + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + .idVendor = 0x8086,
> + .idProduct = 0x0b3a,
> + .bInterfaceClass = USB_CLASS_VIDEO,
> + .bInterfaceSubClass = 1,
> + .bInterfaceProtocol = 0,
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> + /* Intel D405 Depth Camera */
> + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + .idVendor = 0x8086,
> + .idProduct = 0x0b5b,
> + .bInterfaceClass = USB_CLASS_VIDEO,
> + .bInterfaceSubClass = 1,
> + .bInterfaceProtocol = 0,
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> + /* Intel D455 Depth Camera */
> + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
> + | USB_DEVICE_ID_MATCH_INT_INFO,
> + .idVendor = 0x8086,
> + .idProduct = 0x0b5c,
> + .bInterfaceClass = USB_CLASS_VIDEO,
> + .bInterfaceSubClass = 1,
> + .bInterfaceProtocol = 0,
> + .driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
> /* Generic USB Video Class */
> { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_UNDEFINED) },
> { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, UVC_PC_PROTOCOL_15) },

--
Regards,

Laurent Pinchart