pinctrl: imx: do not fail when parsing a group fails
authorSascha Hauer <s.hauer@pengutronix.de>
Fri, 9 Aug 2013 12:20:52 +0000 (14:20 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 15 Aug 2013 20:13:17 +0000 (22:13 +0200)
The i.MX pinctrl driver completely bails out when it detects an error
in the pinctrl nodes. This usually means that whatever error a
devicetree has the user is left blind because even the console cannot
be initialized without working pinmux.

Instead of bailing out completely, just continue probing. This makes
the pinctrl driver work, only the erroneous groups will fail later
during pin request time.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-imx.c

index deeb740fa94e482da6176dda325d145f117cec38..b8077d90364178de2dd6829a12f0f04ef772afb9 100644 (file)
@@ -519,7 +519,6 @@ static int imx_pinctrl_parse_functions(struct device_node *np,
        struct device_node *child;
        struct imx_pmx_func *func;
        struct imx_pin_group *grp;
-       int ret;
        static u32 grp_index;
        u32 i = 0;
 
@@ -540,9 +539,7 @@ static int imx_pinctrl_parse_functions(struct device_node *np,
        for_each_child_of_node(np, child) {
                func->groups[i] = child->name;
                grp = &info->groups[grp_index++];
-               ret = imx_pinctrl_parse_groups(child, grp, info, i++);
-               if (ret)
-                       return ret;
+               imx_pinctrl_parse_groups(child, grp, info, i++);
        }
 
        return 0;