gpiolib: Unify allocation and initialization of GPIO valid mask

Now that the of_gpiochip_add() doesn't use valid mask, we may
unify GPIO valid mask allocation and initialization. With this
it makes a symmetry to the similar which we done for IRQ chip.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
Andy Shevchenko 2023-05-27 14:40:57 +03:00 committed by Bartosz Golaszewski
parent 05a854c565
commit 1a55fc4012

View File

@ -482,18 +482,6 @@ static unsigned int gpiochip_count_reserved_ranges(struct gpio_chip *gc)
return 0;
}
static int gpiochip_alloc_valid_mask(struct gpio_chip *gc)
{
if (!(gpiochip_count_reserved_ranges(gc) || gc->init_valid_mask))
return 0;
gc->valid_mask = gpiochip_allocate_mask(gc);
if (!gc->valid_mask)
return -ENOMEM;
return 0;
}
static int gpiochip_apply_reserved_ranges(struct gpio_chip *gc)
{
struct device *dev = &gc->gpiodev->dev;
@ -534,6 +522,13 @@ static int gpiochip_init_valid_mask(struct gpio_chip *gc)
{
int ret;
if (!(gpiochip_count_reserved_ranges(gc) || gc->init_valid_mask))
return 0;
gc->valid_mask = gpiochip_allocate_mask(gc);
if (!gc->valid_mask)
return -ENOMEM;
ret = gpiochip_apply_reserved_ranges(gc);
if (ret)
return ret;
@ -860,7 +855,7 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
if (ret)
goto err_remove_from_list;
ret = gpiochip_alloc_valid_mask(gc);
ret = gpiochip_init_valid_mask(gc);
if (ret)
goto err_remove_from_list;
@ -868,10 +863,6 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
if (ret)
goto err_free_gpiochip_mask;
ret = gpiochip_init_valid_mask(gc);
if (ret)
goto err_remove_of_chip;
for (i = 0; i < gc->ngpio; i++) {
struct gpio_desc *desc = &gdev->descs[i];