Merge tag 'iio-for-3.17a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23...
[firefly-linux-kernel-4.4.55.git] / drivers / hwmon / ina2xx.c
index 93d26e8af3e2002b8838c08b13f06787e6021dde..bfd3f3eeabcd90cd52ad4cdef5155f00195e2c26 100644 (file)
@@ -148,7 +148,8 @@ static int ina2xx_get_value(struct ina2xx_data *data, u8 reg)
 
        switch (reg) {
        case INA2XX_SHUNT_VOLTAGE:
-               val = DIV_ROUND_CLOSEST(data->regs[reg],
+               /* signed register */
+               val = DIV_ROUND_CLOSEST((s16)data->regs[reg],
                                        data->config->shunt_div);
                break;
        case INA2XX_BUS_VOLTAGE:
@@ -160,8 +161,8 @@ static int ina2xx_get_value(struct ina2xx_data *data, u8 reg)
                val = data->regs[reg] * data->config->power_lsb;
                break;
        case INA2XX_CURRENT:
-               /* LSB=1mA (selected). Is in mA */
-               val = data->regs[reg];
+               /* signed register, LSB=1mA (selected), in mA */
+               val = (s16)data->regs[reg];
                break;
        default:
                /* programmer goofed */