This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/v4l-dvb.git tree:

Subject: V4L/DVB: uvcvideo: Define control information bits using macros
Author:  Laurent Pinchart <[email protected]>
Date:    Thu Jun 17 11:11:51 2010 -0300

Use the macros instead of hardcoding numerical constants for the
controls information bitfield.

Signed-off-by: Laurent Pinchart <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/video/uvc/uvc_ctrl.c |   12 ++++++------
 include/linux/usb/video.h          |    7 +++++++
 2 files changed, 13 insertions(+), 6 deletions(-)

---

http://git.linuxtv.org/v4l-dvb.git?a=commitdiff;h=da1df555fcbb98a9d2054304ea54545d9ff523cf

diff --git a/drivers/media/video/uvc/uvc_ctrl.c 
b/drivers/media/video/uvc/uvc_ctrl.c
index c88d72e..cacb845 100644
--- a/drivers/media/video/uvc/uvc_ctrl.c
+++ b/drivers/media/video/uvc/uvc_ctrl.c
@@ -1324,9 +1324,8 @@ static void uvc_ctrl_add_ctrl(struct uvc_device *dev,
                /* Check if the device control information and length match
                 * the user supplied information.
                 */
-               __u32 flags;
                __le16 size;
-               __u8 inf;
+               __u8 _info;
 
                ret = uvc_query_ctrl(dev, UVC_GET_LEN, ctrl->entity->id,
                        dev->intfnum, info->selector, (__u8 *)&size, 2);
@@ -1345,7 +1344,7 @@ static void uvc_ctrl_add_ctrl(struct uvc_device *dev,
                }
 
                ret = uvc_query_ctrl(dev, UVC_GET_INFO, ctrl->entity->id,
-                       dev->intfnum, info->selector, &inf, 1);
+                                    dev->intfnum, info->selector, &_info, 1);
                if (ret < 0) {
                        uvc_trace(UVC_TRACE_CONTROL,
                                "GET_INFO failed on control %pUl/%u (%d).\n",
@@ -1353,9 +1352,10 @@ static void uvc_ctrl_add_ctrl(struct uvc_device *dev,
                        return;
                }
 
-               flags = info->flags;
-               if (((flags & UVC_CONTROL_GET_CUR) && !(inf & (1 << 0))) ||
-                   ((flags & UVC_CONTROL_SET_CUR) && !(inf & (1 << 1)))) {
+               if (((info->flags & UVC_CONTROL_GET_CUR) &&
+                   !(_info & UVC_CONTROL_CAP_GET)) ||
+                   ((info->flags & UVC_CONTROL_SET_CUR) &&
+                   !(_info & UVC_CONTROL_CAP_SET))) {
                        uvc_trace(UVC_TRACE_CONTROL, "Control %pUl/%u flags "
                                "don't match supported operations.\n",
                                info->entity, info->selector);
diff --git a/include/linux/usb/video.h b/include/linux/usb/video.h
index be436d9..2d5b7fc 100644
--- a/include/linux/usb/video.h
+++ b/include/linux/usb/video.h
@@ -160,5 +160,12 @@
 #define UVC_STATUS_TYPE_CONTROL                                1
 #define UVC_STATUS_TYPE_STREAMING                      2
 
+/* 4.1.2. Control Capabilities */
+#define UVC_CONTROL_CAP_GET                            (1 << 0)
+#define UVC_CONTROL_CAP_SET                            (1 << 1)
+#define UVC_CONTROL_CAP_DISABLED                       (1 << 2)
+#define UVC_CONTROL_CAP_AUTOUPDATE                     (1 << 3)
+#define UVC_CONTROL_CAP_ASYNCHRONOUS                   (1 << 4)
+
 #endif /* __LINUX_USB_VIDEO_H */
 

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to