[media] v4l: omap4iss: isif: Ignore VD0 interrupts when no buffer is available
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Thu, 29 Aug 2013 10:40:37 +0000 (07:40 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Wed, 11 Dec 2013 08:57:23 +0000 (06:57 -0200)
The ISIF generates VD0 interrupts even when writes are disabled.
Disabling the ISIF when no buffer is available is thus not be enough, we
need to handle the situation explicitly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/staging/media/omap4iss/iss_ipipeif.c

index 3d6cc88a3dddd3277e6921b4f8d1cd9e575c5a0a..47fb1d6f944436735324097e54a354ddc8ce752d 100644 (file)
@@ -235,6 +235,13 @@ static void ipipeif_isr_buffer(struct iss_ipipeif_device *ipipeif)
 {
        struct iss_buffer *buffer;
 
+       /* The ISIF generates VD0 interrupts even when writes are disabled.
+        * deal with it anyway). Disabling the ISIF when no buffer is available
+        * is thus not be enough, we need to handle the situation explicitly.
+        */
+       if (list_empty(&ipipeif->video_out.dmaqueue))
+               return;
+
        ipipeif_write_enable(ipipeif, 0);
 
        buffer = omap4iss_video_buffer_next(&ipipeif->video_out);