summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/iio/light/cm3217.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/staging/iio/light/cm3217.c b/drivers/staging/iio/light/cm3217.c
index 12da7a11e285..f1eb2fcbccdf 100644
--- a/drivers/staging/iio/light/cm3217.c
+++ b/drivers/staging/iio/light/cm3217.c
@@ -322,6 +322,7 @@ static ssize_t cm3217_enable_store(struct device *dev,
mutex_lock(&indio_dev->mlock);
if (enable) {
err = cm3217_cmd_wr(inf, 0, 0);
+ inf->raw_illuminance_val = -EINVAL;
queue_delayed_work(inf->wq, &inf->dw, CM3217_HW_DELAY);
} else {
cancel_delayed_work_sync(&inf->dw);
@@ -344,6 +345,8 @@ static ssize_t cm3217_raw_illuminance_val_show(struct device *dev,
if (inf->als_state != CHIP_POWER_ON_ALS_ON)
return sprintf(buf, "-1\n");
queue_delayed_work(inf->wq, &inf->dw, 0);
+ if (inf->raw_illuminance_val == -EINVAL)
+ return sprintf(buf, "-1\n");
return sprintf(buf, "%d\n", inf->raw_illuminance_val);
}
@@ -454,6 +457,7 @@ static int cm3217_probe(struct i2c_client *client,
goto err_iio_register;
}
+ inf->raw_illuminance_val = -EINVAL;
dev_info(&client->dev, "%s success\n", __func__);
return 0;