hwmon: (jc42) Use sign_extend32 for sign extension
authorGuenter Roeck <linux@roeck-us.net>
Mon, 19 Jan 2015 01:27:55 +0000 (17:27 -0800)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 26 Jan 2015 05:23:59 +0000 (21:23 -0800)
Despite the name, sign_extend32 works just fine for 16 bit variables,
so it is safe to use.

Cc: Martin Kepplinger <martink@posteo.de>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/jc42.c

index 388f8bcd898e879c84dd2497f4efee307456bfb0..262d8086822f5d2daf877e37dab6e1badadc8ef8 100644 (file)
@@ -213,11 +213,7 @@ static u16 jc42_temp_to_reg(int temp, bool extended)
 
 static int jc42_temp_from_reg(s16 reg)
 {
-       reg &= 0x1fff;
-
-       /* sign extend register */
-       if (reg & 0x1000)
-               reg |= 0xf000;
+       reg = sign_extend32(reg, 12);
 
        /* convert from 0.0625 to 0.001 resolution */
        return reg * 125 / 2;