atomisp: return framerate for VIDIOC_G_PARM ioctl call
authorTuukka Toivonen <tuukka.toivonen@intel.com>
Mon, 18 Jun 2012 08:08:14 +0000 (11:08 +0300)
committerbuildbot <buildbot@intel.com>
Wed, 20 Jun 2012 13:50:49 +0000 (06:50 -0700)
BZ: 41720

VIDIOC_G_PARM should return the video frame rate, so call the
sensor driver to get the frame rate and return it.

Change-Id: Icbe636971934facfa11bf4732e0d4230c23e2789
Signed-off-by: Tuukka Toivonen <tuukka.toivonen@intel.com>
Reviewed-on: http://android.intel.com:8080/53070
Reviewed-by: Wang, Wen W <wen.w.wang@intel.com>
Reviewed-by: Koski, Anttu <anttu.koski@intel.com>
Tested-by: Koski, Anttu <anttu.koski@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
drivers/media/video/atomisp/atomisp_ioctl.c

index a1f9159..e8b884f 100644 (file)
@@ -1575,18 +1575,20 @@ static int atomisp_g_parm(struct file *file, void *fh,
 {
        struct video_device *vdev = video_devdata(file);
        struct atomisp_device *isp = video_get_drvdata(vdev);
+       int ret;
 
-       mutex_lock(&isp->input_lock);
+       if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
+               return -EINVAL;
 
-       if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) {
-               v4l2_err(&atomisp_dev,
-                           "unsupport v4l2 buf type\n");
+       mutex_lock(&isp->input_lock);
+       ret = v4l2_subdev_call(isp->inputs[isp->input_curr].camera,
+                               video, g_parm, parm);
+       if (ret) {
+               v4l2_err(&atomisp_dev, "sensor g_parm failed\n");
                mutex_unlock(&isp->input_lock);
-               return -EINVAL;
+               return ret;
        }
-
        parm->parm.capture.capturemode = isp->sw_contex.run_mode;
-
        mutex_unlock(&isp->input_lock);
        return 0;
 }