pinctrl: bcm283x: Store the return value of dev_read_u32_default to int
authorOvidiu Panait <ovidiu.panait@windriver.com>
Tue, 29 Sep 2020 17:27:13 +0000 (20:27 +0300)
committerMatthias Brugger <mbrugger@suse.com>
Fri, 2 Oct 2020 15:32:28 +0000 (17:32 +0200)
Currently, the return value of dev_read_u32_default is stored in an u32,
causing the subsequent "if (function < 0)" to always be false:

u32 function;
...
function = dev_read_u32_default(config, "brcm,function", -1);
if (function < 0) {
        debug("Failed reading function for pinconfig %s (%d)\n",
                      config->name, function);
        return -EINVAL;
}

Make "function" variable an int to fix this.

Cc: Matthias Brugger <mbrugger@suse.com>
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
drivers/pinctrl/broadcom/pinctrl-bcm283x.c

index 49791c5..41da814 100644 (file)
@@ -63,7 +63,7 @@ static int bcm2835_gpio_get_func_id(struct udevice *dev, unsigned int gpio)
 int bcm283x_pinctrl_set_state(struct udevice *dev, struct udevice *config)
 {
        u32 pin_arr[MAX_PINS_PER_BANK];
-       u32 function;
+       int function;
        int i, len, pin_count = 0;
 
        if (!dev_read_prop(config, "brcm,pins", &len) || !len ||