staging:iio: rework of attribute registration.
[deliverable/linux.git] / drivers / staging / iio / dac / ad5686.c
index c32789f1c154edeb2744a445efe8b2f76d57d59d..6e768206a8759bf92c5e61f0d51aa7eff4cff20c 100644 (file)
@@ -393,16 +393,16 @@ static int __devinit ad5686_probe(struct spi_device *spi)
        indio_dev->channels = st->chip_info->channel;
        indio_dev->num_channels = AD5686_DAC_CHANNELS;
 
-       ret = iio_device_register(indio_dev);
-       if (ret)
-               goto error_disable_reg;
-
        regdone = 1;
        ret = ad5686_spi_write(st, AD5686_CMD_INTERNAL_REFER_SETUP, 0,
                                !!voltage_uv, 0);
        if (ret)
                goto error_disable_reg;
 
+       ret = iio_device_register(indio_dev);
+       if (ret)
+               goto error_disable_reg;
+
        return 0;
 
 error_disable_reg:
@@ -412,10 +412,7 @@ error_put_reg:
        if (!IS_ERR(st->reg))
                regulator_put(st->reg);
 
-       if (regdone)
-               iio_device_unregister(indio_dev);
-       else
-               iio_free_device(indio_dev);
+       iio_free_device(indio_dev);
 
        return ret;
 }
This page took 0.033839 seconds and 5 git commands to generate.