pinctrl: sh-pfc: Propagate errors on group config
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Mon, 20 Jun 2016 06:40:22 +0000 (08:40 +0200)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 17 Jul 2017 08:50:17 +0000 (10:50 +0200)
On group configuration, bail out if setting one of the individual pins
fails. We don't need to roll-back, the pinctrl core will do this for us.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
drivers/pinctrl/sh-pfc/pinctrl.c

index a70157f0acf4ecf7b55fb89a8bb346b537bb1903..225ecccf570675578edd61154631a113f1167530 100644 (file)
@@ -742,13 +742,16 @@ static int sh_pfc_pinconf_group_set(struct pinctrl_dev *pctldev, unsigned group,
        struct sh_pfc_pinctrl *pmx = pinctrl_dev_get_drvdata(pctldev);
        const unsigned int *pins;
        unsigned int num_pins;
-       unsigned int i;
+       unsigned int i, ret;
 
        pins = pmx->pfc->info->groups[group].pins;
        num_pins = pmx->pfc->info->groups[group].nr_pins;
 
-       for (i = 0; i < num_pins; ++i)
-               sh_pfc_pinconf_set(pctldev, pins[i], configs, num_configs);
+       for (i = 0; i < num_pins; ++i) {
+               ret = sh_pfc_pinconf_set(pctldev, pins[i], configs, num_configs);
+               if (ret)
+                       return ret;
+       }
 
        return 0;
 }