| From 693bdaa164b40b7aa6018b98af6f7e40dbd52457 Mon Sep 17 00:00:00 2001 |
| From: Dmitry Torokhov <dmitry.torokhov@gmail.com> |
| Date: Thu, 23 Mar 2017 13:21:38 -0700 |
| Subject: [PATCH] ACPI / gpio: do not fall back to parsing _CRS when we get a |
| deferral |
| |
| commit 693bdaa164b40b7aa6018b98af6f7e40dbd52457 upstream. |
| |
| 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> |
| |
| diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c |
| index 8e318f449d23..2bd683e2be02 100644 |
| --- a/drivers/gpio/gpiolib-acpi.c |
| +++ b/drivers/gpio/gpiolib-acpi.c |
| @@ -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 */ |
| -- |
| 2.12.0 |
| |