summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2013-11-04 03:13:32 +0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-12-03 23:45:02 +0400
commitea72717e961d1166882370a87876bfeacc967eb0 (patch)
tree9902460b33c3b83d61ce0e853ae724ed4af06878
parentd632dfefd36f0794dd69a41f86bfff2cc0e5af73 (diff)
downloadlinux-ea72717e961d1166882370a87876bfeacc967eb0.tar.xz
[media] v4l: omap4iss: Don't use v4l2_g_ext_ctrls() internally
Instead of using the extended control API internally to get the sensor pixel rate, use the dedicated in-kernel APIs (find the control with v4l2_ctrl_find() and get its value with v4l2_ctrl_g_ctrl_int64()). Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/staging/media/omap4iss/iss.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/staging/media/omap4iss/iss.c b/drivers/staging/media/omap4iss/iss.c
index d054d9b6eb0f..1a5cac94209e 100644
--- a/drivers/staging/media/omap4iss/iss.c
+++ b/drivers/staging/media/omap4iss/iss.c
@@ -121,8 +121,7 @@ int omap4iss_get_external_info(struct iss_pipeline *pipe,
struct iss_device *iss =
container_of(pipe, struct iss_video, pipe)->iss;
struct v4l2_subdev_format fmt;
- struct v4l2_ext_controls ctrls;
- struct v4l2_ext_control ctrl;
+ struct v4l2_ctrl *ctrl;
int ret;
if (!pipe->external)
@@ -142,23 +141,15 @@ int omap4iss_get_external_info(struct iss_pipeline *pipe,
pipe->external_bpp = omap4iss_video_format_info(fmt.format.code)->bpp;
- memset(&ctrls, 0, sizeof(ctrls));
- memset(&ctrl, 0, sizeof(ctrl));
-
- ctrl.id = V4L2_CID_PIXEL_RATE;
-
- ctrls.ctrl_class = V4L2_CTRL_ID2CLASS(ctrl.id);
- ctrls.count = 1;
- ctrls.controls = &ctrl;
-
- ret = v4l2_g_ext_ctrls(pipe->external->ctrl_handler, &ctrls);
- if (ret < 0) {
+ ctrl = v4l2_ctrl_find(pipe->external->ctrl_handler,
+ V4L2_CID_PIXEL_RATE);
+ if (ctrl == NULL) {
dev_warn(iss->dev, "no pixel rate control in subdev %s\n",
pipe->external->name);
- return ret;
+ return -EPIPE;
}
- pipe->external_rate = ctrl.value64;
+ pipe->external_rate = v4l2_ctrl_g_ctrl_int64(ctrl);
return 0;
}