Cascade the s_stream call to the source subdev whenever the bridge
streaming is enable / disabled.
Signed-off-by: Alain Volmat <[email protected]>
---
drivers/media/i2c/st-mipid02.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
index 906553a28676..703d2f06f552 100644
--- a/drivers/media/i2c/st-mipid02.c
+++ b/drivers/media/i2c/st-mipid02.c
@@ -547,6 +547,13 @@ static int mipid02_stream_disable(struct mipid02_dev *bridge)
struct i2c_client *client = bridge->i2c_client;
int ret;
+ 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);
if (ret)
@@ -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:
--
2.25.1
On 11/07/2023 14:32, Alain Volmat wrote:
> Cascade the s_stream call to the source subdev whenever the bridge
> streaming is enable / disabled.
>
> Signed-off-by: Alain Volmat <[email protected]>
> ---
> drivers/media/i2c/st-mipid02.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
> index 906553a28676..703d2f06f552 100644
> --- a/drivers/media/i2c/st-mipid02.c
> +++ b/drivers/media/i2c/st-mipid02.c
> @@ -547,6 +547,13 @@ static int mipid02_stream_disable(struct mipid02_dev *bridge)
> struct i2c_client *client = bridge->i2c_client;
> int ret;
>
> + if (!bridge->s_subdev)
> + goto error;
I'm getting this compiler warning:
media-git/drivers/media/i2c/st-mipid02.c: In function 'mipid02_stream_disable':
media-git/drivers/media/i2c/st-mipid02.c:568:12: warning: 'ret' may be used uninitialized [-Wmaybe-uninitialized]
568 | if (ret)
| ^
media-git/drivers/media/i2c/st-mipid02.c:548:13: note: 'ret' was declared here
548 | int ret;
| ^~~
I'm dropping this series, waiting for a v2.
Regards,
Hans
> +
> + 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);
> if (ret)
> @@ -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:
Hi Hans,
On Wed, Jul 19, 2023 at 12:26:37PM +0200, Hans Verkuil wrote:
> On 11/07/2023 14:32, Alain Volmat wrote:
> > Cascade the s_stream call to the source subdev whenever the bridge
> > streaming is enable / disabled.
> >
> > Signed-off-by: Alain Volmat <[email protected]>
> > ---
> > drivers/media/i2c/st-mipid02.c | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
> > index 906553a28676..703d2f06f552 100644
> > --- a/drivers/media/i2c/st-mipid02.c
> > +++ b/drivers/media/i2c/st-mipid02.c
> > @@ -547,6 +547,13 @@ static int mipid02_stream_disable(struct mipid02_dev *bridge)
> > struct i2c_client *client = bridge->i2c_client;
> > int ret;
> >
> > + if (!bridge->s_subdev)
> > + goto error;
>
> I'm getting this compiler warning:
>
> media-git/drivers/media/i2c/st-mipid02.c: In function 'mipid02_stream_disable':
> media-git/drivers/media/i2c/st-mipid02.c:568:12: warning: 'ret' may be used uninitialized [-Wmaybe-uninitialized]
> 568 | if (ret)
> | ^
> media-git/drivers/media/i2c/st-mipid02.c:548:13: note: 'ret' was declared here
> 548 | int ret;
> | ^~~
>
> I'm dropping this series, waiting for a v2.
Indeed, this was a real issue. I added KCFLAGS=-Wmaybe-uninitialized
in my build command line to spot thoses issues from now on.
v2 posted with the fix.
>
> Regards,
>
> Hans
Regards,
Alain
>
> > +
> > + 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);
> > if (ret)
> > @@ -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:
>