The ISP driver release the last buffer (waking up the pending process)
before returning the next buffer to the caller. This is done on the VD0
interrupt handler. But, by the time the CCDC is executing the VD0 interrupt
handler some ISP registers like CCDC_SDR_ADDR are shadowed which means that
the values written to it will not take effect until the next frame starts.

We have to configure the CCDC during the processing of the current frame in
the VD1 interrupt handler. This means the next buffer obtaining and the
last buffer releasing occur at different moments. So we have to decouple
these two actions.

Signed-off-by: Javier Martinez Canillas <martinez.jav...@gmail.com>
---
 drivers/media/video/omap3isp/ispvideo.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/drivers/media/video/omap3isp/ispvideo.c 
b/drivers/media/video/omap3isp/ispvideo.c
index cc73375..c2d4cd9 100644
--- a/drivers/media/video/omap3isp/ispvideo.c
+++ b/drivers/media/video/omap3isp/ispvideo.c
@@ -635,10 +635,6 @@ struct isp_buffer *omap3isp_video_buffer_next(struct 
isp_video *video,
        else
                buf->vbuf.sequence = atomic_read(&pipe->frame_number);
 
-       buf->state = error ? ISP_BUF_STATE_ERROR : ISP_BUF_STATE_DONE;
-
-       wake_up(&buf->wait);
-
        if (list_empty(&video->dmaqueue)) {
                if (queue->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
                        state = ISP_PIPELINE_QUEUE_OUTPUT
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to