The only assignment to dac_bits is in adt7316_store_da_high_resolution().
This function enables or disables 10 bit dac resolution for the adt7316/7
and adt7516/7 when they're set to output voltage proportional to
temperature. Remove these assignments since they're unnecessary for the
dac high resolution functionality.

Instead, assign a value to dac_bits in adt7316_probe() since the number
of dac bits might be needed as soon as the device is registered and
available to userspace.

Signed-off-by: Jeremy Fertic <jeremyfer...@gmail.com>
---
 drivers/staging/iio/addac/adt7316.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/iio/addac/adt7316.c 
b/drivers/staging/iio/addac/adt7316.c
index e5e1f9d6357f..a9990e7f2a4d 100644
--- a/drivers/staging/iio/addac/adt7316.c
+++ b/drivers/staging/iio/addac/adt7316.c
@@ -651,17 +651,10 @@ static ssize_t adt7316_store_da_high_resolution(struct 
device *dev,
        u8 config3;
        int ret;
 
-       chip->dac_bits = 8;
-
-       if (buf[0] == '1') {
+       if (buf[0] == '1')
                config3 = chip->config3 | ADT7316_DA_HIGH_RESOLUTION;
-               if (chip->id == ID_ADT7316 || chip->id == ID_ADT7516)
-                       chip->dac_bits = 12;
-               else if (chip->id == ID_ADT7317 || chip->id == ID_ADT7517)
-                       chip->dac_bits = 10;
-       } else {
+       else
                config3 = chip->config3 & (~ADT7316_DA_HIGH_RESOLUTION);
-       }
 
        ret = chip->bus.write(chip->bus.client, ADT7316_CONFIG3, config3);
        if (ret)
@@ -2123,6 +2116,13 @@ int adt7316_probe(struct device *dev, struct adt7316_bus 
*bus,
        else
                return -ENODEV;
 
+       if (chip->id == ID_ADT7316 || chip->id == ID_ADT7516)
+               chip->dac_bits = 12;
+       else if (chip->id == ID_ADT7317 || chip->id == ID_ADT7517)
+               chip->dac_bits = 10;
+       else
+               chip->dac_bits = 8;
+
        chip->ldac_pin = devm_gpiod_get_optional(dev, "adi,ldac", 
GPIOD_OUT_LOW);
        if (IS_ERR(chip->ldac_pin)) {
                ret = PTR_ERR(chip->ldac_pin);
-- 
2.19.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to