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