aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/omap3isp/isp.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2011-08-13 12:09:11 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-09-21 14:30:00 -0400
commitc62e2a19d2b8c884c6f3ab3bb29d6fde2e13d8ac (patch)
treecf690857d26790bd6f2c4100921c771f14d1a98f /drivers/media/video/omap3isp/isp.c
parent1e393e90ab444dd24d28448e92bab099703fd006 (diff)
[media] omap3isp: Don't fail streamon when the sensor doesn't implement s_stream
The code handles subdevs with no s_stream operation correctly, but returns -ENOIOCTLCMD by mistake if the first subdev in the chain has no s_stream operation. Return 0 in that case. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/omap3isp/isp.c')
-rw-r--r--drivers/media/video/omap3isp/isp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/media/video/omap3isp/isp.c b/drivers/media/video/omap3isp/isp.c
index 5cea2bbd7014..fda4be0066ac 100644
--- a/drivers/media/video/omap3isp/isp.c
+++ b/drivers/media/video/omap3isp/isp.c
@@ -732,7 +732,7 @@ static int isp_pipeline_enable(struct isp_pipeline *pipe,
732 struct media_pad *pad; 732 struct media_pad *pad;
733 struct v4l2_subdev *subdev; 733 struct v4l2_subdev *subdev;
734 unsigned long flags; 734 unsigned long flags;
735 int ret = 0; 735 int ret;
736 736
737 spin_lock_irqsave(&pipe->lock, flags); 737 spin_lock_irqsave(&pipe->lock, flags);
738 pipe->state &= ~(ISP_PIPELINE_IDLE_INPUT | ISP_PIPELINE_IDLE_OUTPUT); 738 pipe->state &= ~(ISP_PIPELINE_IDLE_INPUT | ISP_PIPELINE_IDLE_OUTPUT);
@@ -756,7 +756,7 @@ static int isp_pipeline_enable(struct isp_pipeline *pipe,
756 756
757 ret = v4l2_subdev_call(subdev, video, s_stream, mode); 757 ret = v4l2_subdev_call(subdev, video, s_stream, mode);
758 if (ret < 0 && ret != -ENOIOCTLCMD) 758 if (ret < 0 && ret != -ENOIOCTLCMD)
759 break; 759 return ret;
760 760
761 if (subdev == &isp->isp_ccdc.subdev) { 761 if (subdev == &isp->isp_ccdc.subdev) {
762 v4l2_subdev_call(&isp->isp_aewb.subdev, video, 762 v4l2_subdev_call(&isp->isp_aewb.subdev, video,
@@ -777,7 +777,7 @@ static int isp_pipeline_enable(struct isp_pipeline *pipe,
777 if (pipe->do_propagation && mode == ISP_PIPELINE_STREAM_SINGLESHOT) 777 if (pipe->do_propagation && mode == ISP_PIPELINE_STREAM_SINGLESHOT)
778 atomic_inc(&pipe->frame_number); 778 atomic_inc(&pipe->frame_number);
779 779
780 return ret; 780 return 0;
781} 781}
782 782
783static int isp_pipeline_wait_resizer(struct isp_device *isp) 783static int isp_pipeline_wait_resizer(struct isp_device *isp)