diff options
-rw-r--r-- | drivers/staging/iio/light/cm3217.c | 4 |
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; |