From: Lad, Prabhakar Date: Sun, 8 Mar 2015 14:40:45 +0000 (-0300) Subject: [media] media: blackfin: bfin_capture: make sure all buffers are returned on stop_str... X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=2bf34b2f0952eeb15f10434ce0d1ee7356c005ff;p=linux-beck.git [media] media: blackfin: bfin_capture: make sure all buffers are returned on stop_streaming() callback In start_streaming() callback the buffer is removed from the dma_queue list and assigned to cur_frm, this patch makes sure that is returned to vb2 core with VB2_BUF_STATE_ERROR flag. Signed-off-by: Lad, Prabhakar Tested-by: Scott Jiang Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/platform/blackfin/bfin_capture.c b/drivers/media/platform/blackfin/bfin_capture.c index 2a9e93304a20..f2b1a23f26c4 100644 --- a/drivers/media/platform/blackfin/bfin_capture.c +++ b/drivers/media/platform/blackfin/bfin_capture.c @@ -374,6 +374,9 @@ static void bcap_stop_streaming(struct vb2_queue *vq) "stream off failed in subdev\n"); /* release all active buffers */ + if (bcap_dev->cur_frm) + vb2_buffer_done(&bcap_dev->cur_frm->vb, VB2_BUF_STATE_ERROR); + while (!list_empty(&bcap_dev->dma_queue)) { bcap_dev->cur_frm = list_entry(bcap_dev->dma_queue.next, struct bcap_buffer, list);