|
@@ -163,7 +163,7 @@ static ssize_t store_hyst(struct device *dev,
|
|
|
if (retval < 0)
|
|
|
goto fail;
|
|
|
|
|
|
- hyst = val - retval * 1000;
|
|
|
+ hyst = retval * 1000 - val;
|
|
|
hyst = DIV_ROUND_CLOSEST(hyst, 1000);
|
|
|
if (hyst < 0 || hyst > 255) {
|
|
|
retval = -ERANGE;
|
|
@@ -330,7 +330,7 @@ static int emc1403_detect(struct i2c_client *client,
|
|
|
}
|
|
|
|
|
|
id = i2c_smbus_read_byte_data(client, THERMAL_REVISION_REG);
|
|
|
- if (id != 0x01)
|
|
|
+ if (id < 0x01 || id > 0x04)
|
|
|
return -ENODEV;
|
|
|
|
|
|
return 0;
|
|
@@ -355,9 +355,9 @@ static int emc1403_probe(struct i2c_client *client,
|
|
|
if (id->driver_data)
|
|
|
data->groups[1] = &emc1404_group;
|
|
|
|
|
|
- hwmon_dev = hwmon_device_register_with_groups(&client->dev,
|
|
|
- client->name, data,
|
|
|
- data->groups);
|
|
|
+ hwmon_dev = devm_hwmon_device_register_with_groups(&client->dev,
|
|
|
+ client->name, data,
|
|
|
+ data->groups);
|
|
|
if (IS_ERR(hwmon_dev))
|
|
|
return PTR_ERR(hwmon_dev);
|
|
|
|