| From bf63282d61609dba60fcb18af5b593d91491d04a Mon Sep 17 00:00:00 2001 |
| From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> |
| Date: Mon, 23 Jun 2014 18:40:49 -0300 |
| Subject: [media] v4l: vsp1: Fix routing cleanup when stopping the stream |
| |
| 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> |
| (cherry picked from commit aaa48cbb098e13cf9c22066b8c65958a7243fb95) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/media/platform/vsp1/vsp1_video.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/media/platform/vsp1/vsp1_video.c b/drivers/media/platform/vsp1/vsp1_video.c |
| index 2fc67b6161f1..dcb11474f5bb 100644 |
| --- a/drivers/media/platform/vsp1/vsp1_video.c |
| +++ b/drivers/media/platform/vsp1/vsp1_video.c |
| @@ -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); |
| |
| -- |
| 2.1.2 |
| |