forked from Minki/linux
V4L/DVB: uvcvideo: Define control information bits using macros
Use the macros instead of hardcoding numerical constants for the controls information bitfield. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
561474c2d2
commit
1b4e21c4f6
@ -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);
|
||||
|
@ -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 */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user