[media] marvell-cam: ensure that the camera stops when requested
[deliverable/linux.git] / drivers / media / video / marvell-ccic / mcam-core.c
index 37d20e73908a24402a933740b68d4463532e64eb..35cd89d3e6768503d9ef3043b51468dc4d621fd9 100644 (file)
@@ -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)
This page took 0.027757 seconds and 5 git commands to generate.