media: vsp1: Simplify DRM UIF handling
authorKieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Fri, 18 Jun 2021 19:09:05 +0000 (21:09 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 8 Oct 2021 09:26:13 +0000 (11:26 +0200)
In commit 6732f3139380 ("media: v4l: vsp1: Fix uif null pointer access")
the handling of the UIF was over complicated, and the patch applied
before review.

Simplify it to keep the conditionals small.

Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/vsp1/vsp1_drm.c

index 06f74d410973eb3284142f66c261305404deda61..0c2507dc03d6cbe1340a83137d2e874cbec09306 100644 (file)
@@ -455,6 +455,10 @@ static int vsp1_du_pipeline_setup_inputs(struct vsp1_device *vsp1,
                dev_err(vsp1->dev, "%s: failed to setup UIF after %s\n",
                        __func__, BRX_NAME(pipe->brx));
 
+       /* If the DRM pipe does not have a UIF there is nothing we can update. */
+       if (!drm_pipe->uif)
+               return 0;
+
        /*
         * If the UIF is not in use schedule it for removal by setting its pipe
         * pointer to NULL, vsp1_du_pipeline_configure() will remove it from the
@@ -462,9 +466,9 @@ static int vsp1_du_pipeline_setup_inputs(struct vsp1_device *vsp1,
         * make sure it is present in the pipeline's list of entities if it
         * wasn't already.
         */
-       if (drm_pipe->uif && !use_uif) {
+       if (!use_uif) {
                drm_pipe->uif->pipe = NULL;
-       } else if (drm_pipe->uif && !drm_pipe->uif->pipe) {
+       } else if (!drm_pipe->uif->pipe) {
                drm_pipe->uif->pipe = pipe;
                list_add_tail(&drm_pipe->uif->list_pipe, &pipe->entities);
        }