[PATCH v2] iio: adc: imx8qxp-adc: propagate regulator_get_voltage error
Martin Larsson
martin.larsson at actia.se
Wed Jul 20 08:31:54 PDT 2022
If the ADC vref regulator returns an error, for example, if CONFIG_REGULATOR
is not set, the error will be used as a reference voltage.
Introduce a guard for negative return values instead of unconditionally
casting it to u32.
Acked-by: Haibo Chen <haibo.chen at nxp.com>
Signed-off-by: Martin Larsson <martin.larsson at actia.se>
---
v2:
- Added missing Signed-off-by (Fabio)
- Collected Haibo's Acked-by
drivers/iio/adc/imx8qxp-adc.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/iio/adc/imx8qxp-adc.c b/drivers/iio/adc/imx8qxp-adc.c
index 901dd8e1b32f..8a786d73ae8e 100644
--- a/drivers/iio/adc/imx8qxp-adc.c
+++ b/drivers/iio/adc/imx8qxp-adc.c
@@ -201,7 +201,7 @@ static int imx8qxp_adc_read_raw(struct iio_dev *indio_dev,
struct imx8qxp_adc *adc = iio_priv(indio_dev);
struct device *dev = adc->dev;
- u32 ctrl, vref_uv;
+ u32 ctrl;
long ret;
switch (mask) {
@@ -244,8 +244,10 @@ static int imx8qxp_adc_read_raw(struct iio_dev *indio_dev,
return IIO_VAL_INT;
case IIO_CHAN_INFO_SCALE:
- vref_uv = regulator_get_voltage(adc->vref);
- *val = vref_uv / 1000;
+ ret = regulator_get_voltage(adc->vref);
+ if (ret < 0)
+ return ret;
+ *val = ret / 1000;
*val2 = 12;
return IIO_VAL_FRACTIONAL_LOG2;
--
2.37.1
More information about the linux-arm-kernel
mailing list