From: Laurent Pinchart Date: Sat, 13 Aug 2011 16:09:11 +0000 (-0300) Subject: [media] omap3isp: Don't fail streamon when the sensor doesn't implement s_stream X-Git-Tag: v3.2-rc1~112^2~121 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c62e2a19d2b8c884c6f3ab3bb29d6fde2e13d8ac;p=platform%2Fkernel%2Flinux-stable.git [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 Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/omap3isp/isp.c b/drivers/media/video/omap3isp/isp.c index 5cea2bb..fda4be0 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, struct media_pad *pad; struct v4l2_subdev *subdev; unsigned long flags; - int ret = 0; + int ret; spin_lock_irqsave(&pipe->lock, flags); pipe->state &= ~(ISP_PIPELINE_IDLE_INPUT | ISP_PIPELINE_IDLE_OUTPUT); @@ -756,7 +756,7 @@ static int isp_pipeline_enable(struct isp_pipeline *pipe, ret = v4l2_subdev_call(subdev, video, s_stream, mode); if (ret < 0 && ret != -ENOIOCTLCMD) - break; + return ret; if (subdev == &isp->isp_ccdc.subdev) { v4l2_subdev_call(&isp->isp_aewb.subdev, video, @@ -777,7 +777,7 @@ static int isp_pipeline_enable(struct isp_pipeline *pipe, if (pipe->do_propagation && mode == ISP_PIPELINE_STREAM_SINGLESHOT) atomic_inc(&pipe->frame_number); - return ret; + return 0; } static int isp_pipeline_wait_resizer(struct isp_device *isp)