From 31cd1a6b06d5e29098d70840207846b361cee581 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 15 Oct 2011 13:38:09 +0200 Subject: omap3isp: Setup running and queued fields in omap3_isp_video_*() Instead of setting the struct omap3_isp_video running and queued fields manually before or after calling omap3_isp_video_start() and omap3_isp_video_stop(), handle those fields in the functions directly. Signed-off-by: Laurent Pinchart --- isp/omap3isp.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/isp/omap3isp.c b/isp/omap3isp.c index a85db10..3ecf6b0 100644 --- a/isp/omap3isp.c +++ b/isp/omap3isp.c @@ -140,11 +140,21 @@ static const char *entity_name(struct omap3_isp_entity *entity) static int omap3_isp_video_start(struct omap3_isp_video *video) { - return v4l2_stream_on(video->video); + int ret; + + ret = v4l2_stream_on(video->video); + if (ret < 0) + return ret; + + video->running = true; + return 0; } static int omap3_isp_video_stop(struct omap3_isp_video *video) { + video->queued = 0; + video->running = false; + return v4l2_stream_off(video->video); } @@ -261,9 +271,6 @@ static int omap3_isp_pool_start(struct omap3_isp_pool *pool) return ret; } - pool->input->running = true; - pool->output->running = true; - return 0; } @@ -281,11 +288,6 @@ static void omap3_isp_pool_stop(struct omap3_isp_pool *pool) ret = omap3_isp_video_stop(pool->output); if (ret < 0) printf("error: pool: streamoff failed for output (%d)\n", ret); - - pool->input->queued = 0; - pool->input->running = false; - pool->output->queued = 0; - pool->output->running = false; } static int omap3_isp_pool_alloc_buffers(struct omap3_isp_pool *pool) @@ -915,7 +917,6 @@ int omap3_isp_viewfinder_start(struct omap3_isp_device *isp) return ret; } - isp->viewfinder.output->running = true; return 0; } @@ -937,8 +938,6 @@ int omap3_isp_viewfinder_stop(struct omap3_isp_device *isp) list_for_each_entry(pool, &isp->viewfinder.pools, list) omap3_isp_pool_stop(pool); - isp->viewfinder.output->queued = 0; - isp->viewfinder.output->running = false; return 0; } @@ -1137,8 +1136,6 @@ static void omap3_isp_snapshot_event(void *priv) return; } - isp->snapshot.output->running = false; - isp->ops->snapshot_ready(isp, &buffer); /* Resume the viewfinder. */ @@ -1195,7 +1192,6 @@ int omap3_isp_snapshot_capture(struct omap3_isp_device *isp) return ret; } - isp->snapshot.output->running = true; return 0; } -- cgit v1.2.3