OSDN Git Service

staging: iio: isl29018: check if the chip is in a suspended state
authorBrian Masney <masneyb@onstation.org>
Tue, 27 Sep 2016 00:20:20 +0000 (20:20 -0400)
committerJonathan Cameron <jic23@kernel.org>
Sat, 1 Oct 2016 13:57:04 +0000 (14:57 +0100)
Add a check to isl29018_write_raw() to ensure that the chip is not in a
suspended state. This makes the code consistent with what is present
in isl29018_read_raw().

Signed-off-by: Brian Masney <masneyb@onstation.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/staging/iio/light/isl29018.c

index 3a4d79d..51226bd 100644 (file)
@@ -355,6 +355,10 @@ static int isl29018_write_raw(struct iio_dev *indio_dev,
        int ret = -EINVAL;
 
        mutex_lock(&chip->lock);
+       if (chip->suspended) {
+               ret = -EBUSY;
+               goto write_done;
+       }
        switch (mask) {
        case IIO_CHAN_INFO_CALIBSCALE:
                if (chan->type == IIO_LIGHT) {
@@ -374,8 +378,9 @@ static int isl29018_write_raw(struct iio_dev *indio_dev,
        default:
                break;
        }
-       mutex_unlock(&chip->lock);
 
+write_done:
+       mutex_unlock(&chip->lock);
        return ret;
 }