mfd: tps65911-comparator: Fix an off by one bug
authorLee Jones <lee.jones@linaro.org>
Tue, 1 May 2018 09:26:59 +0000 (10:26 +0100)
committerLee Jones <lee.jones@linaro.org>
Wed, 16 May 2018 08:21:48 +0000 (09:21 +0100)
The COMP1 and COMP2 elements are in 0 and 1 respectively so this code is
accessing the wrong elements and one space beyond the end of the array.

The "id" variable is never COMP (0) so that code can be removed.

Fixes: 6851ad3ab346 ("TPS65911: Comparator: Add comparator driver")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/tps65911-comparator.c

index d223857fb4ad2e9c4a26c6be94d53fc869b4b25c..33591767fb9b53e1579b5feb00ff1b1d3e69629e 100644 (file)
@@ -22,9 +22,8 @@
 #include <linux/gpio.h>
 #include <linux/mfd/tps65910.h>
 
-#define COMP                                   0
-#define COMP1                                  1
-#define COMP2                                  2
+#define COMP1                                  0
+#define COMP2                                  1
 
 /* Comparator 1 voltage selection table in millivolts */
 static const u16 COMP_VSEL_TABLE[] = {
@@ -63,9 +62,6 @@ static int comp_threshold_set(struct tps65910 *tps65910, int id, int voltage)
        int ret;
        u8 index = 0, val;
 
-       if (id == COMP)
-               return 0;
-
        while (curr_voltage < tps_comp.uV_max) {
                curr_voltage = tps_comp.vsel_table[index];
                if (curr_voltage >= voltage)
@@ -89,9 +85,6 @@ static int comp_threshold_get(struct tps65910 *tps65910, int id)
        unsigned int val;
        int ret;
 
-       if (id == COMP)
-               return 0;
-
        ret = tps65910_reg_read(tps65910, tps_comp.reg, &val);
        if (ret < 0)
                return ret;