summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/iio/light/us5182d.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/iio/light/us5182d.c b/drivers/iio/light/us5182d.c
index 256c4bc12d21..f24b687bd152 100644
--- a/drivers/iio/light/us5182d.c
+++ b/drivers/iio/light/us5182d.c
@@ -238,8 +238,12 @@ static int us5182d_als_enable(struct us5182d_data *data)
int ret;
u8 mode;
- if (data->power_mode == US5182D_ONESHOT)
- return us5182d_set_opmode(data, US5182D_ALS_ONLY);
+ if (data->power_mode == US5182D_ONESHOT) {
+ ret = us5182d_set_opmode(data, US5182D_ALS_ONLY);
+ if (ret < 0)
+ return ret;
+ data->px_enabled = false;
+ }
if (data->als_enabled)
return 0;
@@ -260,8 +264,12 @@ static int us5182d_px_enable(struct us5182d_data *data)
int ret;
u8 mode;
- if (data->power_mode == US5182D_ONESHOT)
- return us5182d_set_opmode(data, US5182D_PX_ONLY);
+ if (data->power_mode == US5182D_ONESHOT) {
+ ret = us5182d_set_opmode(data, US5182D_PX_ONLY);
+ if (ret < 0)
+ return ret;
+ data->als_enabled = false;
+ }
if (data->px_enabled)
return 0;