OK,
The following patch works for me.
usb_match_id doesn't seem to be working properly, so I'm using
dev->udev->descriptor instead.
I'm  also not a big fan of "continue" so I change it to a simple
if..else statement, this shouldn't make any difference (it's just easy
for read, at least for me :D)

Best regards
Paulo

---------- Forwarded message ----------
From: Paulo Assis <pj.as...@gmail.com>
Date: 2009/12/5
Subject: control black list
To: linux-uvc development discussions <linux-uvc-devel@lists.berlios.de>


Laurent Hi,

I've just discovered that all my camera models have the WB Temperature
and Hue controls black listed, I would suppose that the control black
list was device specific.
For some reason the device id's are not taken into account and the
controls get blacklisted in all models.
If I have time today, I'll check the reason and post a patch to fix the issue.

Best regards,
Paulo
--- v4l-dvb/linux/drivers/media/video/uvc/uvc_ctrl.c	2009-12-05 14:56:27.218222463 +0000
+++ v4l-dvb_patched/linux/drivers/media/video/uvc/uvc_ctrl.c	2009-12-05 15:00:56.669222823 +0000
@@ -1395,17 +1395,17 @@
 	size = entity->processing.bControlSize;
 
 	for (i = 0; i < ARRAY_SIZE(blacklist); ++i) {
-		if (!usb_match_id(dev->intf, &blacklist[i].id))
-			continue;
-
-		if (blacklist[i].index >= 8 * size ||
-		    !uvc_test_bit(controls, blacklist[i].index))
-			continue;
+		if((dev->udev->descriptor.idVendor == blacklist[i].id.idVendor) &&
+		   (dev->udev->descriptor.idProduct == blacklist[i].id.idProduct) &&
+		   (blacklist[i].index < 8 * size) && 
+		   uvc_test_bit(controls, blacklist[i].index))
+		{
+		
+			uvc_trace(UVC_TRACE_CONTROL, "%u/%u control is black listed for [%.4x:%.4x], "
+				"removing it.\n", entity->id, blacklist[i].index, dev->udev->descriptor.idVendor, dev->udev->descriptor.idProduct);
 
-		uvc_trace(UVC_TRACE_CONTROL, "%u/%u control is black listed, "
-			"removing it.\n", entity->id, blacklist[i].index);
-
-		uvc_clear_bit(controls, blacklist[i].index);
+			uvc_clear_bit(controls, blacklist[i].index);
+		}
 	}
 }
 
_______________________________________________
Linux-uvc-devel mailing list
Linux-uvc-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to