[PATCH v2 3/5] gpiolib: gpio_request(): add error message
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Fri Feb 1 03:13:51 EST 2013
Nack the is need to handle by the caller not here
Best Regards,
J.
>
> 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