[PATCH v2 3/5] gpiolib: gpio_request(): add error message

Antony Pavlov antonynpavlov at gmail.com
Thu Jan 31 16:46:34 EST 2013


Signed-off-by: Antony Pavlov <antonynpavlov at gmail.com>
---
 drivers/gpio/gpio.c |   29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/drivers/gpio/gpio.c b/drivers/gpio/gpio.c
index 5876454..179fc7b 100644
--- a/drivers/gpio/gpio.c
+++ b/drivers/gpio/gpio.c
@@ -29,22 +29,37 @@ int gpio_request(unsigned gpio, const char *label)
 	struct gpio_chip *chip = gi->chip;
 	int ret;
 
-	if (!gpio_is_valid(gpio))
-		return -EINVAL;
-	if (!chip)
-		return -EINVAL;
-	if (gi->requested)
-		return -EBUSY;
+	if (!gpio_is_valid(gpio)) {
+		ret = -EINVAL;
+		goto err;
+	}
+
+	if (!chip) {
+		ret = -EINVAL;
+		goto err;
+	}
+
+	if (gi->requested) {
+		ret = -EBUSY;
+		goto err;
+	}
+
 	if (chip->ops->request) {
 		ret = chip->ops->request(chip, gpio - chip->base);
 		if (ret)
-			return ret;
+			goto err;
 	}
 
 	gi->requested = true;
 	gi->label = xstrdup(label);
 
 	return 0;
+
+err:
+	pr_err("can't request gpio %d as %s (%d)\n",
+		gpio, label, ret);
+
+	return ret;
 }
 
 int gpio_request_input(unsigned gpio, const char *label)
-- 
1.7.10.4




More information about the barebox mailing list