[media] v4l: vsp1: Fix routing cleanup when stopping the stream
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Mon, 23 Jun 2014 21:40:49 +0000 (18:40 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Thu, 17 Jul 2014 15:44:49 +0000 (12:44 -0300)
Commit d9b45ed3d8b75e8cf38c8cd1563c29217eecba27 ("v4l: vsp1: Support
multi-input entities") reworked pipeline routing configuration and
introduced a bug by writing to the entities routing registers without
first checking whether the entity had a routing register. This results
in overwriting the value at offset 0 of the device register space when
stopping the stream.

Fix this by skipping routing register write for entities without a
routing register.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/platform/vsp1/vsp1_video.c

index 677e3aa04eeeba137802047d8e1deef07c73785d..c717e288d0ee2b3c49c28353f8a9ab96c3eceec1 100644 (file)
@@ -479,7 +479,7 @@ static int vsp1_pipeline_stop(struct vsp1_pipeline *pipe)
        ret = ret == 0 ? -ETIMEDOUT : 0;
 
        list_for_each_entry(entity, &pipe->entities, list_pipe) {
-               if (entity->route)
+               if (entity->route && entity->route->reg)
                        vsp1_write(entity->vsp1, entity->route->reg,
                                   VI6_DPR_NODE_UNUSED);