v4l: vsp1: wpf: Clear RPF to WPF association at stream off time
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Wed, 28 May 2014 16:10:33 +0000 (13:10 -0300)
committerStephane Desneux <stephane.desneux@open.eurogiciel.org>
Wed, 4 Feb 2015 10:15:40 +0000 (11:15 +0100)
The VSP1 stores the video pipelines' input (RPF) to output (WPF)
mappings in a WPF register. An RPF must never be associated with
multiple WPFs, even if all of those WPFs but one are unused, otherwise
the hardware won't function properly.

The driver doesn't ensure this correctly as it never clears the
mappings. An RPF used with one WPF and later with a different WPF will
lead to malfunction, as it will be associated with two WPFs. Clear the
mappings at stream off time to fix this.

Reported-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
(cherry picked from commit d6c71e8ceb9fe79aaf9c2f73af5cb2ef93526b0d)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/media/platform/vsp1/vsp1_wpf.c

index 591f09ca3affd8344849befe666877c43cf05759..d33086530778f8d469f018fc16546476c6f1875f 100644 (file)
@@ -54,6 +54,7 @@ static int wpf_s_stream(struct v4l2_subdev *subdev, int enable)
 
        if (!enable) {
                vsp1_write(vsp1, VI6_WPF_IRQ_ENB(wpf->entity.index), 0);
+               vsp1_wpf_write(wpf, VI6_WPF_SRCRPF, 0);
                return 0;
        }