iio: imu: kmx61: Don't ignore kmx61_set_power_state errors
authorDaniel Baluta <daniel.baluta@intel.com>
Tue, 23 Dec 2014 13:22:25 +0000 (15:22 +0200)
committerJonathan Cameron <jic23@kernel.org>
Mon, 5 Jan 2015 18:59:51 +0000 (18:59 +0000)
..except while in an error handler, where there is nothing
to be done anyway.

Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Reviewed-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/imu/kmx61.c

index 52c943d50bef42945897bd8ce283ef9c799b092b..6eaecb95c2d08b0ee87c8d32fe0e29dfc1c9abb7 100644 (file)
@@ -830,7 +830,12 @@ static int kmx61_read_raw(struct iio_dev *indio_dev,
                }
                mutex_lock(&data->lock);
 
-               kmx61_set_power_state(data, true, chan->address);
+               ret = kmx61_set_power_state(data, true, chan->address);
+               if (ret) {
+                       mutex_unlock(&data->lock);
+                       return ret;
+               }
+
                ret = kmx61_read_measurement(data, base_reg, chan->scan_index);
                if (ret < 0) {
                        kmx61_set_power_state(data, false, chan->address);
@@ -839,9 +844,11 @@ static int kmx61_read_raw(struct iio_dev *indio_dev,
                }
                *val = sign_extend32(ret >> chan->scan_type.shift,
                                     chan->scan_type.realbits - 1);
-               kmx61_set_power_state(data, false, chan->address);
+               ret = kmx61_set_power_state(data, false, chan->address);
 
                mutex_unlock(&data->lock);
+               if (ret)
+                       return ret;
                return IIO_VAL_INT;
        case IIO_CHAN_INFO_SCALE:
                switch (chan->type) {