diff options
Diffstat (limited to 'drivers/gpio/gpiolib-legacy.c')
-rw-r--r-- | drivers/gpio/gpiolib-legacy.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/gpio/gpiolib-legacy.c b/drivers/gpio/gpiolib-legacy.c index 078ae6c2df79..8b830996fe02 100644 --- a/drivers/gpio/gpiolib-legacy.c +++ b/drivers/gpio/gpiolib-legacy.c | |||
@@ -24,6 +24,10 @@ int gpio_request_one(unsigned gpio, unsigned long flags, const char *label) | |||
24 | 24 | ||
25 | desc = gpio_to_desc(gpio); | 25 | desc = gpio_to_desc(gpio); |
26 | 26 | ||
27 | /* Compatibility: assume unavailable "valid" GPIOs will appear later */ | ||
28 | if (!desc && gpio_is_valid(gpio)) | ||
29 | return -EPROBE_DEFER; | ||
30 | |||
27 | err = gpiod_request(desc, label); | 31 | err = gpiod_request(desc, label); |
28 | if (err) | 32 | if (err) |
29 | return err; | 33 | return err; |
@@ -62,7 +66,13 @@ EXPORT_SYMBOL_GPL(gpio_request_one); | |||
62 | 66 | ||
63 | int gpio_request(unsigned gpio, const char *label) | 67 | int gpio_request(unsigned gpio, const char *label) |
64 | { | 68 | { |
65 | return gpiod_request(gpio_to_desc(gpio), label); | 69 | struct gpio_desc *desc = gpio_to_desc(gpio); |
70 | |||
71 | /* Compatibility: assume unavailable "valid" GPIOs will appear later */ | ||
72 | if (!desc && gpio_is_valid(gpio)) | ||
73 | return -EPROBE_DEFER; | ||
74 | |||
75 | return gpiod_request(desc, label); | ||
66 | } | 76 | } |
67 | EXPORT_SYMBOL_GPL(gpio_request); | 77 | EXPORT_SYMBOL_GPL(gpio_request); |
68 | 78 | ||