Re: [PATCH v1 4/8] gpiolib: Get rid of ARCH_NR_GPIOS

From: Christophe Leroy
Date: Wed Aug 31 2022 - 01:49:12 EST




Le 30/08/2022 à 22:18, Andy Shevchenko a écrit :
> On Mon, Aug 29, 2022 at 7:19 PM Christophe Leroy
> <christophe.leroy@xxxxxxxxxx> wrote:
>>
>> Since commit 14e85c0e69d5 ("gpio: remove gpio_descs global array")
>> there is no limitation on the number of GPIOs that can be allocated
>> in the system since the allocation is fully dynamic.
>>
>> ARCH_NR_GPIOS is today only used in order to provide downwards
>> gpiobase allocation from that value, while static allocation is
>> performed upwards from 0. However that has the disadvantage of
>> limiting the number of GPIOs that can be registered in the system.
>>
>> To overcome this limitation without requiring each and every
>> platform to provide its 'best-guess' maximum number, rework the
>> allocation to allocate upwards, allowing approx 2 millions of
>> GPIOs.
>>
>> In order to still allow static allocation for legacy drivers, define
>> GPIO_DYNAMIC_BASE with the value 256 as the start for dynamic
>> allocation.
>
> Not sure about 256, but I understand that this can only be the best guess.
>

Well, it's already just a precaution. Linus W's expectation is that
static ones are allocated at first, they should already be allocated
when we start doing dynamic allocations so he was even thinking that we
could have started at 0 already.

But I can start higher if you think it is safer, maybe at 512 which is
the default ARCH_NR_GPIOS today.