Commit f4706d6e authored by Philipp Zabel's avatar Philipp Zabel Committed by Mauro Carvalho Chehab

[media] coda: issue seq_end_work during stop_streaming

This patch queues seq_end_work and flushes the queue during stop_streaming
and clears the ctx->initialized flag. This allows to start streaming again
after stopping streaming without releasing the context.
Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: default avatarKamil Debski <k.debski@samsung.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 6dd5ef5b
...@@ -1323,6 +1323,10 @@ static void coda_stop_streaming(struct vb2_queue *q) ...@@ -1323,6 +1323,10 @@ static void coda_stop_streaming(struct vb2_queue *q)
if (!ctx->streamon_out && !ctx->streamon_cap) { if (!ctx->streamon_out && !ctx->streamon_cap) {
struct coda_buffer_meta *meta; struct coda_buffer_meta *meta;
if (ctx->ops->seq_end_work) {
queue_work(dev->workqueue, &ctx->seq_end_work);
flush_work(&ctx->seq_end_work);
}
mutex_lock(&ctx->bitstream_mutex); mutex_lock(&ctx->bitstream_mutex);
while (!list_empty(&ctx->buffer_meta_list)) { while (!list_empty(&ctx->buffer_meta_list)) {
meta = list_first_entry(&ctx->buffer_meta_list, meta = list_first_entry(&ctx->buffer_meta_list,
...@@ -1333,6 +1337,7 @@ static void coda_stop_streaming(struct vb2_queue *q) ...@@ -1333,6 +1337,7 @@ static void coda_stop_streaming(struct vb2_queue *q)
mutex_unlock(&ctx->bitstream_mutex); mutex_unlock(&ctx->bitstream_mutex);
kfifo_init(&ctx->bitstream_fifo, kfifo_init(&ctx->bitstream_fifo,
ctx->bitstream.vaddr, ctx->bitstream.size); ctx->bitstream.vaddr, ctx->bitstream.size);
ctx->initialized = 0;
ctx->runcounter = 0; ctx->runcounter = 0;
ctx->aborting = 0; ctx->aborting = 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment