These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / media / platform / omap3isp / ispvideo.c
index d285af1..f4f5916 100644 (file)
@@ -320,7 +320,7 @@ isp_video_check_format(struct isp_video *video, struct isp_video_fh *vfh)
  */
 
 static int isp_video_queue_setup(struct vb2_queue *queue,
-                                const struct v4l2_format *fmt,
+                                const void *parg,
                                 unsigned int *count, unsigned int *num_planes,
                                 unsigned int sizes[], void *alloc_ctxs[])
 {
@@ -342,8 +342,9 @@ static int isp_video_queue_setup(struct vb2_queue *queue,
 
 static int isp_video_buffer_prepare(struct vb2_buffer *buf)
 {
+       struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(buf);
        struct isp_video_fh *vfh = vb2_get_drv_priv(buf->vb2_queue);
-       struct isp_buffer *buffer = to_isp_buffer(buf);
+       struct isp_buffer *buffer = to_isp_buffer(vbuf);
        struct isp_video *video = vfh->video;
        dma_addr_t addr;
 
@@ -363,7 +364,8 @@ static int isp_video_buffer_prepare(struct vb2_buffer *buf)
                return -EINVAL;
        }
 
-       vb2_set_plane_payload(&buffer->vb, 0, vfh->format.fmt.pix.sizeimage);
+       vb2_set_plane_payload(&buffer->vb.vb2_buf, 0,
+                             vfh->format.fmt.pix.sizeimage);
        buffer->dma = addr;
 
        return 0;
@@ -380,8 +382,9 @@ static int isp_video_buffer_prepare(struct vb2_buffer *buf)
  */
 static void isp_video_buffer_queue(struct vb2_buffer *buf)
 {
+       struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(buf);
        struct isp_video_fh *vfh = vb2_get_drv_priv(buf->vb2_queue);
-       struct isp_buffer *buffer = to_isp_buffer(buf);
+       struct isp_buffer *buffer = to_isp_buffer(vbuf);
        struct isp_video *video = vfh->video;
        struct isp_pipeline *pipe = to_isp_pipeline(&video->video.entity);
        enum isp_pipeline_state state;
@@ -392,7 +395,7 @@ static void isp_video_buffer_queue(struct vb2_buffer *buf)
        spin_lock_irqsave(&video->irqlock, flags);
 
        if (unlikely(video->error)) {
-               vb2_buffer_done(&buffer->vb, VB2_BUF_STATE_ERROR);
+               vb2_buffer_done(&buffer->vb.vb2_buf, VB2_BUF_STATE_ERROR);
                spin_unlock_irqrestore(&video->irqlock, flags);
                return;
        }
@@ -464,7 +467,7 @@ struct isp_buffer *omap3isp_video_buffer_next(struct isp_video *video)
        list_del(&buf->irqlist);
        spin_unlock_irqrestore(&video->irqlock, flags);
 
-       v4l2_get_timestamp(&buf->vb.v4l2_buf.timestamp);
+       v4l2_get_timestamp(&buf->vb.timestamp);
 
        /* Do frame number propagation only if this is the output video node.
         * Frame number either comes from the CSI receivers or it gets
@@ -473,15 +476,15 @@ struct isp_buffer *omap3isp_video_buffer_next(struct isp_video *video)
         * first, so the input number might lag behind by 1 in some cases.
         */
        if (video == pipe->output && !pipe->do_propagation)
-               buf->vb.v4l2_buf.sequence =
+               buf->vb.sequence =
                        atomic_inc_return(&pipe->frame_number);
        else
-               buf->vb.v4l2_buf.sequence = atomic_read(&pipe->frame_number);
+               buf->vb.sequence = atomic_read(&pipe->frame_number);
 
        if (pipe->field != V4L2_FIELD_NONE)
-               buf->vb.v4l2_buf.sequence /= 2;
+               buf->vb.sequence /= 2;
 
-       buf->vb.v4l2_buf.field = pipe->field;
+       buf->vb.field = pipe->field;
 
        /* Report pipeline errors to userspace on the capture device side. */
        if (video->type == V4L2_BUF_TYPE_VIDEO_CAPTURE && pipe->error) {
@@ -491,7 +494,7 @@ struct isp_buffer *omap3isp_video_buffer_next(struct isp_video *video)
                state = VB2_BUF_STATE_DONE;
        }
 
-       vb2_buffer_done(&buf->vb, state);
+       vb2_buffer_done(&buf->vb.vb2_buf, state);
 
        spin_lock_irqsave(&video->irqlock, flags);
 
@@ -546,7 +549,7 @@ void omap3isp_video_cancel_stream(struct isp_video *video)
                buf = list_first_entry(&video->dmaqueue,
                                       struct isp_buffer, irqlist);
                list_del(&buf->irqlist);
-               vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR);
+               vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_ERROR);
        }
 
        video->error = true;
@@ -1018,8 +1021,7 @@ isp_video_streamon(struct file *file, void *fh, enum v4l2_buf_type type)
 
        pipe->entities = 0;
 
-       if (video->isp->pdata && video->isp->pdata->set_constraints)
-               video->isp->pdata->set_constraints(video->isp, true);
+       /* TODO: Implement PM QoS */
        pipe->l3_ick = clk_get_rate(video->isp->clock[ISP_CLK_L3_ICK]);
        pipe->max_rate = pipe->l3_ick;
 
@@ -1100,8 +1102,7 @@ err_set_stream:
 err_check_format:
        media_entity_pipeline_stop(&video->video.entity);
 err_pipeline_start:
-       if (video->isp->pdata && video->isp->pdata->set_constraints)
-               video->isp->pdata->set_constraints(video->isp, false);
+       /* TODO: Implement PM QoS */
        /* The DMA queue must be emptied here, otherwise CCDC interrupts that
         * will get triggered the next time the CCDC is powered up will try to
         * access buffers that might have been freed but still present in the
@@ -1161,8 +1162,7 @@ isp_video_streamoff(struct file *file, void *fh, enum v4l2_buf_type type)
        video->queue = NULL;
        video->error = false;
 
-       if (video->isp->pdata && video->isp->pdata->set_constraints)
-               video->isp->pdata->set_constraints(video->isp, false);
+       /* TODO: Implement PM QoS */
        media_entity_pipeline_stop(&video->video.entity);
 
 done: