[media] marvell-cam: Don't signal multiple frame completions in scatter/gather mode
authorJonathan Corbet <corbet@lwn.net>
Fri, 16 Mar 2012 22:14:54 +0000 (19:14 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 20 Mar 2012 01:16:29 +0000 (22:16 -0300)
There is only one frame known to the DMA engine in scatter/gather mode, but
it still tells us that any or all of frames 1-3 are done at each completion
interrupt.  Avoid the creation of junk frames by being sure to only
"complete" one on each interrupt.

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/marvell-ccic/mcam-core.c

index e46a72af63c40c81c701752c9e2cd153c18ae5e8..036db274640734e604c0d10029e352b4b055ccb1 100644 (file)
@@ -1697,6 +1697,8 @@ int mccic_irq(struct mcam_camera *cam, unsigned int irqs)
                if (irqs & (IRQ_EOF0 << frame)) {
                        mcam_frame_complete(cam, frame);
                        handled = 1;
+                       if (cam->buffer_mode == B_DMA_sg)
+                               break;
                }
        /*
         * If a frame starts, note that we have DMA active.  This