]> git.sur5r.net Git - u-boot/commitdiff
drivers/power/regulator/max77686.c: Fix comparisons of unsigned expressions
authorTom Rini <trini@konsulko.com>
Wed, 10 May 2017 19:20:17 +0000 (15:20 -0400)
committerJaehoon Chung <jh80.chung@samsung.com>
Mon, 29 May 2017 08:28:52 +0000 (17:28 +0900)
Inside of
max77686_buck_volt2hex/max77686_buck_hex2volt/max77686_ldo_volt2hex we
check that the value we calculate is >= 0 however we declare 'hex' as
unsigned int making these always true.  Mark these as 'int' instead.  We
also move hex_max to int as they are constants that are 0x3f/0xff.
Given that the above functions are marked as returning an int, make the
variables we assign their return value to also be int to be able to
catch the error condition now.  Reported by clang-3.8.

Cc: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
drivers/power/regulator/max77686.c

index 7479af734ade6617eb9ed3142c0323d25013fd85..5e5815f3978986619cb7cc30ec6f31ae9447f564 100644 (file)
@@ -71,8 +71,8 @@ static const char max77686_buck_out[] = {
 
 static int max77686_buck_volt2hex(int buck, int uV)
 {
-       unsigned int hex = 0;
-       unsigned int hex_max = 0;
+       int hex = 0;
+       int hex_max = 0;
 
        switch (buck) {
        case 2:
@@ -105,7 +105,7 @@ static int max77686_buck_volt2hex(int buck, int uV)
 static int max77686_buck_hex2volt(int buck, int hex)
 {
        unsigned uV = 0;
-       unsigned int hex_max = 0;
+       int hex_max = 0;
 
        if (hex < 0)
                goto bad_hex;
@@ -140,7 +140,7 @@ bad_hex:
 
 static int max77686_ldo_volt2hex(int ldo, int uV)
 {
-       unsigned int hex = 0;
+       int hex = 0;
 
        switch (ldo) {
        case 1:
@@ -319,9 +319,9 @@ static int max77686_ldo_modes(int ldo, struct dm_regulator_mode **modesp,
 
 static int max77686_ldo_val(struct udevice *dev, int op, int *uV)
 {
-       unsigned int hex, adr;
+       unsigned int adr;
        unsigned char val;
-       int ldo, ret;
+       int hex, ldo, ret;
 
        if (op == PMIC_OP_GET)
                *uV = 0;
@@ -360,9 +360,9 @@ static int max77686_ldo_val(struct udevice *dev, int op, int *uV)
 
 static int max77686_buck_val(struct udevice *dev, int op, int *uV)
 {
-       unsigned int hex, mask, adr;
+       unsigned int mask, adr;
        unsigned char val;
-       int buck, ret;
+       int hex, buck, ret;
 
        buck = dev->driver_data;
        if (buck < 1 || buck > MAX77686_BUCK_NUM) {