media: i2c: st_mipid02: cascade s_stream call to the source subdev
authorAlain Volmat <alain.volmat@foss.st.com>
Fri, 21 Jul 2023 12:03:14 +0000 (14:03 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Thu, 10 Aug 2023 05:58:36 +0000 (07:58 +0200)
Cascade the s_stream call to the source subdev whenever the bridge
streaming is enable / disabled.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Reviewed-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/i2c/st-mipid02.c

index 782633b9e11e20ac16feec918dd8b69b53ea7178..fa27638edc072341cdc9f5d6e7c215347879926c 100644 (file)
@@ -545,7 +545,14 @@ static int mipid02_configure_from_code(struct mipid02_dev *bridge)
 static int mipid02_stream_disable(struct mipid02_dev *bridge)
 {
        struct i2c_client *client = bridge->i2c_client;
-       int ret;
+       int ret = -EINVAL;
+
+       if (!bridge->s_subdev)
+               goto error;
+
+       ret = v4l2_subdev_call(bridge->s_subdev, video, s_stream, 0);
+       if (ret)
+               goto error;
 
        /* Disable all lanes */
        ret = mipid02_write_reg(bridge, MIPID02_CLK_LANE_REG1, 0);
@@ -633,6 +640,10 @@ static int mipid02_stream_enable(struct mipid02_dev *bridge)
        if (ret)
                goto error;
 
+       ret = v4l2_subdev_call(bridge->s_subdev, video, s_stream, 1);
+       if (ret)
+               goto error;
+
        return 0;
 
 error: