summaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
authorAlain Volmat <alain.volmat@foss.st.com>2023-11-25 21:20:50 +0300
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2023-12-04 12:37:47 +0300
commitc26eb0f323419abc9ca94d2c56546511e23692bb (patch)
tree92413eb5aa2add6ab79baaebdf0736389ffbe3ef /drivers/media
parent046ee0e2a4d602268a49be0d77df8c85559015e3 (diff)
downloadlinux-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>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/i2c/st-mipid02.c27
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 = {