aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpiolib-legacy.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpio/gpiolib-legacy.c')
-rw-r--r--drivers/gpio/gpiolib-legacy.c12
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
63int gpio_request(unsigned gpio, const char *label) 67int 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}
67EXPORT_SYMBOL_GPL(gpio_request); 77EXPORT_SYMBOL_GPL(gpio_request);
68 78