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>
---
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
Hi Alain, Thank you for your patch. LGTM. Reviewed-By: Benjamin Mugnier <benjamin.mugnier@foss.st.com> On 7/11/23 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 <alain.volmat@foss.st.com> > --- > 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: -- Regards, Benjamin
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 <alain.volmat@foss.st.com>
> ---
> 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 <alain.volmat@foss.st.com> > > --- > > 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: >
© 2016 - 2026 Red Hat, Inc.