From: Laurent Pinchart Date: Sun, 3 Nov 2013 23:13:32 +0000 (-0300) Subject: [media] v4l: omap4iss: Don't use v4l2_g_ext_ctrls() internally X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=ea72717e961d1166882370a87876bfeacc967eb0;p=openwrt%2Fstaging%2Fblogic.git [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 Acked-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- 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; }