diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2011-08-24 04:07:01 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2011-10-14 13:11:02 +0200 |
commit | acd854a840dbc35796305247598853951ca921e0 (patch) | |
tree | b76eadaa45626f6b13df1b6820fa9ef7a0699c0e | |
parent | 9cf0fd2b07d3f3dc4c9ef0adcb0f0a3fb0f9fb0d (diff) |
omap3isp: Don't mess up with omap3_isp_video::dequeued in pools
The dequeued field is used to track buffers that have been dequeued from
the viewfinder and owned by the display. Those buffers will be handed
back by the display, so they must not be requeued on the spot when the
viewfinder is paused and resumed. Pools don't suffer from that problem,
so don't use the dequeued field.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r-- | isp/omap3isp.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/isp/omap3isp.c b/isp/omap3isp.c index 8db2726..3a75d91 100644 --- a/isp/omap3isp.c +++ b/isp/omap3isp.c @@ -158,15 +158,12 @@ static void omap3_isp_pool_event(struct omap3_isp_pool *pool, return; } - from->dequeued |= 1 << buffer.index; from->queued--; if (from->queued == 0) isp->ops->unwatch_fd(from->video->fd); /* Queue it on the other side */ - to->dequeued &= ~(1 << buffer.index); - if (to->queued == 0) { if (input) isp->ops->watch_fd(to->video->fd, OMAP3_ISP_EVENT_WRITE, @@ -205,9 +202,6 @@ static int omap3_isp_pool_start(struct omap3_isp_pool *pool) /* Queue all buffers for video capture. */ for (i = 0; i < pool->pool->nbufs; ++i) { - if (pool->input->dequeued & (1 << i)) - continue; - buffer.index = i; ret = v4l2_queue_buffer(pool->input->video, &buffer); |