ACPI / gpio: do not fall back to parsing _CRS when we get a deferral
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 23 Mar 2017 20:21:38 +0000 (13:21 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 30 Mar 2017 09:08:46 +0000 (11:08 +0200)
If, while locating GPIOs by name, we get probe deferral, we should
immediately report it to caller rather than trying to fall back to parsing
unnamed GPIOs from _CRS block.

Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-and-Tested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib-acpi.c

index 8e318f449d23b4d01d01789572fd48bde55d9b15..2bd683e2be022dd2c9a2b5c6cd7285d4c68e69eb 100644 (file)
@@ -577,8 +577,10 @@ struct gpio_desc *acpi_find_gpio(struct device *dev,
                }
 
                desc = acpi_get_gpiod_by_index(adev, propname, idx, &info);
-               if (!IS_ERR(desc) || (PTR_ERR(desc) == -EPROBE_DEFER))
+               if (!IS_ERR(desc))
                        break;
+               if (PTR_ERR(desc) == -EPROBE_DEFER)
+                       return ERR_CAST(desc);
        }
 
        /* Then from plain _CRS GPIOs */