|
@@ -87,7 +87,7 @@ static ssize_t als_sensing_range_store(struct device *dev,
|
|
|
struct device_attribute *attr, const char *buf, size_t count)
|
|
|
{
|
|
|
struct i2c_client *client = to_i2c_client(dev);
|
|
|
- unsigned int ret_val;
|
|
|
+ int ret_val;
|
|
|
unsigned long val;
|
|
|
|
|
|
if (strict_strtoul(buf, 10, &val))
|
|
@@ -106,6 +106,8 @@ static ssize_t als_sensing_range_store(struct device *dev,
|
|
|
val = 4;
|
|
|
|
|
|
ret_val = i2c_smbus_read_byte_data(client, 0x00);
|
|
|
+ if (ret_val < 0)
|
|
|
+ return ret_val;
|
|
|
|
|
|
ret_val &= 0xFC; /*reset the bit before setting them */
|
|
|
ret_val |= val - 1;
|