[media] v4l: omap4iss: Remove bogus frame number propagation
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Mon, 7 Jul 2014 21:31:24 +0000 (18:31 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 23 Dec 2014 10:47:11 +0000 (08:47 -0200)
Frame number propagation tries to increase the robustness of the frame
number counter by using sources less likely to be missed than the end of
frame interrupts, such as hardware frame counters or start of frame
interrupts.

Increasing the frame number in the IPIPE ISIF and resizer end of frame
interrupt handlers is pointless as it doesn't bring any improvement.
Don't do it.

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

index 32a748398cedf6b050e8262162b7db94be2dbeec..3943fae699ee7f1bdb4c850552c0a3544afa738c 100644 (file)
@@ -241,23 +241,6 @@ static void ipipeif_isr_buffer(struct iss_ipipeif_device *ipipeif)
        ipipeif_write_enable(ipipeif, 1);
 }
 
-/*
- * ipipeif_isif0_isr - Handle ISIF0 event
- * @ipipeif: Pointer to ISP IPIPEIF device.
- *
- * Executes LSC deferred enablement before next frame starts.
- */
-static void ipipeif_isif0_isr(struct iss_ipipeif_device *ipipeif)
-{
-       struct iss_pipeline *pipe =
-                            to_iss_pipeline(&ipipeif->subdev.entity);
-       if (pipe->do_propagation)
-               atomic_inc(&pipe->frame_number);
-
-       if (ipipeif->output & IPIPEIF_OUTPUT_MEMORY)
-               ipipeif_isr_buffer(ipipeif);
-}
-
 /*
  * omap4iss_ipipeif_isr - Configure ipipeif during interframe time.
  * @ipipeif: Pointer to ISP IPIPEIF device.
@@ -269,8 +252,9 @@ void omap4iss_ipipeif_isr(struct iss_ipipeif_device *ipipeif, u32 events)
                                             &ipipeif->stopping))
                return;
 
-       if (events & ISP5_IRQ_ISIF_INT(0))
-               ipipeif_isif0_isr(ipipeif);
+       if ((events & ISP5_IRQ_ISIF_INT(0)) &&
+           (ipipeif->output & IPIPEIF_OUTPUT_MEMORY))
+               ipipeif_isr_buffer(ipipeif);
 }
 
 /* -----------------------------------------------------------------------------
index 88522a8cdf5673918c8e2d89610b142b4f9639bd..3ab972818f1bf279e7063776519f3ebc8a50ad5f 100644 (file)
@@ -282,22 +282,6 @@ static void resizer_isr_buffer(struct iss_resizer_device *resizer)
        resizer_enable(resizer, 1);
 }
 
-/*
- * resizer_isif0_isr - Handle ISIF0 event
- * @resizer: Pointer to ISP RESIZER device.
- *
- * Executes LSC deferred enablement before next frame starts.
- */
-static void resizer_int_dma_isr(struct iss_resizer_device *resizer)
-{
-       struct iss_pipeline *pipe =
-                            to_iss_pipeline(&resizer->subdev.entity);
-       if (pipe->do_propagation)
-               atomic_inc(&pipe->frame_number);
-
-       resizer_isr_buffer(resizer);
-}
-
 /*
  * omap4iss_resizer_isr - Configure resizer during interframe time.
  * @resizer: Pointer to ISP RESIZER device.
@@ -322,7 +306,7 @@ void omap4iss_resizer_isr(struct iss_resizer_device *resizer, u32 events)
                return;
 
        if (events & ISP5_IRQ_RSZ_INT_DMA)
-               resizer_int_dma_isr(resizer);
+               resizer_isr_buffer(resizer);
 }
 
 /* -----------------------------------------------------------------------------