Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] v4l2-ctrls: Fix control enumeration for multiple subdevs with ctrl

v4l2-ctl and qv4l2 enumerate controls using V4L2_CTRL_FLAG_NEXT_CTRL,
falling back to the old method if the flag isn't supported.

The v4l2_subdev_queryctrl function will currently handle that flag, but
for the controls of the subdev only. This isn't right, it should refuse
this flag, otherwise v4l2-ctl will only see the controls of the first
subdev.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
87a0c94c fb8decfa

+2
+2
drivers/media/video/v4l2-ctrls.c
··· 1364 1364 1365 1365 int v4l2_subdev_queryctrl(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc) 1366 1366 { 1367 + if (qc->id & V4L2_CTRL_FLAG_NEXT_CTRL) 1368 + return -EINVAL; 1367 1369 return v4l2_queryctrl(sd->ctrl_handler, qc); 1368 1370 } 1369 1371 EXPORT_SYMBOL(v4l2_subdev_queryctrl);