drivers/media/platform/rcar_fdp1.c:1972:2: warning: initialization from 
incompatible pointer type
      .queue_setup  = fdp1_queue_setup,
      ^
    drivers/media/platform/rcar_fdp1.c:1972:2: warning: (near initialization 
for 'fdp1_qops.queue_setup')
    drivers/media/platform/rcar_fdp1.c: In function 'fdp1_probe':
    drivers/media/platform/rcar_fdp1.c:2264:2: error: implicit declaration of 
function 'vb2_dma_contig_init_ctx' [-Werror=implicit-function-declaration]
      fdp1->alloc_ctx = vb2_dma_contig_init_ctx(&pdev->dev);
      ^
    drivers/media/platform/rcar_fdp1.c:2264:18: warning: assignment makes 
pointer from integer without a cast
      fdp1->alloc_ctx = vb2_dma_contig_init_ctx(&pdev->dev);
                      ^
    drivers/media/platform/rcar_fdp1.c:2331:2: error: implicit declaration of 
function 'vb2_dma_contig_cleanup_ctx' [-Werror=implicit-function-declaration]
      vb2_dma_contig_cleanup_ctx(fdp1->alloc_ctx);
      ^

Commit 36c0f8b32c4bd4f6 ("[media] vb2: replace void *alloc_ctxs by
struct device *alloc_devs") removed the vb2_dma_contig_init_ctx() and
vb2_dma_contig_cleanup_ctx() functions, and changed the prototype of
vb2_ops.queue_setup().

To fix this:
  - Update the signature of fdp1_queue_setup(),
  - Convert the FDP1 driver to use the new vb2_queue dev field, cfr.
    commit 53ddcc683faef8c7 ("[media] media/platform: convert drivers to
    use the new vb2_queue dev field").

Signed-off-by: Geert Uytterhoeven <geert+rene...@glider.be>
---
To be folded into "[PATCH v2] v4l: platform: Add Renesas R-Car FDP1
Driver".
---
 drivers/media/platform/rcar_fdp1.c | 26 ++++++--------------------
 1 file changed, 6 insertions(+), 20 deletions(-)

diff --git a/drivers/media/platform/rcar_fdp1.c 
b/drivers/media/platform/rcar_fdp1.c
index c7280183262a3046..a2587745ca68dedb 100644
--- a/drivers/media/platform/rcar_fdp1.c
+++ b/drivers/media/platform/rcar_fdp1.c
@@ -570,7 +570,6 @@ struct fdp1_dev {
        void __iomem            *regs;
        unsigned int            irq;
        struct device           *dev;
-       void                    *alloc_ctx;
 
        /* Job Queues */
        struct fdp1_job         jobs[FDP1_NUMBER_JOBS];
@@ -1788,7 +1787,8 @@ static const struct v4l2_ioctl_ops fdp1_ioctl_ops = {
 
 static int fdp1_queue_setup(struct vb2_queue *vq,
                                unsigned int *nbuffers, unsigned int *nplanes,
-                               unsigned int sizes[], void *alloc_ctxs[])
+                               unsigned int sizes[],
+                               struct device *alloc_ctxs[])
 {
        struct fdp1_ctx *ctx = vb2_get_drv_priv(vq);
        struct fdp1_q_data *q_data;
@@ -1800,18 +1800,13 @@ static int fdp1_queue_setup(struct vb2_queue *vq,
                if (*nplanes > FDP1_MAX_PLANES)
                        return -EINVAL;
 
-               for (i = 0; i < *nplanes; i++)
-                       alloc_ctxs[i] = ctx->fdp1->alloc_ctx;
-
                return 0;
        }
 
        *nplanes = q_data->format.num_planes;
 
-       for (i = 0; i < *nplanes; i++) {
+       for (i = 0; i < *nplanes; i++)
                sizes[i] = q_data->format.plane_fmt[i].sizeimage;
-               alloc_ctxs[i] = ctx->fdp1->alloc_ctx;
-       }
 
        return 0;
 }
@@ -1992,6 +1987,7 @@ static int queue_init(void *priv, struct vb2_queue 
*src_vq,
        src_vq->mem_ops = &vb2_dma_contig_memops;
        src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
        src_vq->lock = &ctx->fdp1->dev_mutex;
+       src_vq->dev = ctx->fdp1->dev;
 
        ret = vb2_queue_init(src_vq);
        if (ret)
@@ -2005,6 +2001,7 @@ static int queue_init(void *priv, struct vb2_queue 
*src_vq,
        dst_vq->mem_ops = &vb2_dma_contig_memops;
        dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
        dst_vq->lock = &ctx->fdp1->dev_mutex;
+       dst_vq->dev = ctx->fdp1->dev;
 
        return vb2_queue_init(dst_vq);
 }
@@ -2260,18 +2257,11 @@ static int fdp1_probe(struct platform_device *pdev)
        fdp1->clk_rate = clk_get_rate(clk);
        clk_put(clk);
 
-       /* Memory allocation contexts */
-       fdp1->alloc_ctx = vb2_dma_contig_init_ctx(&pdev->dev);
-       if (IS_ERR(fdp1->alloc_ctx)) {
-               v4l2_err(&fdp1->v4l2_dev, "Failed to init memory allocator\n");
-               return PTR_ERR(fdp1->alloc_ctx);
-       }
-
        /* V4L2 device registration */
        ret = v4l2_device_register(&pdev->dev, &fdp1->v4l2_dev);
        if (ret) {
                v4l2_err(&fdp1->v4l2_dev, "Failed to register video device\n");
-               goto vb2_allocator_rollback;
+               return ret;
        }
 
        /* M2M registration */
@@ -2327,9 +2317,6 @@ release_m2m:
 unreg_dev:
        v4l2_device_unregister(&fdp1->v4l2_dev);
 
-vb2_allocator_rollback:
-       vb2_dma_contig_cleanup_ctx(fdp1->alloc_ctx);
-
        return ret;
 }
 
@@ -2340,7 +2327,6 @@ static int fdp1_remove(struct platform_device *pdev)
        v4l2_m2m_release(fdp1->m2m_dev);
        video_unregister_device(&fdp1->vfd);
        v4l2_device_unregister(&fdp1->v4l2_dev);
-       vb2_dma_contig_cleanup_ctx(fdp1->alloc_ctx);
        pm_runtime_disable(&pdev->dev);
 
        return 0;
-- 
1.9.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