To work with multiplexed streams the pad and stream aware s_stream
operation needs to be used.

Signed-off-by: Niklas Söderlund <niklas.soderlund+rene...@ragnatech.se>
---
 drivers/media/platform/rcar-vin/rcar-dma.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/rcar-vin/rcar-dma.c 
b/drivers/media/platform/rcar-vin/rcar-dma.c
index cf30e5fceb1d493a..8435491535060eae 100644
--- a/drivers/media/platform/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/rcar-vin/rcar-dma.c
@@ -1180,7 +1180,7 @@ static int rvin_set_stream(struct rvin_dev *vin, int on)
 
        if (!on) {
                media_pipeline_stop(vin->vdev.entity.pads);
-               return v4l2_subdev_call(sd, video, s_stream, 0);
+               return v4l2_subdev_call(sd, pad, s_stream, pad->index, 0, 0);
        }
 
        fmt.pad = pad->index;
@@ -1239,12 +1239,14 @@ static int rvin_set_stream(struct rvin_dev *vin, int on)
        if (media_pipeline_start(vin->vdev.entity.pads, pipe))
                return -EPIPE;
 
-       ret = v4l2_subdev_call(sd, video, s_stream, 1);
+       ret = v4l2_subdev_call(sd, pad, s_stream, pad->index, 0, 1);
        if (ret == -ENOIOCTLCMD)
                ret = 0;
        if (ret)
                media_pipeline_stop(vin->vdev.entity.pads);
 
+       vin_dbg(vin, "pad: %u stream: 0 enable: %d\n", pad->index, on);
+
        return ret;
 }
 
-- 
2.15.1

Reply via email to