aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/v4l2-ctrls.c
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2012-05-06 14:30:44 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-14 13:03:21 -0400
commit515f32879a05bdb69f9b3f86f53db4c04b95e845 (patch)
tree9a090c658d1dc1c96286cb9359cbfd13b42f5db3 /drivers/media/video/v4l2-ctrls.c
parent6491d1adfbf0e2ffbdfcda8cef60edc01b6700b3 (diff)
[media] V4L: Add helper function for standard integer menu controls
This patch adds v4l2_ctrl_new_int_menu() helper function which can be used in drivers for creating standard integer menu control with driver-specific menu item list. It is similar to v4l2_ctrl_new_std_menu(), except it doesn't have a mask parameter and an additional qmenu parameter allows passing an array of signed 64-bit integers as the menu item list. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Sakari Ailus <sakari.ailus@iki.fi> Tested-by: Sakari Ailus <sakari.ailus@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/v4l2-ctrls.c')
-rw-r--r--drivers/media/video/v4l2-ctrls.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c
index 9bd8a92419e1..fdcb9e21d9d3 100644
--- a/drivers/media/video/v4l2-ctrls.c
+++ b/drivers/media/video/v4l2-ctrls.c
@@ -1544,6 +1544,27 @@ struct v4l2_ctrl *v4l2_ctrl_new_std_menu(struct v4l2_ctrl_handler *hdl,
1544} 1544}
1545EXPORT_SYMBOL(v4l2_ctrl_new_std_menu); 1545EXPORT_SYMBOL(v4l2_ctrl_new_std_menu);
1546 1546
1547/* Helper function for standard integer menu controls */
1548struct v4l2_ctrl *v4l2_ctrl_new_int_menu(struct v4l2_ctrl_handler *hdl,
1549 const struct v4l2_ctrl_ops *ops,
1550 u32 id, s32 max, s32 def, const s64 *qmenu_int)
1551{
1552 const char *name;
1553 enum v4l2_ctrl_type type;
1554 s32 min;
1555 s32 step;
1556 u32 flags;
1557
1558 v4l2_ctrl_fill(id, &name, &type, &min, &max, &step, &def, &flags);
1559 if (type != V4L2_CTRL_TYPE_INTEGER_MENU) {
1560 handler_set_err(hdl, -EINVAL);
1561 return NULL;
1562 }
1563 return v4l2_ctrl_new(hdl, ops, id, name, type,
1564 0, max, 0, def, flags, NULL, qmenu_int, NULL);
1565}
1566EXPORT_SYMBOL(v4l2_ctrl_new_int_menu);
1567
1547/* Add a control from another handler to this handler */ 1568/* Add a control from another handler to this handler */
1548struct v4l2_ctrl *v4l2_ctrl_add_ctrl(struct v4l2_ctrl_handler *hdl, 1569struct v4l2_ctrl *v4l2_ctrl_add_ctrl(struct v4l2_ctrl_handler *hdl,
1549 struct v4l2_ctrl *ctrl) 1570 struct v4l2_ctrl *ctrl)