media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom()
commit 07d89227a983df957a6a7c56f7c040cde9ac571f upstream. cfg->type can be overridden by v4l2_ctrl_fill() and the new value is stored in the local type var. Fix the tests to use this local var. Fixes: 0996517cf8ea ("V4L/DVB: v4l2: Add new control handling framework") Cc: <stable@vger.kernel.org> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> [hverkuil-cisco@xs4all.nl: change to !qmenu and !qmenu_int (checkpatch)] Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
dc427decca
commit
a616b5631a
@ -2073,16 +2073,15 @@ struct v4l2_ctrl *v4l2_ctrl_new_custom(struct v4l2_ctrl_handler *hdl,
|
||||
v4l2_ctrl_fill(cfg->id, &name, &type, &min, &max, &step,
|
||||
&def, &flags);
|
||||
|
||||
is_menu = (cfg->type == V4L2_CTRL_TYPE_MENU ||
|
||||
cfg->type == V4L2_CTRL_TYPE_INTEGER_MENU);
|
||||
is_menu = (type == V4L2_CTRL_TYPE_MENU ||
|
||||
type == V4L2_CTRL_TYPE_INTEGER_MENU);
|
||||
if (is_menu)
|
||||
WARN_ON(step);
|
||||
else
|
||||
WARN_ON(cfg->menu_skip_mask);
|
||||
if (cfg->type == V4L2_CTRL_TYPE_MENU && qmenu == NULL)
|
||||
if (type == V4L2_CTRL_TYPE_MENU && !qmenu) {
|
||||
qmenu = v4l2_ctrl_get_menu(cfg->id);
|
||||
else if (cfg->type == V4L2_CTRL_TYPE_INTEGER_MENU &&
|
||||
qmenu_int == NULL) {
|
||||
} else if (type == V4L2_CTRL_TYPE_INTEGER_MENU && !qmenu_int) {
|
||||
handler_set_err(hdl, -EINVAL);
|
||||
return NULL;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user