All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Mehdi Djait <mehdi.djait@linux.intel.com>
Cc: sakari.ailus@linux.intel.com, akinobu.mita@gmail.com,
	stanislaw.gruszka@linux.intel.com, hdegoede@redhat.com,
	arnd@arndb.de, alain.volmat@foss.st.com, andrzej.hajda@intel.com,
	benjamin.mugnier@foss.st.com, dave.stevenson@raspberrypi.com,
	hansg@kernel.org, hverkuil@xs4all.nl,
	jacopo.mondi@ideasonboard.com, jonas@kwiboo.se,
	kieran.bingham@ideasonboard.com, khalasa@piap.pl,
	prabhakar.csengg@gmail.com, mani@kernel.org,
	m.felsch@pengutronix.de, martink@posteo.de,
	mattwmajewski@gmail.com, matthias.fend@emfend.at,
	mchehab@kernel.org, michael.riesch@collabora.com,
	naush@raspberrypi.com, nicholas@rothemail.net,
	nicolas.dufresne@collabora.com, paul.elder@ideasonboard.com,
	dan.scally@ideasonboard.com, pavel@kernel.org,
	petrcvekcz@gmail.com, rashanmu@gmail.com, ribalda@chromium.org,
	rmfrfs@gmail.com, zhengsq@rock-chips.com, slongerbeam@gmail.com,
	sylvain.petinot@foss.st.com, s.nawrocki@samsung.com,
	tomi.valkeinen@ideasonboard.com, umang.jain@ideasonboard.com,
	zhi.mao@mediatek.com, linux-kernel@vger.kernel.org,
	linux-media@vger.kernel.org
Subject: Re: [PATCH v1 41/55] media: i2c: ov8865: Use the v4l2 helper for obtaining the clock
Date: Fri, 20 Jun 2025 00:57:44 +0300	[thread overview]
Message-ID: <20250619215744.GS22102@pendragon.ideasonboard.com> (raw)
In-Reply-To: <273d77cc78cbe9fd144f96e68407f0f7b41d3895.1750352394.git.mehdi.djait@linux.intel.com>

Hi Mehdi,

Thank you for the patch.

