gpio generic driver

Lucas Stach l.stach at pengutronix.de
Fri Jul 24 04:20:16 EDT 2020


Am Donnerstag, den 23.07.2020, 19:51 +0000 schrieb Barbier, Renaud:
> Question regarding the function below:
> 
> static int bgpio_get(struct gpio_chip *gc, unsigned int gpio)
>   {
>           struct bgpio_chip *bgc = to_bgpio_chip(gc);
> 
> ~         return bgc->read_reg(bgc->reg_dat) & bgc->pin2mask(bgc, gpio);
>   }
> 
> This returns the value from the register i.e the value as in 0x01000000 for bit 3BE or 28LE. This is what I see using the drivers/gpio/gpio-mpc8xxx.c driver.
> 
> Is it not supposed to return just 0 or 1?
> 
> Linux has
> 
> return !!(gc->read_reg(gc->reg_dat) & bgpio_line2mask(gc, gpio));

This shouldn't make a difference when the return value is just used in
a condition, but it may confuse other uses which expect the normalized
1/0 form.

Care to send a patch to change this to the more correct Linux version?

Regards,
Lucas




More information about the barebox mailing list