[PATCH v2 02/11] gpiolib: Simplify code of gpio_request_one()

Andrey Smirnov andrew.smirnov at gmail.com
Wed Jul 26 09:31:11 PDT 2017


Looks like we can get rid of an 'if' and 'goto', so do it to simplify
the code.

Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
---
 drivers/gpio/gpiolib.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index d081e02fd..67d771bae 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -119,6 +119,7 @@ void gpio_free(unsigned gpio)
 int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)
 {
 	int err;
+	struct gpio_info *gi = gpio_to_desc(gpio);
 
 	/*
 	 * Not all of the flags below are mulit-bit, but, for the sake
@@ -134,10 +135,7 @@ int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)
 	if (err)
 		return err;
 
-	if (active_low) {
-		struct gpio_info *gi = gpio_to_desc(gpio);
-		gi->active_low = true;
-	}
+	gi->active_low = active_low;
 
 	if (dir_in)
 		err = gpio_direction_input(gpio);
@@ -147,12 +145,8 @@ int gpio_request_one(unsigned gpio, unsigned long flags, const char *label)
 		err = gpio_direction_output(gpio, init_high);
 
 	if (err)
-		goto free_gpio;
-
-	return 0;
+		gpio_free(gpio);
 
- free_gpio:
-	gpio_free(gpio);
 	return err;
 }
 EXPORT_SYMBOL_GPL(gpio_request_one);
-- 
2.13.3




More information about the barebox mailing list