diff options
-rw-r--r-- | drivers/power/supply/max17042_battery.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/power/supply/max17042_battery.c b/drivers/power/supply/max17042_battery.c index 790dfa9d0a2e..a51b2965cd5c 100644 --- a/drivers/power/supply/max17042_battery.c +++ b/drivers/power/supply/max17042_battery.c | |||
@@ -270,14 +270,14 @@ static int max17042_get_property(struct power_supply *psy, | |||
270 | if (ret < 0) | 270 | if (ret < 0) |
271 | return ret; | 271 | return ret; |
272 | /* LSB is Alert Minimum. In deci-centigrade */ | 272 | /* LSB is Alert Minimum. In deci-centigrade */ |
273 | val->intval = (data & 0xff) * 10; | 273 | val->intval = sign_extend32(data & 0xff, 7) * 10; |
274 | break; | 274 | break; |
275 | case POWER_SUPPLY_PROP_TEMP_ALERT_MAX: | 275 | case POWER_SUPPLY_PROP_TEMP_ALERT_MAX: |
276 | ret = regmap_read(map, MAX17042_TALRT_Th, &data); | 276 | ret = regmap_read(map, MAX17042_TALRT_Th, &data); |
277 | if (ret < 0) | 277 | if (ret < 0) |
278 | return ret; | 278 | return ret; |
279 | /* MSB is Alert Maximum. In deci-centigrade */ | 279 | /* MSB is Alert Maximum. In deci-centigrade */ |
280 | val->intval = (data >> 8) * 10; | 280 | val->intval = sign_extend32(data >> 8, 7) * 10; |
281 | break; | 281 | break; |
282 | case POWER_SUPPLY_PROP_TEMP_MIN: | 282 | case POWER_SUPPLY_PROP_TEMP_MIN: |
283 | val->intval = chip->pdata->temp_min; | 283 | val->intval = chip->pdata->temp_min; |