When possible use dev_err_probe help to properly deal with the
PROBE_DEFER error, the benefit is that DEFER issue will be logged
in the devices_deferred debugfs file.
Using dev_err_probe() can reduce code size, and the error value
gets printed.
BTW, change the return value from 'ENXIO' to 'ENODEV',
perfer ENODEV which means no such device.
Signed-off-by: Cai Huoqing <caihuoqing@baidu.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20211008092858.495-7-caihuoqing@baidu.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
 
        map = dev_get_regmap(dev->parent, NULL);
        if (!map) {
                dev_err(dev, "parent regmap unavailable.\n");
-               return -ENXIO;
+               return -ENODEV;
        }
        adc->map = map;
 
        /* Bring up regulator */
        adc->vref = devm_regulator_get(dev, "xoadc-ref");
-       if (IS_ERR(adc->vref)) {
-               dev_err(dev, "failed to get XOADC VREF regulator\n");
-               return PTR_ERR(adc->vref);
-       }
+       if (IS_ERR(adc->vref))
+               return dev_err_probe(dev, PTR_ERR(adc->vref),
+                                    "failed to get XOADC VREF regulator\n");
        ret = regulator_enable(adc->vref);
        if (ret) {
                dev_err(dev, "failed to enable XOADC VREF regulator\n");