[PATCH] GPIO: Add gpio_to_desc helper

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Sat May 11 10:50:01 EDT 2013


On 18:46 Sat 11 May     , Alexander Shiyan wrote:
> > > > > > On 18:04 Fri 10 May     , Alexander Shiyan wrote:
> > > > > > > Patch adds gpio_to_desc helper for validate GPIO.
> > > > > > > A bit optimization is performed (about -250 bytes on ARM).
> > > > > > > 
> > > > > > > Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
> > > > > > > ---
> > > > > > >  drivers/gpio/gpiolib.c | 97 ++++++++++++++++++++++++++------------------------
> > > > > > >  1 file changed, 51 insertions(+), 46 deletions(-)
> > > > > > > 
> > > > > > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> > > > > > > index 6398268..d7aa094 100644
> > > > > > > --- a/drivers/gpio/gpiolib.c
> > > > > > > +++ b/drivers/gpio/gpiolib.c
> > > > > > > @@ -32,20 +32,30 @@ static int gpio_ensure_requested(struct gpio_info *gi, int gpio)
> > > > > > >  	return gpio_request(gpio, "gpio");
> > > > > > >  }
> > > > > > >  
> > > > > > > +static struct gpio_info *gpio_to_desc(unsigned gpio)
> > > > > > > +{
> > > > > > > +	if (!gpio_is_valid(gpio))
> > > > > > put the WARN too as we need to known a gpio_xxx is used on a non valid gpio
> > > > > 
> > > > > Original bb code does not contain any warnings here. So if it really
> > > > > necessary it can be added later.
> > > > 
> > > > put it as we keep the code inline with the kernel a key point for sync
> > > 
> > > And this warning avoid my second patch to remove checks when we are
> > > call gpio_free/set/get etc... with non existent (optional) gpios.
> > 
> > yes as this patch break the compatibility with the kernel sorry NACK on it
> > 
> > > I strongly do not want to add it.
> > 
> > if you can gpio_xxx with an invalid gpio it's wrong
> > and as we keep the same API as in linux we need to WARN
> > as you DO need to check the gpio is valid before calling the gpio lib
> > 
> > we keep api in sync to simplify maintainance between barebox and the kernel
> 
> I prefer to add one warning to gpio_request only. It can be useful for debug
> and not annoy if gpio is really is optional. OK?
please follow the linux implementation

all of them

if I call the gpio_set_value I expect it to set the value

If I'm nust and call with a invalid big warning fix your code

if the code we mostly do not check the return of gpio_set & co

as they work if you have the gpio requested and always return 0 (mostlty)

Best Regards,
J.



More information about the barebox mailing list