From: johannes.goede@oss.qualcomm.com
To: Xiaolei Wang <xiaolei.wang@windriver.com>,
sakari.ailus@linux.intel.com, dave.stevenson@raspberrypi.com,
jacopo@jmondi.org, mchehab@kernel.org,
prabhakar.mahadev-lad.rj@bp.renesas.com,
laurent.pinchart@ideasonboard.com, hverkuil+cisco@kernel.org
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] media: i2c: ov5647: use our own mutex for the ctrl lock
Date: Mon, 1 Dec 2025 10:31:59 +0100 [thread overview]
Message-ID: <4553d9ed-ba4e-4f83-b48e-e819e7979293@oss.qualcomm.com> (raw)
In-Reply-To: <20251201000026.690298-1-xiaolei.wang@windriver.com>
Hi,
On 1-Dec-25 1:00 AM, Xiaolei Wang wrote:
> __v4l2_ctrl_handler_setup() and __v4l2_ctrl_modify_range()
> contains an assertion to verify that the v4l2_ctrl_handler::lock
> is held, as it should only be called when the lock has already
> been acquired. Therefore use our own mutex for the ctrl lock,
> otherwise a warning will be reported.
>
> Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com>
Generally speaking as a default locking setup for sensor
drivers we are moving in the direction of removing driver
specific locks and instead using the control-handler
lock everywhere, including using it as the active state
lock, see e.g. :
https://lore.kernel.org/linux-media/20250313184314.91410-14-hdegoede@redhat.com/
which sets ov02c10->sd.state_lock = ov02c10->ctrl_handler.lock
and then removes a bunch of manual mutex_lock / unlock calls
since all ops which get called with a sd_state will already
have the lock called when operating on the active_state
(and when called in try mode they should not touch anything
needing locking).
Note if you also want to make the ctrl_handler lock
the active state lock then you need to add calls to
v4l2_subdev_init_finalize() / v4l2_subdev_cleanup()
to allocate the active-state to probe().
Regards,
Hans
> ---
> drivers/media/i2c/ov5647.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c
> index e193fef4fced..4e14eefba577 100644
> --- a/drivers/media/i2c/ov5647.c
> +++ b/drivers/media/i2c/ov5647.c
> @@ -1288,9 +1288,12 @@ static int ov5647_init_controls(struct ov5647 *sensor)
> {
> struct i2c_client *client = v4l2_get_subdevdata(&sensor->sd);
> int hblank, exposure_max, exposure_def;
> + struct v4l2_ctrl_handler *hdl = &sensor->ctrls;
>
> v4l2_ctrl_handler_init(&sensor->ctrls, 9);
>
> + hdl->lock = &sensor->lock;
> +
> v4l2_ctrl_new_std(&sensor->ctrls, &ov5647_ctrl_ops,
> V4L2_CID_AUTOGAIN, 0, 1, 1, 0);
>
next prev parent reply other threads:[~2025-12-01 9:32 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-01 0:00 [PATCH] media: i2c: ov5647: use our own mutex for the ctrl lock Xiaolei Wang
2025-12-01 9:31 ` johannes.goede [this message]
2025-12-01 13:02 ` Sakari Ailus
2025-12-01 13:58 ` Jacopo Mondi
2025-12-01 16:06 ` Dave Stevenson
2025-12-02 3:18 ` xiaolei wang
2025-12-04 10:11 ` Sakari Ailus
2025-12-04 10:57 ` xiaolei wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4553d9ed-ba4e-4f83-b48e-e819e7979293@oss.qualcomm.com \
--to=johannes.goede@oss.qualcomm.com \
--cc=dave.stevenson@raspberrypi.com \
--cc=hverkuil+cisco@kernel.org \
--cc=jacopo@jmondi.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=sakari.ailus@linux.intel.com \
--cc=xiaolei.wang@windriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox