diff options
author | Alain Volmat <alain.volmat@foss.st.com> | 2023-11-25 21:20:50 +0300 |
---|---|---|
committer | Hans Verkuil <hverkuil-cisco@xs4all.nl> | 2023-12-04 12:37:47 +0300 |
commit | c26eb0f323419abc9ca94d2c56546511e23692bb (patch) | |
tree | 92413eb5aa2add6ab79baaebdf0736389ffbe3ef | |
parent | 046ee0e2a4d602268a49be0d77df8c85559015e3 (diff) | |
download | linux-c26eb0f323419abc9ca94d2c56546511e23692bb.tar.xz |
media: i2c: st-mipid02: don't keep track of streaming status
As explained in the following series, subdev do not have to keep
track of their streaming status:
https://lore.kernel.org/linux-media/20230914181704.4811-1-laurent.pinchart@ideasonboard.com/
Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
[Sakari Ailus: Remove redundant local variable in mipid02_set_fmt.]
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
-rw-r--r-- | drivers/media/i2c/st-mipid02.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c index b699f0b4efe7..0c5c5b848b0b 100644 --- a/drivers/media/i2c/st-mipid02.c +++ b/drivers/media/i2c/st-mipid02.c @@ -112,7 +112,6 @@ struct mipid02_dev { } r; /* lock to protect all members below */ struct mutex lock; - bool streaming; struct v4l2_mbus_framefmt fmt; }; @@ -629,22 +628,13 @@ static int mipid02_s_stream(struct v4l2_subdev *sd, int enable) struct i2c_client *client = bridge->i2c_client; int ret = 0; - dev_dbg(&client->dev, "%s : requested %d / current = %d", __func__, - enable, bridge->streaming); - mutex_lock(&bridge->lock); - - if (bridge->streaming == enable) - goto out; + dev_dbg(&client->dev, "%s : requested %d\n", __func__, enable); ret = enable ? mipid02_stream_enable(bridge) : mipid02_stream_disable(bridge); - if (!ret) - bridge->streaming = enable; - -out: - dev_dbg(&client->dev, "%s current now = %d / %d", __func__, - bridge->streaming, ret); - mutex_unlock(&bridge->lock); + if (ret) + dev_err(&client->dev, "failed to stream %s (%d)\n", + enable ? "enable" : "disable", ret); return ret; } @@ -765,7 +755,6 @@ static int mipid02_set_fmt(struct v4l2_subdev *sd, { struct mipid02_dev *bridge = to_mipid02_dev(sd); struct i2c_client *client = bridge->i2c_client; - int ret = 0; dev_dbg(&client->dev, "%s for %d", __func__, format->pad); @@ -777,20 +766,14 @@ static int mipid02_set_fmt(struct v4l2_subdev *sd, mutex_lock(&bridge->lock); - if (bridge->streaming) { - ret = -EBUSY; - goto error; - } - if (format->pad == MIPID02_SOURCE) mipid02_set_fmt_source(sd, sd_state, format); else mipid02_set_fmt_sink(sd, sd_state, format); -error: mutex_unlock(&bridge->lock); - return ret; + return 0; } static const struct v4l2_subdev_video_ops mipid02_video_ops = { |