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:
Родитель
bd56b051c9
Коммит
40e568f9c8
|
@ -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;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче