iio: adc: meson_saradc: Convert to use dev_err_probe()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 3 Jun 2022 10:00:01 +0000 (13:00 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 15 Jun 2022 21:07:10 +0000 (22:07 +0100)
It's fine to call dev_err_probe() in ->probe() when error code is known.
Convert the driver to use dev_err_probe().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://lore.kernel.org/r/20220603100004.70336-3-andriy.shevchenko@linux.intel.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/meson_saradc.c

index 6580473..0d9aef3 100644 (file)
@@ -698,6 +698,7 @@ static int meson_sar_adc_temp_sensor_init(struct iio_dev *indio_dev)
 {
        struct meson_sar_adc_priv *priv = iio_priv(indio_dev);
        u8 *buf, trimming_bits, trimming_mask, upper_adc_val;
+       struct device *dev = indio_dev->dev.parent;
        struct nvmem_cell *temperature_calib;
        size_t read_len;
        int ret;
@@ -714,30 +715,23 @@ static int meson_sar_adc_temp_sensor_init(struct iio_dev *indio_dev)
                if (ret == -ENODEV)
                        return 0;
 
-               return dev_err_probe(indio_dev->dev.parent, ret,
-                                    "failed to get temperature_calib cell\n");
+               return dev_err_probe(dev, ret, "failed to get temperature_calib cell\n");
        }
 
        priv->tsc_regmap =
                syscon_regmap_lookup_by_phandle(indio_dev->dev.parent->of_node,
                                                "amlogic,hhi-sysctrl");
-       if (IS_ERR(priv->tsc_regmap)) {
-               dev_err(indio_dev->dev.parent,
-                       "failed to get amlogic,hhi-sysctrl regmap\n");
-               return PTR_ERR(priv->tsc_regmap);
-       }
+       if (IS_ERR(priv->tsc_regmap))
+               return dev_err_probe(dev, PTR_ERR(priv->tsc_regmap),
+                                    "failed to get amlogic,hhi-sysctrl regmap\n");
 
        read_len = MESON_SAR_ADC_EFUSE_BYTES;
        buf = nvmem_cell_read(temperature_calib, &read_len);
-       if (IS_ERR(buf)) {
-               dev_err(indio_dev->dev.parent,
-                       "failed to read temperature_calib cell\n");
-               return PTR_ERR(buf);
-       } else if (read_len != MESON_SAR_ADC_EFUSE_BYTES) {
+       if (IS_ERR(buf))
+               return dev_err_probe(dev, PTR_ERR(buf), "failed to read temperature_calib cell\n");
+       if (read_len != MESON_SAR_ADC_EFUSE_BYTES) {
                kfree(buf);
-               dev_err(indio_dev->dev.parent,
-                       "invalid read size of temperature_calib cell\n");
-               return -EINVAL;
+               return dev_err_probe(dev, -EINVAL, "invalid read size of temperature_calib cell\n");
        }
 
        trimming_bits = priv->param->temperature_trimming_bits;
@@ -762,6 +756,7 @@ static int meson_sar_adc_temp_sensor_init(struct iio_dev *indio_dev)
 static int meson_sar_adc_init(struct iio_dev *indio_dev)
 {
        struct meson_sar_adc_priv *priv = iio_priv(indio_dev);
+       struct device *dev = indio_dev->dev.parent;
        int regval, i, ret;
 
        /*
@@ -885,18 +880,12 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev)
        }
 
        ret = clk_set_parent(priv->adc_sel_clk, priv->clkin);
-       if (ret) {
-               dev_err(indio_dev->dev.parent,
-                       "failed to set adc parent to clkin\n");
-               return ret;
-       }
+       if (ret)
+               return dev_err_probe(dev, ret, "failed to set adc parent to clkin\n");
 
        ret = clk_set_rate(priv->adc_clk, priv->param->clock_rate);
-       if (ret) {
-               dev_err(indio_dev->dev.parent,
-                       "failed to set adc clock rate\n");
-               return ret;
-       }
+       if (ret)
+               return dev_err_probe(dev, ret, "failed to set adc clock rate\n");
 
        return 0;
 }
@@ -1183,24 +1172,21 @@ static int meson_sar_adc_probe(struct platform_device *pdev)
 {
        const struct meson_sar_adc_data *match_data;
        struct meson_sar_adc_priv *priv;
+       struct device *dev = &pdev->dev;
        struct iio_dev *indio_dev;
        void __iomem *base;
        int irq, ret;
 
        indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*priv));
-       if (!indio_dev) {
-               dev_err(&pdev->dev, "failed allocating iio device\n");
-               return -ENOMEM;
-       }
+       if (!indio_dev)
+               return dev_err_probe(dev, -ENOMEM, "failed allocating iio device\n");
 
        priv = iio_priv(indio_dev);
        init_completion(&priv->done);
 
        match_data = of_device_get_match_data(&pdev->dev);
-       if (!match_data) {
-               dev_err(&pdev->dev, "failed to get match data\n");
-               return -ENODEV;
-       }
+       if (!match_data)
+               return dev_err_probe(dev, -ENODEV, "failed to get match data\n");
 
        priv->param = match_data->param;