Hi Ricardo,
On Monday, July 22nd, 2024 at 6:15 PM, Ricardo Ribalda <ribalda@xxxxxxxxxxxx> wrote:
>
> Hi BrettRD
>
> Thanks for your report.
>
> Do you want to give it a try at sending a patch for the device?
>
> It looks something like this:
> https://lore.kernel.org/linux-media/20221101-easycam-v3-1-2c9881a7a4f7@xxxxxxxxxxxx/
I'd love to, I'm still reading up on how to build modules under Debian
A first attempt is attached, I'll send it standalone once I've tested it.
> Make sure the vid:pids are alphabetically ordered.
Thanks! I wouldn't have noticed that, the struct is inserted in vid:pid order
> Regards!
>
> On Fri, 19 Jul 2024 at 07:55, BrettRD brett@xxxxxxxxxxx wrote:
>
> > Hello,
> >
> > I have a device not listed among the UVC supported devices, '2bdf:0102 HIK Camera', It's sold as a "mini640" thermal camera.
> >
> > It needs the quirk 'UVC_QUIRK_PROBE_MINMAX' before it runs happily under gstreamer using v4l2src, no errors for all reported resolutions.
> >
> > Attached is the libusb output from it, and the v4l2_compliance report generated without the quirk applied. (with quirk=2 it reports no failures)
> >
> > Thanks for a great driver and documentation
> > Brett
>
> --
> Ricardo Ribalda
Cheers,
Brett
From 2c602982c98f48f06ec9c6106506f6e8120ee887 Mon Sep 17 00:00:00 2001
From: Brett Downing <brett@xxxxxxxxxxx>
Date: Fri, 26 Jul 2024 15:16:11 +1000
Subject: [PATCH 1/1] media: uvcvideo: Add quirk for Mini640 Thermal Camera
The thermal camera "2bdf:0102 HIK Camera" sold as a "Mini640"
long-wave infrared camera crashes Cheese and errors under gstreamer's
v4l2src missing both TRY_FMT and VIDIOC_S_FMT
Using the quirk UVC_QUIRK_PROBE_MINMAX yields a clean v4l2-compliance report
and allows streaming at all supported resolutions under gstreamer
Signed-off-by: Brett Downing <brett@xxxxxxxxxxx>
---
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 f0febdc08c2d..5420e74d8666 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2991,6 +2991,15 @@ static const struct usb_device_id uvc_ids[] = {
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = UVC_INFO_QUIRK(UVC_QUIRK_FORCE_BPP) },
+ /* HIK Camera (Mini640 Thermal Camera) */
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
+ | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x2bdf,
+ .idProduct = 0x0102,
+ .bInterfaceClass = USB_CLASS_VIDEO,
+ .bInterfaceSubClass = 1,
+ .bInterfaceProtocol = 0,
+ .driver_info = UVC_INFO_QUIRK(UVC_QUIRK_PROBE_MINMAX) },
/* Insta360 Link */
{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE
| USB_DEVICE_ID_MATCH_INT_INFO,
--
2.39.2