|
@@ -1061,7 +1061,7 @@ int uvc_query_v4l2_ctrl(struct uvc_video_chain *chain,
|
|
|
|
|
|
ctrl = uvc_find_control(chain, v4l2_ctrl->id, &mapping);
|
|
|
if (ctrl == NULL) {
|
|
|
- ret = -ENOENT;
|
|
|
+ ret = -EINVAL;
|
|
|
goto done;
|
|
|
}
|
|
|
|
|
@@ -1099,13 +1099,12 @@ int uvc_query_v4l2_menu(struct uvc_video_chain *chain,
|
|
|
return -ERESTARTSYS;
|
|
|
|
|
|
ctrl = uvc_find_control(chain, query_menu->id, &mapping);
|
|
|
- if (ctrl == NULL) {
|
|
|
- ret = -ENOENT;
|
|
|
+ if (ctrl == NULL || mapping->v4l2_type != V4L2_CTRL_TYPE_MENU) {
|
|
|
+ ret = -EINVAL;
|
|
|
goto done;
|
|
|
}
|
|
|
|
|
|
- if (mapping->v4l2_type != V4L2_CTRL_TYPE_MENU ||
|
|
|
- query_menu->index >= mapping->menu_count) {
|
|
|
+ if (query_menu->index >= mapping->menu_count) {
|
|
|
ret = -EINVAL;
|
|
|
goto done;
|
|
|
}
|
|
@@ -1264,7 +1263,7 @@ static int uvc_ctrl_add_event(struct v4l2_subscribed_event *sev, unsigned elems)
|
|
|
|
|
|
ctrl = uvc_find_control(handle->chain, sev->id, &mapping);
|
|
|
if (ctrl == NULL) {
|
|
|
- ret = -ENOENT;
|
|
|
+ ret = -EINVAL;
|
|
|
goto done;
|
|
|
}
|
|
|
|
|
@@ -1415,7 +1414,7 @@ int uvc_ctrl_get(struct uvc_video_chain *chain,
|
|
|
|
|
|
ctrl = uvc_find_control(chain, xctrl->id, &mapping);
|
|
|
if (ctrl == NULL)
|
|
|
- return -ENOENT;
|
|
|
+ return -EINVAL;
|
|
|
|
|
|
return __uvc_ctrl_get(chain, ctrl, mapping, &xctrl->value);
|
|
|
}
|
|
@@ -1432,10 +1431,8 @@ int uvc_ctrl_set(struct uvc_video_chain *chain,
|
|
|
int ret;
|
|
|
|
|
|
ctrl = uvc_find_control(chain, xctrl->id, &mapping);
|
|
|
- if (ctrl == NULL)
|
|
|
- return -ENOENT;
|
|
|
- if (!(ctrl->info.flags & UVC_CTRL_FLAG_SET_CUR))
|
|
|
- return -EACCES;
|
|
|
+ if (ctrl == NULL || (ctrl->info.flags & UVC_CTRL_FLAG_SET_CUR) == 0)
|
|
|
+ return -EINVAL;
|
|
|
|
|
|
/* Clamp out of range values. */
|
|
|
switch (mapping->v4l2_type) {
|