From 7cc6a04fab0b9dc54ce086881b2023fde4229df5 Mon Sep 17 00:00:00 2001 From: Jonathan Corbet Date: Fri, 16 Mar 2012 19:14:50 -0300 Subject: [PATCH] --- yaml --- r: 295110 b: refs/heads/master c: 49df19ebcc60fd46f2587774cd6e224007af1116 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/video/marvell-ccic/mcam-core.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 221d272038ba..baa2ee54d016 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7e4964fa167709befde3ba3a7044080d7ca391d0 +refs/heads/master: 49df19ebcc60fd46f2587774cd6e224007af1116 diff --git a/trunk/drivers/media/video/marvell-ccic/mcam-core.c b/trunk/drivers/media/video/marvell-ccic/mcam-core.c index 37d20e73908a..35cd89d3e676 100644 --- a/trunk/drivers/media/video/marvell-ccic/mcam-core.c +++ b/trunk/drivers/media/video/marvell-ccic/mcam-core.c @@ -555,6 +555,11 @@ static void mcam_dma_sg_done(struct mcam_camera *cam, int frame) { struct mcam_vb_buffer *buf = cam->vb_bufs[0]; + /* + * If we're no longer supposed to be streaming, don't do anything. + */ + if (cam->state != S_STREAMING) + return; /* * Very Bad Not Good Things happen if you don't clear * C1_DESC_ENA before making any descriptor changes. @@ -922,7 +927,7 @@ static void mcam_vb_buf_queue(struct vb2_buffer *vb) spin_lock_irqsave(&cam->dev_lock, flags); start = (cam->state == S_BUFWAIT) && !list_empty(&cam->buffers); list_add(&mvb->queue, &cam->buffers); - if (test_bit(CF_SG_RESTART, &cam->flags)) + if (cam->state == S_STREAMING && test_bit(CF_SG_RESTART, &cam->flags)) mcam_sg_restart(cam); spin_unlock_irqrestore(&cam->dev_lock, flags); if (start)