[media] v4l: vsp1: Disconnect unused RPFs from the DRM pipeline
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 10 Sep 2015 18:56:29 +0000 (15:56 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Fri, 19 Feb 2016 11:30:20 +0000 (09:30 -0200)
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/platform/vsp1/vsp1_drm.c

index ac81ff10c339d1afb60a5a78f1c2cbd3effc22ea..a918bb4ab46cc960ee2140ff4f432734c9ec06a1 100644 (file)
@@ -38,13 +38,17 @@ static int vsp1_drm_pipeline_run(struct vsp1_pipeline *pipe)
                struct vsp1_entity *entity;
 
                list_for_each_entry(entity, &pipe->entities, list_pipe) {
-                       /* Skip unused RPFs. */
+                       /* Disconnect unused RPFs from the pipeline. */
                        if (entity->type == VSP1_ENTITY_RPF) {
                                struct vsp1_rwpf *rpf =
                                        to_rwpf(&entity->subdev);
 
-                               if (!pipe->inputs[rpf->entity.index])
+                               if (!pipe->inputs[rpf->entity.index]) {
+                                       vsp1_write(entity->vsp1,
+                                                  entity->route->reg,
+                                                  VI6_DPR_NODE_UNUSED);
                                        continue;
+                               }
                        }
 
                        vsp1_entity_route_setup(entity);