The lock around the read (from global data) of the heater configuration
status is not needed.  Move the lock in IIO_CHAN_INFO_RAW case to only
protect the get measurement function.

Signed-off-by: Alison Schofield <amsfiel...@gmail.com>
Cc: Daniel Baluta <daniel.bal...@gmail.com>
---
 drivers/iio/humidity/hdc100x.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/humidity/hdc100x.c b/drivers/iio/humidity/hdc100x.c
index ad5a12a..8195b0c 100644
--- a/drivers/iio/humidity/hdc100x.c
+++ b/drivers/iio/humidity/hdc100x.c
@@ -193,18 +193,18 @@ static int hdc100x_read_raw(struct iio_dev *indio_dev,
        case IIO_CHAN_INFO_RAW: {
                int ret;
 
-               mutex_lock(&data->lock);
                if (chan->type == IIO_CURRENT) {
                        *val = hdc100x_get_heater_status(data);
                        ret = IIO_VAL_INT;
                } else {
+                       mutex_lock(&data->lock);
                        ret = hdc100x_get_measurement(data, chan);
+                       mutex_unlock(&data->lock);
                        if (ret >= 0) {
                                *val = ret;
                                ret = IIO_VAL_INT;
                        }
                }
-               mutex_unlock(&data->lock);
                return ret;
        }
        case IIO_CHAN_INFO_INT_TIME:
-- 
2.1.4

Reply via email to