summaryrefslogtreecommitdiff
path: root/isp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2011-10-15 13:38:09 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2011-10-15 15:59:45 +0200
commit31cd1a6b06d5e29098d70840207846b361cee581 (patch)
tree8a12f4788ee0ba624ebbdb938fa87490e76e7de7 /isp
parent46b4b73123bd4ae12836418f5072e4a71c812940 (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.c26
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;
}