gpio: mmio: fix calculation of bgpio_bits
PATCH 1/1 gpio: mmio: fix calculation of bgpio_bits
If the "ngpios" property is specified, bgpio_bits is calculated as the round up value of ngpio. At the moment, the only requirement specified is that the round up value must be a multiple of 8 but it should also be a power of 2 because we provide accessors based on the bank size in bgpio_setup_accessors().
--- drivers/gpio/gpio-mmio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpio/gpio-mmio.c +1 -1
@@ -623,7 +623,7 @@ int bgpio_init(struct gpio_chip *gc, struct device *dev,if (ret) gc->ngpio = gc->bgpio_bits;else - gc->bgpio_bits =round_up (gc->ngpio,8 ); + gc->bgpio_bits =roundup_pow_of_two (round_up (gc->ngpio,8 )); ret =bgpio_setup_io (gc, dat, set, clr, flags);if (ret)
Signature · 1 line
2.30.1
Quoted 6 lines · Asmaa Mnebhi
If the "ngpios" property is specified,
bgpio_bitsis calculated as the round up value of ngpio. At the moment, the only requirement specified is that the round up value must be a multiple of 8 but it should also be a power of 2 because we provide accessors based on the bank size inbgpio_setup_accessors().
Quoted 21 lines
Signed-off-by Asmaa Mnebhi <[email protected]>--- drivers/gpio/gpio-mmio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/gpio/gpio-mmio.c +1
-2@@ -623,7 +623,7 @@ int bgpio_init(struct gpio_chip *gc, struct device *dev,if (ret) gc->ngpio = gc->bgpio_bits;else - gc->bgpio_bits =round_up (gc->ngpio,8 ); + gc->bgpio_bits =roundup_pow_of_two (round_up (gc->ngpio,8 )); ret =bgpio_setup_io (gc, dat, set, clr, flags);if (ret) --2.30.1
Signature · 2 lines
With Best Regards, Andy Shevchenko
Quoted 10 lines · Andy Shevchenko
Quoted 6 lines · Asmaa Mnebhi
If the "ngpios" property is specified,
bgpio_bitsis calculated as the round up value of ngpio. At the moment, the only requirement specified is that the round up value must be a multiple of 8 but it should also be a power of 2 because we provide accessors based on the bank size inbgpio_setup_accessors().Reviewed-by Andy Shevchenko <[email protected]>
Btw, I do not see the initial patch in Bart's tree. I suppose you may simply send a v5 of the original one with this fix applied inplace.
Signature · 2 lines
With Best Regards, Andy Shevchenko
Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
If the "ngpios" property is specified,
bgpio_bitsis calculated as the round up value of ngpio. At the moment, the only requirement specified is that the round up value must be a multiple of 8 but it should also be a power of 2 because we provide accessors based on the bank size inbgpio_setup_accessors().
Quoted 5 lines
Quoted 1 line
Reviewed-by Andy Shevchenko <[email protected]>Btw, I do not see the initial patch in Bart's tree. I suppose you may simply send a v5 of the original one with this fix applied inplace.
Yes I was not able to find it on any branch yet so I just sent this patch based the other one.
Quoted 2 lines
Reviewed-by Andy Shevchenko <[email protected]>
Hi Bart,
Could you please add this patch to the tree?
Thanks.
Asmaa
Quoted 9 lines · Asmaa Mnebhi
Quoted 3 lines
Reviewed-by Andy Shevchenko <[email protected]>Hi Bart,
Could you please add this patch to the tree?
Thanks.
Asmaa
You still haven't sent it to my address and it's not rebased on top of v6.5-rc1.
Bart
Quoted 7 lines · Asmaa Mnebhi
If the "ngpios" property is specified,
bgpio_bitsis calculated as the round up value of ngpio. At the moment, the only requirement specified is that the round up value must be a multiple of 8 but it should also be a power of 2 because we provide accessors based on the bank size inbgpio_setup_accessors().Signed-off-by Asmaa Mnebhi <[email protected]>
Neat fixup,
Yours,
Linus Walleij