Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

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>
Link: https://lore.kernel.org/r/20210923201113.398932-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net>

authored by

Uwe Kleine-König and committed by
Guenter Roeck
6f7d7046 724e8af8

+6 -2
+6 -2
drivers/hwmon/ltc2947-core.c
··· 989 989 return ret; 990 990 991 991 /* check external clock presence */ 992 - extclk = devm_clk_get(st->dev, NULL); 993 - if (!IS_ERR(extclk)) { 992 + extclk = devm_clk_get_optional(st->dev, NULL); 993 + if (IS_ERR(extclk)) 994 + return dev_err_probe(st->dev, PTR_ERR(extclk), 995 + "Failed to get external clock\n"); 996 + 997 + if (extclk) { 994 998 unsigned long rate_hz; 995 999 u8 pre = 0, div, tbctl; 996 1000 u64 aux;