drivers/power/regulator/max77686.c: Fix comparisons of unsigned expressions

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>
master
Tom Rini 7 years ago committed by Jaehoon Chung
parent 7ca0d3dde1
commit aae78fa774
  1. 16
      drivers/power/regulator/max77686.c

@ -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) {

Loading…
Cancel
Save