Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ccd1809 authored by Andrey Utkin's avatar Andrey Utkin Committed by Mauro Carvalho Chehab
Browse files

[media] solo6x10: clean up properly in stop_streaming



This fixes warning from drivers/media/v4l2-core/videobuf2-core.c,
WARN_ON(atomic_read(&q->owned_by_drv_count)).

Signed-off-by: default avatarAndrey Utkin <andrey.krieger.utkin@gmail.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 85273c38
Loading
Loading
Loading
Loading
+11 −1
Original line number Original line Diff line number Diff line
@@ -781,9 +781,19 @@ static int solo_enc_start_streaming(struct vb2_queue *q, unsigned int count)
static void solo_enc_stop_streaming(struct vb2_queue *q)
static void solo_enc_stop_streaming(struct vb2_queue *q)
{
{
	struct solo_enc_dev *solo_enc = vb2_get_drv_priv(q);
	struct solo_enc_dev *solo_enc = vb2_get_drv_priv(q);
	unsigned long flags;


	spin_lock_irqsave(&solo_enc->av_lock, flags);
	solo_enc_off(solo_enc);
	solo_enc_off(solo_enc);
	INIT_LIST_HEAD(&solo_enc->vidq_active);
	while (!list_empty(&solo_enc->vidq_active)) {
		struct solo_vb2_buf *buf = list_entry(
				solo_enc->vidq_active.next,
				struct solo_vb2_buf, list);

		list_del(&buf->list);
		vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR);
	}
	spin_unlock_irqrestore(&solo_enc->av_lock, flags);
	solo_ring_stop(solo_enc->solo_dev);
	solo_ring_stop(solo_enc->solo_dev);
}
}