Re: [PATCH v4 04/13] media: platform: pxa_camera: convert to vb2

From: Robert Jarzmik
Date: Tue Aug 16 2016 - 02:32:23 EST


Robert Jarzmik <robert.jarzmik@xxxxxxx> writes:

> Convert pxa_camera from videobuf to videobuf2.
>
> As the soc_camera was already compatible with videobuf2, the port is
> quite straightforward.
>
> The special case of this code in which the vb2 to prepare is "too
> big" in terms of size for the new capture format, the pxa_camera will
> fail.
>
> Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx>
...zip...

> diff --git a/drivers/media/platform/soc_camera/pxa_camera.c b/drivers/media/platform/soc_camera/pxa_camera.c
> index 2aaf4a8f71a0..5bf97c6b6810 100644
> --- a/drivers/media/platform/soc_camera/pxa_camera.c
> +++ b/drivers/media/platform/soc_camera/pxa_camera.c
> -static void pxa_camera_init_videobuf(struct videobuf_queue *q,
> - struct soc_camera_device *icd)
> +static int pxa_camera_init_videobuf2(struct vb2_queue *vq,
> + struct soc_camera_device *icd)
> {
> struct soc_camera_host *ici = to_soc_camera_host(icd->parent);
> struct pxa_camera_dev *pcdev = ici->priv;
> + int ret;
>
> - /*
> - * We must pass NULL as dev pointer, then all pci_* dma operations
> - * transform to normal dma_* ones.
> - */
> - videobuf_queue_sg_init(q, &pxa_videobuf_ops, NULL, &pcdev->lock,
> - V4L2_BUF_TYPE_VIDEO_CAPTURE, V4L2_FIELD_NONE,
> - sizeof(struct pxa_buffer), icd, &ici->host_lock);
> + vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
> + vq->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF;
> + vq->drv_priv = pcdev;
> + vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
> + vq->buf_struct_size = sizeof(struct pxa_buffer);
> + vq->dev = pcdev->v4l2_dev.dev;

This last line breaks bisectability as the v4l2_dev only appears in patch 10
... I'm afraid at least this will trigger a v5 respin of the patches.

Cheers.

--
Robert