summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSri Krishna chowdary <schowdary@nvidia.com>2014-03-07 11:39:01 +0530
committerSachin Nikam <snikam@nvidia.com>2014-03-11 10:07:07 -0700
commit068f0ad496dd0512a347eb36112363580ecbfbbe (patch)
tree9051e4e148425038203c010ad026b7048a147e74
parent0e051fcb68126decee2fe053628e9e43c53626e8 (diff)
staging: iio: light: jsa1127: fix shutdown
earlier code allows i2c access after either 1. power supply is disabled or 2. sensor is put to standby This can cause i2c transactions to fail or invalid data can be read. Prevent any i2c transfter from happening after these steps. Bug 1473057 Change-Id: I8f702d2c7180c71afca46ec5b6f87e04a1e8ba78 Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com> Reviewed-on: http://git-master/r/378767 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sachin Nikam <snikam@nvidia.com>
-rw-r--r--drivers/staging/iio/light/jsa1127.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/iio/light/jsa1127.c b/drivers/staging/iio/light/jsa1127.c
index 654378b0a8b9..64480be4f5c6 100644
--- a/drivers/staging/iio/light/jsa1127.c
+++ b/drivers/staging/iio/light/jsa1127.c
@@ -4,7 +4,7 @@
* IIO Light driver for monitoring ambient light intensity in lux and proximity
* ir.
*
- * Copyright (c) 2013, NVIDIA CORPORATION. All rights reserved.
+ * Copyright (c) 2013-2014, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
@@ -578,13 +578,13 @@ static void jsa1127_shutdown(struct i2c_client *client)
struct jsa1127_chip *chip = iio_priv(indio_dev);
int ret;
+ destroy_workqueue(chip->wq);
if (chip->regulator && (chip->als_state != CHIP_POWER_OFF))
regulator_disable(chip->regulator);
if (!chip->regulator || regulator_is_enabled(chip->regulator))
ret = jsa1127_send_cmd_locked(chip, JSA1127_CMD_STANDBY);
- destroy_workqueue(chip->wq);
iio_device_unregister(indio_dev);
iio_device_free(indio_dev);
}