diff mbox series

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

Message ID 1584620363-2255-4-git-send-email-prabhakar.mahadev-lad.rj@bp.renesas.com (mailing list archive)
State New, archived
Headers show
Series ov5645: Deprecate usage of the clock-frequency | expand

Commit Message

Lad Prabhakar March 19, 2020, 12:19 p.m. UTC
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@bp.renesas.com>
---
 drivers/media/i2c/ov5645.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

Comments

Laurent Pinchart March 19, 2020, 2:50 p.m. UTC | #1
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@bp.renesas.com>
> ---
>  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@ideasonboard.com>

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

Patch

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);
 
 	for (i = 0; i < OV5645_NUM_SUPPLIES; i++)
 		ov5645->supplies[i].supply = ov5645_supply_name[i];