Commit 6588687a authored by Jean-Francois Moine's avatar Jean-Francois Moine Committed by Mauro Carvalho Chehab

[media] pwc: Handle V4L2_CTRL_FLAG_NEXT_CTRL in queryctrl

Signed-off-by: default avatarJean-François Moine <moinejf@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent fd206508
...@@ -379,8 +379,27 @@ static int pwc_s_input(struct file *file, void *fh, unsigned int i) ...@@ -379,8 +379,27 @@ static int pwc_s_input(struct file *file, void *fh, unsigned int i)
static int pwc_queryctrl(struct file *file, void *fh, struct v4l2_queryctrl *c) static int pwc_queryctrl(struct file *file, void *fh, struct v4l2_queryctrl *c)
{ {
int i; int i, idx;
u32 id;
id = c->id;
if (id & V4L2_CTRL_FLAG_NEXT_CTRL) {
id &= V4L2_CTRL_ID_MASK;
id++;
idx = -1;
for (i = 0; i < ARRAY_SIZE(pwc_controls); i++) {
if (pwc_controls[i].id < id)
continue;
if (idx >= 0
&& pwc_controls[i].id > pwc_controls[idx].id)
continue;
idx = i;
}
if (idx < 0)
return -EINVAL;
memcpy(c, &pwc_controls[idx], sizeof pwc_controls[0]);
return 0;
}
for (i = 0; i < sizeof(pwc_controls) / sizeof(struct v4l2_queryctrl); i++) { for (i = 0; i < sizeof(pwc_controls) / sizeof(struct v4l2_queryctrl); i++) {
if (pwc_controls[i].id == c->id) { if (pwc_controls[i].id == c->id) {
PWC_DEBUG_IOCTL("ioctl(VIDIOC_QUERYCTRL) found\n"); PWC_DEBUG_IOCTL("ioctl(VIDIOC_QUERYCTRL) found\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment