hwmon: (amc6821) sign extension temperature
authorJared Bents <jared.bents@rockwellcollins.com>
Sat, 19 Nov 2016 04:20:38 +0000 (22:20 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2017 10:22:48 +0000 (11:22 +0100)
commit 4538bfbf2d9f1fc48c07ac0cc0ee58716fe7fe96 upstream.

Converts the unsigned temperature values from the i2c read
to be sign extended as defined in the datasheet so that
negative temperatures are properly read.

Fixes: 28e6274d8fa67 ("hwmon: (amc6821) Avoid forward declaration")
Signed-off-by: Jared Bents <jared.bents@rockwellcollins.com>
Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
[groeck: Dropped unnecessary continuation line]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hwmon/amc6821.c

index 12e851a5af48d0d84a0130f854bb2439300c7bd8..46b4e35fd5555b4e45e3e38870d6c8fb23a94985 100644 (file)
@@ -188,8 +188,8 @@ static struct amc6821_data *amc6821_update_device(struct device *dev)
                        !data->valid) {
 
                for (i = 0; i < TEMP_IDX_LEN; i++)
-                       data->temp[i] = i2c_smbus_read_byte_data(client,
-                               temp_reg[i]);
+                       data->temp[i] = (int8_t)i2c_smbus_read_byte_data(
+                               client, temp_reg[i]);
 
                data->stat1 = i2c_smbus_read_byte_data(client,
                        AMC6821_REG_STAT1);