diff mbox series

hwmon: ltc2947: Properly handle errors when looking for the external clock

Message ID 20210923201113.398932-1-u.kleine-koenig@pengutronix.de (mailing list archive)
State Accepted
Headers show
Series hwmon: ltc2947: Properly handle errors when looking for the external clock | expand

Commit Message

Uwe Kleine-König Sept. 23, 2021, 8:11 p.m. UTC
The return value of devm_clk_get should in general be propagated to
upper layer. In this case the clk is optional, use the appropriate
wrapper instead of interpreting all errors as "The optional clk is not
available".

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/hwmon/ltc2947-core.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)


base-commit: 7d2a07b769330c34b4deabeed939325c77a7ec2f

Comments

Guenter Roeck Sept. 24, 2021, 2:03 a.m. UTC | #1
On Thu, Sep 23, 2021 at 10:11:13PM +0200, Uwe Kleine-König wrote:
> The return value of devm_clk_get should in general be propagated to
> upper layer. In this case the clk is optional, use the appropriate
> wrapper instead of interpreting all errors as "The optional clk is not
> available".
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Applied.

Thanks,
Guenter

> ---
>  drivers/hwmon/ltc2947-core.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> 
> base-commit: 7d2a07b769330c34b4deabeed939325c77a7ec2f
> 
> diff --git a/drivers/hwmon/ltc2947-core.c b/drivers/hwmon/ltc2947-core.c
> index bb3f7749a0b0..5423466de697 100644
> --- a/drivers/hwmon/ltc2947-core.c
> +++ b/drivers/hwmon/ltc2947-core.c
> @@ -989,8 +989,12 @@ static int ltc2947_setup(struct ltc2947_data *st)
>  		return ret;
>  
>  	/* check external clock presence */
> -	extclk = devm_clk_get(st->dev, NULL);
> -	if (!IS_ERR(extclk)) {
> +	extclk = devm_clk_get_optional(st->dev, NULL);
> +	if (IS_ERR(extclk))
> +		return dev_err_probe(st->dev, PTR_ERR(extclk),
> +				     "Failed to get external clock\n");
> +
> +	if (extclk) {
>  		unsigned long rate_hz;
>  		u8 pre = 0, div, tbctl;
>  		u64 aux;
diff mbox series

Patch

diff --git a/drivers/hwmon/ltc2947-core.c b/drivers/hwmon/ltc2947-core.c
index bb3f7749a0b0..5423466de697 100644
--- a/drivers/hwmon/ltc2947-core.c
+++ b/drivers/hwmon/ltc2947-core.c
@@ -989,8 +989,12 @@  static int ltc2947_setup(struct ltc2947_data *st)
 		return ret;
 
 	/* check external clock presence */
-	extclk = devm_clk_get(st->dev, NULL);
-	if (!IS_ERR(extclk)) {
+	extclk = devm_clk_get_optional(st->dev, NULL);
+	if (IS_ERR(extclk))
+		return dev_err_probe(st->dev, PTR_ERR(extclk),
+				     "Failed to get external clock\n");
+
+	if (extclk) {
 		unsigned long rate_hz;
 		u8 pre = 0, div, tbctl;
 		u64 aux;