Commit 0f8017be authored by Ricardo Ribalda's avatar Ricardo Ribalda Committed by Mauro Carvalho Chehab

[media] media/core: Replace ctrl_class with which

Replace the obsolete field ctrl_class with "which".

Make sure it not used in future modules by commenting out the field with
ifndef __KERNEL_ .

The field cannot be simply removed because that would be change on the
kenel API to the userspace (and we don't like that).
Signed-off-by: default avatarRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 35ec2a2f
...@@ -61,7 +61,7 @@ must belong to the same control class.</para> ...@@ -61,7 +61,7 @@ must belong to the same control class.</para>
<para>Applications must always fill in the <para>Applications must always fill in the
<structfield>count</structfield>, <structfield>count</structfield>,
<structfield>ctrl_class</structfield>, <structfield>which</structfield>,
<structfield>controls</structfield> and <structfield>controls</structfield> and
<structfield>reserved</structfield> fields of &v4l2-ext-controls;, and <structfield>reserved</structfield> fields of &v4l2-ext-controls;, and
initialize the &v4l2-ext-control; array pointed to by the initialize the &v4l2-ext-control; array pointed to by the
...@@ -109,7 +109,7 @@ the driver whether wrong values are automatically adjusted to a valid ...@@ -109,7 +109,7 @@ the driver whether wrong values are automatically adjusted to a valid
value or if an error is returned.</para> value or if an error is returned.</para>
<para>When the <structfield>id</structfield> or <para>When the <structfield>id</structfield> or
<structfield>ctrl_class</structfield> is invalid drivers return an <structfield>which</structfield> is invalid drivers return an
&EINVAL;. When the value is out of bounds drivers can choose to take &EINVAL;. When the value is out of bounds drivers can choose to take
the closest valid value or return an &ERANGE;, whatever seems more the closest valid value or return an &ERANGE;, whatever seems more
appropriate. In the first case the new value is set in appropriate. In the first case the new value is set in
...@@ -390,7 +390,7 @@ These controls are described in <xref linkend="rf-tuner-controls" />.</entry> ...@@ -390,7 +390,7 @@ These controls are described in <xref linkend="rf-tuner-controls" />.</entry>
<listitem> <listitem>
<para>The &v4l2-ext-control; <structfield>id</structfield> <para>The &v4l2-ext-control; <structfield>id</structfield>
is invalid, the &v4l2-ext-controls; is invalid, the &v4l2-ext-controls;
<structfield>ctrl_class</structfield> is invalid, or the &v4l2-ext-control; <structfield>which</structfield> is invalid, or the &v4l2-ext-control;
<structfield>value</structfield> was inappropriate (e.g. the given menu <structfield>value</structfield> was inappropriate (e.g. the given menu
index is not supported by the driver). This error code is index is not supported by the driver). This error code is
also returned by the <constant>VIDIOC_S_EXT_CTRLS</constant> and also returned by the <constant>VIDIOC_S_EXT_CTRLS</constant> and
......
...@@ -1119,7 +1119,7 @@ const struct v4l2_ioctl_ops *get_dec_v4l2_ioctl_ops(void) ...@@ -1119,7 +1119,7 @@ const struct v4l2_ioctl_ops *get_dec_v4l2_ioctl_ops(void)
return &s5p_mfc_dec_ioctl_ops; return &s5p_mfc_dec_ioctl_ops;
} }
#define IS_MFC51_PRIV(x) ((V4L2_CTRL_ID2CLASS(x) == V4L2_CTRL_CLASS_MPEG) \ #define IS_MFC51_PRIV(x) ((V4L2_CTRL_ID2WHICH(x) == V4L2_CTRL_CLASS_MPEG) \
&& V4L2_CTRL_DRIVER_PRIV(x)) && V4L2_CTRL_DRIVER_PRIV(x))
int s5p_mfc_dec_ctrls_setup(struct s5p_mfc_ctx *ctx) int s5p_mfc_dec_ctrls_setup(struct s5p_mfc_ctx *ctx)
......
...@@ -2067,7 +2067,7 @@ const struct v4l2_ioctl_ops *get_enc_v4l2_ioctl_ops(void) ...@@ -2067,7 +2067,7 @@ const struct v4l2_ioctl_ops *get_enc_v4l2_ioctl_ops(void)
return &s5p_mfc_enc_ioctl_ops; return &s5p_mfc_enc_ioctl_ops;
} }
#define IS_MFC51_PRIV(x) ((V4L2_CTRL_ID2CLASS(x) == V4L2_CTRL_CLASS_MPEG) \ #define IS_MFC51_PRIV(x) ((V4L2_CTRL_ID2WHICH(x) == V4L2_CTRL_CLASS_MPEG) \
&& V4L2_CTRL_DRIVER_PRIV(x)) && V4L2_CTRL_DRIVER_PRIV(x))
int s5p_mfc_enc_ctrls_setup(struct s5p_mfc_ctx *ctx) int s5p_mfc_enc_ctrls_setup(struct s5p_mfc_ctx *ctx)
......
...@@ -630,7 +630,7 @@ static inline int put_v4l2_input32(struct v4l2_input *kp, struct v4l2_input32 __ ...@@ -630,7 +630,7 @@ static inline int put_v4l2_input32(struct v4l2_input *kp, struct v4l2_input32 __
} }
struct v4l2_ext_controls32 { struct v4l2_ext_controls32 {
__u32 ctrl_class; __u32 which;
__u32 count; __u32 count;
__u32 error_idx; __u32 error_idx;
__u32 reserved[2]; __u32 reserved[2];
...@@ -673,7 +673,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext ...@@ -673,7 +673,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
compat_caddr_t p; compat_caddr_t p;
if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_ext_controls32)) || if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_ext_controls32)) ||
get_user(kp->ctrl_class, &up->ctrl_class) || get_user(kp->which, &up->which) ||
get_user(kp->count, &up->count) || get_user(kp->count, &up->count) ||
get_user(kp->error_idx, &up->error_idx) || get_user(kp->error_idx, &up->error_idx) ||
copy_from_user(kp->reserved, up->reserved, copy_from_user(kp->reserved, up->reserved,
...@@ -723,7 +723,7 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext ...@@ -723,7 +723,7 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
compat_caddr_t p; compat_caddr_t p;
if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_ext_controls32)) || if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_ext_controls32)) ||
put_user(kp->ctrl_class, &up->ctrl_class) || put_user(kp->which, &up->which) ||
put_user(kp->count, &up->count) || put_user(kp->count, &up->count) ||
put_user(kp->error_idx, &up->error_idx) || put_user(kp->error_idx, &up->error_idx) ||
copy_to_user(up->reserved, kp->reserved, sizeof(up->reserved))) copy_to_user(up->reserved, kp->reserved, sizeof(up->reserved)))
......
...@@ -1762,7 +1762,7 @@ static struct v4l2_ctrl_ref *find_private_ref( ...@@ -1762,7 +1762,7 @@ static struct v4l2_ctrl_ref *find_private_ref(
list_for_each_entry(ref, &hdl->ctrl_refs, node) { list_for_each_entry(ref, &hdl->ctrl_refs, node) {
/* Search for private user controls that are compatible with /* Search for private user controls that are compatible with
VIDIOC_G/S_CTRL. */ VIDIOC_G/S_CTRL. */
if (V4L2_CTRL_ID2CLASS(ref->ctrl->id) == V4L2_CTRL_CLASS_USER && if (V4L2_CTRL_ID2WHICH(ref->ctrl->id) == V4L2_CTRL_CLASS_USER &&
V4L2_CTRL_DRIVER_PRIV(ref->ctrl->id)) { V4L2_CTRL_DRIVER_PRIV(ref->ctrl->id)) {
if (!ref->ctrl->is_int) if (!ref->ctrl->is_int)
continue; continue;
...@@ -1831,7 +1831,7 @@ static int handler_new_ref(struct v4l2_ctrl_handler *hdl, ...@@ -1831,7 +1831,7 @@ static int handler_new_ref(struct v4l2_ctrl_handler *hdl,
struct v4l2_ctrl_ref *ref; struct v4l2_ctrl_ref *ref;
struct v4l2_ctrl_ref *new_ref; struct v4l2_ctrl_ref *new_ref;
u32 id = ctrl->id; u32 id = ctrl->id;
u32 class_ctrl = V4L2_CTRL_ID2CLASS(id) | 1; u32 class_ctrl = V4L2_CTRL_ID2WHICH(id) | 1;
int bucket = id % hdl->nr_of_buckets; /* which bucket to use */ int bucket = id % hdl->nr_of_buckets; /* which bucket to use */
/* /*
...@@ -2253,9 +2253,9 @@ EXPORT_SYMBOL(v4l2_ctrl_add_handler); ...@@ -2253,9 +2253,9 @@ EXPORT_SYMBOL(v4l2_ctrl_add_handler);
bool v4l2_ctrl_radio_filter(const struct v4l2_ctrl *ctrl) bool v4l2_ctrl_radio_filter(const struct v4l2_ctrl *ctrl)
{ {
if (V4L2_CTRL_ID2CLASS(ctrl->id) == V4L2_CTRL_CLASS_FM_TX) if (V4L2_CTRL_ID2WHICH(ctrl->id) == V4L2_CTRL_CLASS_FM_TX)
return true; return true;
if (V4L2_CTRL_ID2CLASS(ctrl->id) == V4L2_CTRL_CLASS_FM_RX) if (V4L2_CTRL_ID2WHICH(ctrl->id) == V4L2_CTRL_CLASS_FM_RX)
return true; return true;
switch (ctrl->id) { switch (ctrl->id) {
case V4L2_CID_AUDIO_MUTE: case V4L2_CID_AUDIO_MUTE:
...@@ -2710,7 +2710,7 @@ static int prepare_ext_ctrls(struct v4l2_ctrl_handler *hdl, ...@@ -2710,7 +2710,7 @@ static int prepare_ext_ctrls(struct v4l2_ctrl_handler *hdl,
cs->error_idx = i; cs->error_idx = i;
if (cs->ctrl_class && V4L2_CTRL_ID2CLASS(id) != cs->ctrl_class) if (cs->which && V4L2_CTRL_ID2WHICH(id) != cs->which)
return -EINVAL; return -EINVAL;
/* Old-style private controls are not allowed for /* Old-style private controls are not allowed for
...@@ -2787,11 +2787,11 @@ static int prepare_ext_ctrls(struct v4l2_ctrl_handler *hdl, ...@@ -2787,11 +2787,11 @@ static int prepare_ext_ctrls(struct v4l2_ctrl_handler *hdl,
/* Handles the corner case where cs->count == 0. It checks whether the /* Handles the corner case where cs->count == 0. It checks whether the
specified control class exists. If that class ID is 0, then it checks specified control class exists. If that class ID is 0, then it checks
whether there are any controls at all. */ whether there are any controls at all. */
static int class_check(struct v4l2_ctrl_handler *hdl, u32 ctrl_class) static int class_check(struct v4l2_ctrl_handler *hdl, u32 which)
{ {
if (ctrl_class == 0) if (!which)
return list_empty(&hdl->ctrl_refs) ? -EINVAL : 0; return list_empty(&hdl->ctrl_refs) ? -EINVAL : 0;
return find_ref_lock(hdl, ctrl_class | 1) ? 0 : -EINVAL; return find_ref_lock(hdl, which | 1) ? 0 : -EINVAL;
} }
...@@ -2805,13 +2805,13 @@ int v4l2_g_ext_ctrls(struct v4l2_ctrl_handler *hdl, struct v4l2_ext_controls *cs ...@@ -2805,13 +2805,13 @@ int v4l2_g_ext_ctrls(struct v4l2_ctrl_handler *hdl, struct v4l2_ext_controls *cs
int i, j; int i, j;
cs->error_idx = cs->count; cs->error_idx = cs->count;
cs->ctrl_class = V4L2_CTRL_ID2CLASS(cs->ctrl_class); cs->which = V4L2_CTRL_ID2WHICH(cs->which);
if (hdl == NULL) if (hdl == NULL)
return -EINVAL; return -EINVAL;
if (cs->count == 0) if (cs->count == 0)
return class_check(hdl, cs->ctrl_class); return class_check(hdl, cs->which);
if (cs->count > ARRAY_SIZE(helper)) { if (cs->count > ARRAY_SIZE(helper)) {
helpers = kmalloc_array(cs->count, sizeof(helper[0]), helpers = kmalloc_array(cs->count, sizeof(helper[0]),
...@@ -3064,13 +3064,13 @@ static int try_set_ext_ctrls(struct v4l2_fh *fh, struct v4l2_ctrl_handler *hdl, ...@@ -3064,13 +3064,13 @@ static int try_set_ext_ctrls(struct v4l2_fh *fh, struct v4l2_ctrl_handler *hdl,
int ret; int ret;
cs->error_idx = cs->count; cs->error_idx = cs->count;
cs->ctrl_class = V4L2_CTRL_ID2CLASS(cs->ctrl_class); cs->which = V4L2_CTRL_ID2WHICH(cs->which);
if (hdl == NULL) if (hdl == NULL)
return -EINVAL; return -EINVAL;
if (cs->count == 0) if (cs->count == 0)
return class_check(hdl, cs->ctrl_class); return class_check(hdl, cs->which);
if (cs->count > ARRAY_SIZE(helper)) { if (cs->count > ARRAY_SIZE(helper)) {
helpers = kmalloc_array(cs->count, sizeof(helper[0]), helpers = kmalloc_array(cs->count, sizeof(helper[0]),
......
...@@ -565,8 +565,8 @@ static void v4l_print_ext_controls(const void *arg, bool write_only) ...@@ -565,8 +565,8 @@ static void v4l_print_ext_controls(const void *arg, bool write_only)
const struct v4l2_ext_controls *p = arg; const struct v4l2_ext_controls *p = arg;
int i; int i;
pr_cont("class=0x%x, count=%d, error_idx=%d", pr_cont("which=0x%x, count=%d, error_idx=%d",
p->ctrl_class, p->count, p->error_idx); p->which, p->count, p->error_idx);
for (i = 0; i < p->count; i++) { for (i = 0; i < p->count; i++) {
if (!p->controls[i].size) if (!p->controls[i].size)
pr_cont(", id/val=0x%x/0x%x", pr_cont(", id/val=0x%x/0x%x",
...@@ -902,13 +902,13 @@ static int check_ext_ctrls(struct v4l2_ext_controls *c, int allow_priv) ...@@ -902,13 +902,13 @@ static int check_ext_ctrls(struct v4l2_ext_controls *c, int allow_priv)
Only when passed in through VIDIOC_G_CTRL and VIDIOC_S_CTRL Only when passed in through VIDIOC_G_CTRL and VIDIOC_S_CTRL
is it allowed for backwards compatibility. is it allowed for backwards compatibility.
*/ */
if (!allow_priv && c->ctrl_class == V4L2_CID_PRIVATE_BASE) if (!allow_priv && c->which == V4L2_CID_PRIVATE_BASE)
return 0; return 0;
if (c->ctrl_class == 0) if (!c->which)
return 1; return 1;
/* Check that all controls are from the same control class. */ /* Check that all controls are from the same control class. */
for (i = 0; i < c->count; i++) { for (i = 0; i < c->count; i++) {
if (V4L2_CTRL_ID2CLASS(c->controls[i].id) != c->ctrl_class) { if (V4L2_CTRL_ID2WHICH(c->controls[i].id) != c->which) {
c->error_idx = i; c->error_idx = i;
return 0; return 0;
} }
...@@ -1969,7 +1969,7 @@ static int v4l_g_ctrl(const struct v4l2_ioctl_ops *ops, ...@@ -1969,7 +1969,7 @@ static int v4l_g_ctrl(const struct v4l2_ioctl_ops *ops,
if (ops->vidioc_g_ext_ctrls == NULL) if (ops->vidioc_g_ext_ctrls == NULL)
return -ENOTTY; return -ENOTTY;
ctrls.ctrl_class = V4L2_CTRL_ID2CLASS(p->id); ctrls.which = V4L2_CTRL_ID2WHICH(p->id);
ctrls.count = 1; ctrls.count = 1;
ctrls.controls = &ctrl; ctrls.controls = &ctrl;
ctrl.id = p->id; ctrl.id = p->id;
...@@ -2003,7 +2003,7 @@ static int v4l_s_ctrl(const struct v4l2_ioctl_ops *ops, ...@@ -2003,7 +2003,7 @@ static int v4l_s_ctrl(const struct v4l2_ioctl_ops *ops,
if (ops->vidioc_s_ext_ctrls == NULL) if (ops->vidioc_s_ext_ctrls == NULL)
return -ENOTTY; return -ENOTTY;
ctrls.ctrl_class = V4L2_CTRL_ID2CLASS(p->id); ctrls.which = V4L2_CTRL_ID2WHICH(p->id);
ctrls.count = 1; ctrls.count = 1;
ctrls.controls = &ctrl; ctrls.controls = &ctrl;
ctrl.id = p->id; ctrl.id = p->id;
......
...@@ -1477,7 +1477,9 @@ struct v4l2_ext_control { ...@@ -1477,7 +1477,9 @@ struct v4l2_ext_control {
struct v4l2_ext_controls { struct v4l2_ext_controls {
union { union {
#ifndef __KERNEL__
__u32 ctrl_class; __u32 ctrl_class;
#endif
__u32 which; __u32 which;
}; };
__u32 count; __u32 count;
...@@ -1487,7 +1489,10 @@ struct v4l2_ext_controls { ...@@ -1487,7 +1489,10 @@ struct v4l2_ext_controls {
}; };
#define V4L2_CTRL_ID_MASK (0x0fffffff) #define V4L2_CTRL_ID_MASK (0x0fffffff)
#ifndef __KERNEL__
#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) #define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
#endif
#define V4L2_CTRL_ID2WHICH(id) ((id) & 0x0fff0000UL)
#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000) #define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000)
#define V4L2_CTRL_MAX_DIMS (4) #define V4L2_CTRL_MAX_DIMS (4)
#define V4L2_CTRL_WHICH_CUR_VAL 0 #define V4L2_CTRL_WHICH_CUR_VAL 0
......
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