gpio: of: Fix handling for deferred probe for -gpio suffix
authorTony Lindgren <tony@atomide.com>
Mon, 2 Jun 2014 23:13:46 +0000 (16:13 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 12 Jun 2014 07:57:00 +0000 (09:57 +0200)
Commit dd34c37aa3e (gpio: of: Allow -gpio suffix for property names)
added parsing for both -gpio and -gpios suffix but also changed
the handling for deferred probe unintentionally. Because of the
looping the second name will now return -ENOENT instead of
-EPROBE_DEFER. Fix the issue by breaking out of the loop if
-EPROBE_DEFER is encountered.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib.c

index d9c9cb4665dbf8899d3fe5b7ce9269b3fdee5961..2ebc9071e354884a80de8c17a978ba7bb3d28077 100644 (file)
@@ -2614,7 +2614,7 @@ static struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id,
 
                desc = of_get_named_gpiod_flags(dev->of_node, prop_name, idx,
                                                &of_flags);
-               if (!IS_ERR(desc))
+               if (!IS_ERR(desc) || (PTR_ERR(desc) == -EPROBE_DEFER))
                        break;
        }