mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-04-13 09:59:31 +00:00
media: v4l2-core: Introduce v4l2_query_ext_ctrl_to_v4l2_queryctrl
We use this logic in a couple of places. Refactor into a function. No functional change expected from this patch. Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
0d75129312
commit
6494d3504c
3 changed files with 46 additions and 49 deletions
|
@ -1157,6 +1157,36 @@ int v4l2_query_ext_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_query_ext_ctr
|
|||
}
|
||||
EXPORT_SYMBOL(v4l2_query_ext_ctrl);
|
||||
|
||||
void v4l2_query_ext_ctrl_to_v4l2_queryctrl(struct v4l2_queryctrl *to,
|
||||
const struct v4l2_query_ext_ctrl *from)
|
||||
{
|
||||
to->id = from->id;
|
||||
to->type = from->type;
|
||||
to->flags = from->flags;
|
||||
strscpy(to->name, from->name, sizeof(to->name));
|
||||
|
||||
switch (from->type) {
|
||||
case V4L2_CTRL_TYPE_INTEGER:
|
||||
case V4L2_CTRL_TYPE_BOOLEAN:
|
||||
case V4L2_CTRL_TYPE_MENU:
|
||||
case V4L2_CTRL_TYPE_INTEGER_MENU:
|
||||
case V4L2_CTRL_TYPE_STRING:
|
||||
case V4L2_CTRL_TYPE_BITMASK:
|
||||
to->minimum = from->minimum;
|
||||
to->maximum = from->maximum;
|
||||
to->step = from->step;
|
||||
to->default_value = from->default_value;
|
||||
break;
|
||||
default:
|
||||
to->minimum = 0;
|
||||
to->maximum = 0;
|
||||
to->step = 0;
|
||||
to->default_value = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(v4l2_query_ext_ctrl_to_v4l2_queryctrl);
|
||||
|
||||
/* Implement VIDIOC_QUERYCTRL */
|
||||
int v4l2_queryctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_queryctrl *qc)
|
||||
{
|
||||
|
@ -1167,29 +1197,8 @@ int v4l2_queryctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_queryctrl *qc)
|
|||
if (rc)
|
||||
return rc;
|
||||
|
||||
qc->id = qec.id;
|
||||
qc->type = qec.type;
|
||||
qc->flags = qec.flags;
|
||||
strscpy(qc->name, qec.name, sizeof(qc->name));
|
||||
switch (qc->type) {
|
||||
case V4L2_CTRL_TYPE_INTEGER:
|
||||
case V4L2_CTRL_TYPE_BOOLEAN:
|
||||
case V4L2_CTRL_TYPE_MENU:
|
||||
case V4L2_CTRL_TYPE_INTEGER_MENU:
|
||||
case V4L2_CTRL_TYPE_STRING:
|
||||
case V4L2_CTRL_TYPE_BITMASK:
|
||||
qc->minimum = qec.minimum;
|
||||
qc->maximum = qec.maximum;
|
||||
qc->step = qec.step;
|
||||
qc->default_value = qec.default_value;
|
||||
break;
|
||||
default:
|
||||
qc->minimum = 0;
|
||||
qc->maximum = 0;
|
||||
qc->step = 0;
|
||||
qc->default_value = 0;
|
||||
break;
|
||||
}
|
||||
v4l2_query_ext_ctrl_to_v4l2_queryctrl(qc, &qec);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(v4l2_queryctrl);
|
||||
|
|
|
@ -2304,32 +2304,8 @@ static int v4l_queryctrl(const struct v4l2_ioctl_ops *ops,
|
|||
ret = ops->vidioc_query_ext_ctrl(file, fh, &qec);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
p->id = qec.id;
|
||||
p->type = qec.type;
|
||||
p->flags = qec.flags;
|
||||
strscpy(p->name, qec.name, sizeof(p->name));
|
||||
switch (p->type) {
|
||||
case V4L2_CTRL_TYPE_INTEGER:
|
||||
case V4L2_CTRL_TYPE_BOOLEAN:
|
||||
case V4L2_CTRL_TYPE_MENU:
|
||||
case V4L2_CTRL_TYPE_INTEGER_MENU:
|
||||
case V4L2_CTRL_TYPE_STRING:
|
||||
case V4L2_CTRL_TYPE_BITMASK:
|
||||
p->minimum = qec.minimum;
|
||||
p->maximum = qec.maximum;
|
||||
p->step = qec.step;
|
||||
p->default_value = qec.default_value;
|
||||
break;
|
||||
default:
|
||||
p->minimum = 0;
|
||||
p->maximum = 0;
|
||||
p->step = 0;
|
||||
p->default_value = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
v4l2_query_ext_ctrl_to_v4l2_queryctrl(p, &qec);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int v4l_query_ext_ctrl(const struct v4l2_ioctl_ops *ops,
|
||||
|
|
|
@ -1432,6 +1432,18 @@ v4l2_ctrl_request_hdl_ctrl_find(struct v4l2_ctrl_handler *hdl, u32 id);
|
|||
*/
|
||||
int v4l2_queryctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_queryctrl *qc);
|
||||
|
||||
/**
|
||||
* v4l2_query_ext_ctrl_to_v4l2_queryctrl - Convert a qec to qe.
|
||||
*
|
||||
* @to: The v4l2_queryctrl to write to.
|
||||
* @from: The v4l2_query_ext_ctrl to read from.
|
||||
*
|
||||
* This function is a helper to convert a v4l2_query_ext_ctrl into a
|
||||
* v4l2_queryctrl.
|
||||
*/
|
||||
void v4l2_query_ext_ctrl_to_v4l2_queryctrl(struct v4l2_queryctrl *to,
|
||||
const struct v4l2_query_ext_ctrl *from);
|
||||
|
||||
/**
|
||||
* v4l2_query_ext_ctrl - Helper function to implement
|
||||
* :ref:`VIDIOC_QUERY_EXT_CTRL <vidioc_queryctrl>` ioctl
|
||||
|
|
Loading…
Add table
Reference in a new issue