[media] V4L: soc-camera: camera client operations no longer compulsory
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Thu, 28 Jul 2011 16:57:53 +0000 (13:57 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 3 Nov 2011 20:27:52 +0000 (18:27 -0200)
With the transition of all soc-camera host drivers to use V4L2
subdevice .[gs]_mbus_config() operations, soc-camera client operations
no longer have to be compulsory.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/soc_camera.c

index 8b16152f52fe17d0bc6ad315f5dba4019f9bb0f2..e05d1c7fee8d22453e14a385144a5067f46b18d8 100644 (file)
@@ -482,7 +482,7 @@ static int soc_camera_open(struct file *file)
        struct soc_camera_host *ici;
        int ret;
 
-       if (!icd->ops)
+       if (!to_soc_camera_control(icd))
                /* No device driver attached */
                return -ENODEV;
 
@@ -835,6 +835,9 @@ static int soc_camera_queryctrl(struct file *file, void *priv,
                        return 0;
                }
 
+       if (!icd->ops)
+               return -EINVAL;
+
        /* Then device controls */
        for (i = 0; i < icd->ops->num_controls; i++)
                if (qc->id == icd->ops->controls[i].id) {
@@ -1461,11 +1464,6 @@ static int soc_camera_video_start(struct soc_camera_device *icd)
        if (!icd->parent)
                return -ENODEV;
 
-       if (!icd->ops ||
-           !icd->ops->query_bus_param ||
-           !icd->ops->set_bus_param)
-               return -EINVAL;
-
        ret = video_register_device(icd->vdev, VFL_TYPE_GRABBER, -1);
        if (ret < 0) {
                dev_err(icd->pdev, "video_register_device failed: %d\n", ret);