|
@@ -621,10 +621,12 @@ static ssize_t adp8860_bl_ambient_light_zone_store(struct device *dev,
|
|
|
|
|
|
/* Set user supplied ambient light zone */
|
|
|
mutex_lock(&data->lock);
|
|
|
- adp8860_read(data->client, ADP8860_CFGR, ®_val);
|
|
|
- reg_val &= ~(CFGR_BLV_MASK << CFGR_BLV_SHIFT);
|
|
|
- reg_val |= (val - 1) << CFGR_BLV_SHIFT;
|
|
|
- adp8860_write(data->client, ADP8860_CFGR, reg_val);
|
|
|
+ ret = adp8860_read(data->client, ADP8860_CFGR, ®_val);
|
|
|
+ if (!ret) {
|
|
|
+ reg_val &= ~(CFGR_BLV_MASK << CFGR_BLV_SHIFT);
|
|
|
+ reg_val |= (val - 1) << CFGR_BLV_SHIFT;
|
|
|
+ adp8860_write(data->client, ADP8860_CFGR, reg_val);
|
|
|
+ }
|
|
|
mutex_unlock(&data->lock);
|
|
|
}
|
|
|
|