[PATCH] gpio: Use separate bitfield array to indicate GPIO is claimed

Marek Vasut marex at denx.de
Fri Jul 28 15:59:21 CEST 2023


On 7/28/23 03:52, Simon Glass wrote:

[...]

>> @@ -1341,6 +1358,13 @@ static int gpio_post_probe(struct udevice *dev)
>>          if (!uc_priv->name)
>>                  return -ENOMEM;
>>
>> +       uc_priv->claimed = calloc(DIV_ROUND_UP(uc_priv->gpio_count, 32),
>> +                                 sizeof(*uc_priv->claimed));
>> +       if (!uc_priv->claimed) {
>> +               free(uc_priv->name);
>> +               return -ENOMEM;
>> +       }
> 
> We already have the name[] array which holds the name for each GPIO.
> What do you think about a struct for each GPIO, with both the name and
> the bool in it. It is messy to have two separate, mirrored arrays.

I think that would not be memory efficient, which is why I picked the 
array. You would basically waste a few bytes for each "claimed" flag 
instead of just one bit for each flag.

[...]


More information about the U-Boot mailing list