@@ -513,8 +513,14 @@ static void rcar_vin_stop_streaming(struct vb2_queue *vq)
struct soc_camera_host *ici = to_soc_camera_host(icd->parent);
struct rcar_vin_priv *priv = ici->priv;
struct list_head *buf_head, *tmp;
+ int i;
spin_lock_irq(&priv->lock);
+
+ for (i = 0; i < vq->num_buffers; ++i)
+ if (vq->bufs[i]->state == VB2_BUF_STATE_ACTIVE)
+ vb2_buffer_done(vq->bufs[i], VB2_BUF_STATE_ERROR);
+
list_for_each_safe(buf_head, tmp, &priv->capture)
list_del_init(buf_head);
spin_unlock_irq(&priv->lock);