[PATCH] gpio: Allow user to customise maximum number of GPIOs

Arnd Bergmann arnd at arndb.de
Thu Aug 18 02:47:55 PDT 2022


On Thu, Aug 18, 2022 at 11:33 AM Linus Walleij <linus.walleij at linaro.org> wrote:
>
> The per-arch GPIO number only exist for one reason: embedded
> GPIOs (think SoC:s) that refer to fixed numbers in numberspace in
> the board support code. This makes it necessary to allocate
> descriptors up front in some compiled-in GPIO chips.

As I understood, the problem that Christophe ran into is that the
dynamic registration of additional gpio chips is broken because
it unregisters the chip if the number space is exhausted:

                base = gpiochip_find_base(gc->ngpio);
                if (base < 0) {
                        ret = base;
                        spin_unlock_irqrestore(&gpio_lock, flags);
                        goto err_free_label;
                }

>From the git history, it looks like this error was never handled gracefully
even if the intention was to keep going without a number assignment,
so there are probably other bugs one runs into after changing this.

        Arnd



More information about the linux-arm-kernel mailing list