Re: [PATCH v4 3/5] media: i2c: ov5645: Increase tolerance of external clock frequency

From: Laurent Pinchart
Date: Thu Mar 19 2020 - 10:50:22 EST


Hi Prabhakar,

Thank you for the patch.

On Thu, Mar 19, 2020 at 12:19:21PM +0000, Lad Prabhakar wrote:
> While testing on Renesas RZ/G2E platform, noticed the clock frequency to
> be 24242424 as a result the probe failed.
>
> This patch increases the tolerance to 5% so that it avoids patching for
> new platforms and it warns the users if the frequency is not within the
> range and continue further in the probe instead of returning failure.
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
> ---
> drivers/media/i2c/ov5645.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c
> index e298acdadeef..52a185ed4368 100644
> --- a/drivers/media/i2c/ov5645.c
> +++ b/drivers/media/i2c/ov5645.c
> @@ -1105,13 +1105,11 @@ static int ov5645_probe(struct i2c_client *client)
> }
> }
>
> - /* external clock must be 24MHz, allow 1% tolerance */
> + /* ideally external clock must be 24MHz, allow 5% tolerance */
> xclk_freq = clk_get_rate(ov5645->xclk);
> - if (xclk_freq < 23760000 || xclk_freq > 24240000) {
> - dev_err(dev, "external clock frequency %u is not supported\n",
> - xclk_freq);
> - return -EINVAL;
> - }
> + if (xclk_freq < 22800000 || xclk_freq > 25200000)
> + dev_warn(dev, "external clock frequency is set to %u, sensor might misbehave\n",
> + xclk_freq);

The code looks good to me. You may want to mention in the commit subject
that the probe error is turned into a warning, but that may be hard to
do on a single line. Splitting this in two patches could be best, but is
not worth a new version if it's the only change required. If more
changes are required, you can consider it.

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

> for (i = 0; i < OV5645_NUM_SUPPLIES; i++)
> ov5645->supplies[i].supply = ov5645_supply_name[i];

--
Regards,

Laurent Pinchart