Drivers are no longer required to call vb2_buffer_done() for all buffers they have queued in stop_streaming(). The return value for stop_streaming() has also been removed. Signed-off-by: Pawel Osciak <pawel@xxxxxxxxxx> --- drivers/media/video/vivi.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c index 2238a61..fcf11d7 100644 --- a/drivers/media/video/vivi.c +++ b/drivers/media/video/vivi.c @@ -627,8 +627,8 @@ static void vivi_stop_generating(struct vivi_dev *dev) } /* - * Typical driver might need to wait here until dma engine stops. - * In this case we can abort imiedetly, so it's just a noop. + * A typical driver might need to stop the hardware here and wait + * for any ongoing operations to finish. */ /* Release all active buffers */ @@ -636,7 +636,6 @@ static void vivi_stop_generating(struct vivi_dev *dev) struct vivi_buffer *buf; buf = list_entry(dma_q->active.next, struct vivi_buffer, list); list_del(&buf->list); - vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR); dprintk(dev, 2, "[%p/%d] done\n", buf, buf->vb.v4l2_buf.index); } } @@ -766,13 +765,11 @@ static int start_streaming(struct vb2_queue *vq) return vivi_start_generating(dev); } -/* abort streaming and wait for last buffer */ -static int stop_streaming(struct vb2_queue *vq) +static void stop_streaming(struct vb2_queue *vq) { struct vivi_dev *dev = vb2_get_drv_priv(vq); dprintk(dev, 1, "%s\n", __func__); vivi_stop_generating(dev); - return 0; } static void vivi_lock(struct vb2_queue *vq) -- 1.7.4.2 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html