On Thu, Jun 19, 2025 at 07:59:34PM +0200, Mehdi Djait wrote:
> devm_clk_get() fails on ACPI-based platforms, where firmware does not
> provide a direct reference to the clock producer.
> 
> Replace devm_clk_get() with the new v4l2 helper
> devm_v4l2_sensor_clk_get() that works on both DT- and ACPI-based
> platforms to retrieve a reference to the clock producer from firmware.
> 
> Signed-off-by: Mehdi Djait <mehdi.djait@linux.intel.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> 
> diff --git a/drivers/media/i2c/ov8865.c b/drivers/media/i2c/ov8865.c
> index 95ffe7536aa6..5cc278c3e169 100644
> --- a/drivers/media/i2c/ov8865.c
> +++ b/drivers/media/i2c/ov8865.c
> @@ -2956,7 +2956,6 @@ static int ov8865_probe(struct i2c_client *client)
>  	struct ov8865_sensor *sensor;
>  	struct v4l2_subdev *subdev;
>  	struct media_pad *pad;
> -	unsigned int rate = 0;
>  	unsigned int i;
>  	int ret;
>  
> @@ -3019,39 +3018,14 @@ static int ov8865_probe(struct i2c_client *client)
>  
>  	/* External Clock */
>  
> -	sensor->extclk = devm_clk_get(dev, NULL);
> -	if (PTR_ERR(sensor->extclk) == -ENOENT) {
> -		dev_info(dev, "no external clock found, continuing...\n");
> -		sensor->extclk = NULL;
> -	} else if (IS_ERR(sensor->extclk)) {
> +	sensor->extclk = devm_v4l2_sensor_clk_get(dev, NULL);
> +	if (IS_ERR(sensor->extclk)) {
>  		dev_err(dev, "failed to get external clock\n");
>  		ret = PTR_ERR(sensor->extclk);
>  		goto error_endpoint;
>  	}
>  
> -	/*
> -	 * We could have either a 24MHz or 19.2MHz clock rate from either dt or
> -	 * ACPI...but we also need to support the weird IPU3 case which will
> -	 * have an external clock AND a clock-frequency property. Check for the
> -	 * clock-frequency property and if found, set that rate if we managed
> -	 * to acquire a clock. This should cover the ACPI case. If the system
> -	 * uses devicetree then the configured rate should already be set, so
> -	 * we can just read it.
> -	 */
> -	ret = fwnode_property_read_u32(dev_fwnode(dev), "clock-frequency",
> -				       &rate);
> -	if (!ret && sensor->extclk) {
> -		ret = clk_set_rate(sensor->extclk, rate);
> -		if (ret) {
> -			dev_err_probe(dev, ret, "failed to set clock rate\n");
> -			goto error_endpoint;
> -		}
> -	} else if (ret && !sensor->extclk) {
> -		dev_err_probe(dev, ret, "invalid clock config\n");
> -		goto error_endpoint;
> -	}
> -
> -	sensor->extclk_rate = rate ? rate : clk_get_rate(sensor->extclk);
> +	sensor->extclk_rate = clk_get_rate(sensor->extclk);
>  
>  	for (i = 0; i < ARRAY_SIZE(supported_extclk_rates); i++) {
>  		if (sensor->extclk_rate == supported_extclk_rates[i])

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2025-06-19 21:58 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-19 17:58 [PATCH v1 00/55] media: Add a helper for obtaining the clock producer Mehdi Djait
2025-06-19 17:58 ` [PATCH v1 01/55] media: v4l2-common: " Mehdi Djait
2025-06-19 22:07   ` Laurent Pinchart
2025-06-19 17:58 ` [PATCH v1 02/55] Documentation: media: camera-sensor: Mention v4l2_devm_sensor_clk_get() for obtaining the clock Mehdi Djait
2025-06-19 21:47   ` Laurent Pinchart
2025-06-23 10:49     ` Sakari Ailus
2025-06-19 17:58 ` [PATCH v1 03/55] media: i2c: ar0521: Use the v4l2 helper " Mehdi Djait
2025-06-21 10:21   ` Krzysztof Hałasa | Łukasiewicz – PIAP
2025-06-19 17:58 ` [PATCH v1 04/55] media: i2c: ds90ub913: " Mehdi Djait
2025-06-19 17:58 ` [PATCH v1 05/55] media: i2c: ds90ub960: " Mehdi Djait
2025-06-19 17:58 ` [PATCH v1 06/55] media: i2c: et8ek8: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 07/55] media: i2c: gc05a2: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 08/55] media: i2c: gc08a3: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 09/55] media: i2c: gc2145: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 10/55] media: i2c: hi846: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 11/55] media: i2c: imx214: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 12/55] media: i2c: imx219: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 13/55] media: i2c: imx283: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 14/55] media: i2c: imx290: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 15/55] media: i2c: imx296: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 16/55] media: i2c: imx334: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 17/55] media: i2c: imx335: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 18/55] media: i2c: imx412: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 19/55] media: i2c: imx415: " Mehdi Djait
2025-06-21 14:23   ` Michael Riesch
2025-06-19 17:59 ` [PATCH v1 20/55] media: i2c: max2175: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 21/55] media: i2c: mt9m001: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 22/55] media: i2c: mt9m111: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 23/55] media: i2c: mt9m114: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 24/55] media: i2c: mt9p031: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 25/55] media: i2c: mt9t112: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 26/55] media: i2c: mt9v032: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 27/55] media: i2c: mt9v111: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 28/55] media: i2c: ov02a10: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 29/55] media: i2c: ov2659: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 30/55] media: i2c: ov2685: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 31/55] media: i2c: ov5640: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 32/55] media: i2c: ov5645: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 33/55] media: i2c: ov5647: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 34/55] media: i2c: ov5648: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 35/55] media: i2c: ov5695: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 36/55] media: i2c: ov64a40: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 37/55] media: i2c: ov6650: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 38/55] media: i2c: ov7740: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 39/55] media: i2c: ov8856: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 40/55] media: i2c: ov8858: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 41/55] media: i2c: ov8865: " Mehdi Djait
2025-06-19 21:57   ` Laurent Pinchart [this message]
2025-06-19 21:59     ` Laurent Pinchart
2025-06-21  7:58       ` Sakari Ailus
2025-06-21  8:27         ` Hans de Goede
2025-06-19 17:59 ` [PATCH v1 42/55] media: i2c: ov9282: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 43/55] media: i2c: ov9640: " Mehdi Djait
2025-06-19 17:59 ` [PATCH v1 44/55] media: i2c: ov9650: " Mehdi Djait
2025-06-19 18:09 ` [PATCH v1 45/55] media: i2c: s5c73m3: " Mehdi Djait
2025-06-19 18:11 ` [PATCH v1 46/55] media: i2c: s5k5baf: " Mehdi Djait
2025-06-19 18:11 ` [PATCH v1 47/55] media: i2c: s5k6a3: " Mehdi Djait
2025-06-19 18:11 ` [PATCH v1 48/55] media: i2c: st-mipid02: " Mehdi Djait
2025-06-19 18:11 ` [PATCH v1 50/55] media: i2c: tc358746: " Mehdi Djait
2025-06-19 18:11 ` [PATCH v1 51/55] media: i2c: thp7312: " Mehdi Djait
2025-06-19 18:11 ` [PATCH v1 52/55] media: i2c: vd55g1: " Mehdi Djait
2025-06-19 18:11 ` [PATCH v1 53/55] media: i2c: vd56g3: " Mehdi Djait
2025-06-19 18:11 ` [PATCH v1 54/55] media: i2c: vgxy61: " Mehdi Djait
2025-06-19 18:11 ` [PATCH v1 55/55] media: i2c: ov2680: " Mehdi Djait
2025-06-19 22:00   ` Laurent Pinchart
2025-06-19 18:15 ` [PATCH v1 49/55] media: i2c: tc358743: " Mehdi Djait
2025-06-19 21:26 ` [PATCH v1 00/55] media: Add a helper for obtaining the clock producer Laurent Pinchart
2025-06-21 14:28 ` Michael Riesch
2025-06-22 11:45   ` Hans de Goede
2025-06-24 20:34 ` Lad, Prabhakar

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=20250619215744.GS22102@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=akinobu.mita@gmail.com \
    --cc=alain.volmat@foss.st.com \
    --cc=andrzej.hajda@intel.com \
    --cc=arnd@arndb.de \
    --cc=benjamin.mugnier@foss.st.com \
    --cc=dan.scally@ideasonboard.com \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=hansg@kernel.org \
    --cc=hdegoede@redhat.com \
    --cc=hverkuil@xs4all.nl \
    --cc=jacopo.mondi@ideasonboard.com \
    --cc=jonas@kwiboo.se \
    --cc=khalasa@piap.pl \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=m.felsch@pengutronix.de \
    --cc=mani@kernel.org \
    --cc=martink@posteo.de \
    --cc=matthias.fend@emfend.at \
    --cc=mattwmajewski@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=mehdi.djait@linux.intel.com \
    --cc=michael.riesch@collabora.com \
    --cc=naush@raspberrypi.com \
    --cc=nicholas@rothemail.net \
    --cc=nicolas.dufresne@collabora.com \
    --cc=paul.elder@ideasonboard.com \
    --cc=pavel@kernel.org \
    --cc=petrcvekcz@gmail.com \
    --cc=prabhakar.csengg@gmail.com \
    --cc=rashanmu@gmail.com \
    --cc=ribalda@chromium.org \
    --cc=rmfrfs@gmail.com \
    --cc=s.nawrocki@samsung.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=slongerbeam@gmail.com \
    --cc=stanislaw.gruszka@linux.intel.com \
    --cc=sylvain.petinot@foss.st.com \
    --cc=tomi.valkeinen@ideasonboard.com \
    --cc=umang.jain@ideasonboard.com \
    --cc=zhengsq@rock-chips.com \
    --cc=zhi.mao@mediatek.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.