gpio: gpio-regmap: Use devm_add_action_or_reset()

Slightly simplify the devm_gpio_regmap_register() by using the
devm_add_action_or_reset().

Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Michael Walle <michael@walle.cc>
Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
This commit is contained in:
Matti Vaittinen 2021-06-03 13:00:21 +03:00 коммит произвёл Bartosz Golaszewski
Родитель bd56b051c9
Коммит 40e568f9c8
1 изменённых файлов: 11 добавлений и 14 удалений

Просмотреть файл

@ -311,9 +311,9 @@ void gpio_regmap_unregister(struct gpio_regmap *gpio)
}
EXPORT_SYMBOL_GPL(gpio_regmap_unregister);
static void devm_gpio_regmap_unregister(struct device *dev, void *res)
static void devm_gpio_regmap_unregister(void *res)
{
gpio_regmap_unregister(*(struct gpio_regmap **)res);
gpio_regmap_unregister(res);
}
/**
@ -330,20 +330,17 @@ static void devm_gpio_regmap_unregister(struct device *dev, void *res)
struct gpio_regmap *devm_gpio_regmap_register(struct device *dev,
const struct gpio_regmap_config *config)
{
struct gpio_regmap **ptr, *gpio;
ptr = devres_alloc(devm_gpio_regmap_unregister, sizeof(*ptr),
GFP_KERNEL);
if (!ptr)
return ERR_PTR(-ENOMEM);
struct gpio_regmap *gpio;
int ret;
gpio = gpio_regmap_register(config);
if (!IS_ERR(gpio)) {
*ptr = gpio;
devres_add(dev, ptr);
} else {
devres_free(ptr);
}
if (IS_ERR(gpio))
return gpio;
ret = devm_add_action_or_reset(dev, devm_gpio_regmap_unregister, gpio);
if (ret)
return ERR_PTR(ret);
return gpio;
}