diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2011-10-15 13:38:09 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2011-10-15 15:59:45 +0200 |
commit | 31cd1a6b06d5e29098d70840207846b361cee581 (patch) | |
tree | 8a12f4788ee0ba624ebbdb938fa87490e76e7de7 /isp | |
parent | 46b4b73123bd4ae12836418f5072e4a71c812940 (diff) |
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 <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'isp')
-rw-r--r-- | isp/omap3isp.c | 26 |
1 files 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; } |