diff options
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/gpiolib-acpi.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c index d47b22ac3ecb..fb2e14670b7a 100644 --- a/drivers/gpio/gpiolib-acpi.c +++ b/drivers/gpio/gpiolib-acpi.c @@ -974,20 +974,14 @@ __acpi_find_gpio(struct fwnode_handle *fwnode, const char *con_id, unsigned int return ERR_CAST(desc); if (!IS_ERR(desc)) - break; + return desc; } /* Then from plain _CRS GPIOs */ - if (IS_ERR(desc)) { - if (!adev || !acpi_can_fallback_to_crs(adev, con_id)) - return ERR_PTR(-ENOENT); - - desc = acpi_get_gpiod_by_index(adev, NULL, idx, info); - if (IS_ERR(desc)) - return desc; - } + if (!adev || !acpi_can_fallback_to_crs(adev, con_id)) + return ERR_PTR(-ENOENT); - return desc; + return acpi_get_gpiod_by_index(adev, NULL, idx, info); } struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode, |