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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 22:09 Fri 01 Feb     , Antony Pavlov wrote:
> On 1 February 2013 12:13, Jean-Christophe PLAGNIOL-VILLARD
> <plagnioj@xxxxxxxxxxxx> wrote:
> > Nack the is need to handle by the caller not here
> 
> You want to get duplicated code? Ok, you will get in the "patch v3" series! :)))
this is not duplicated code the caller known the dev or the part of the code
that fault

and we do auto request which is silent or other par of the code report the
erroor at higher level to yet I do not want the generic API to print something

Best Regards,
J.
> 
> >
> > Best Regards,
> > J.
> >>
> >> Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx>
> >> ---
> >>  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
> >>
> 
> 
> 
> -- 
> Best regards,
>   Antony Pavlov

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox


[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux