Commit 40e568f9 authored by Matti Vaittinen's avatar Matti Vaittinen Committed by Bartosz Golaszewski

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: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: default avatarMichael Walle <michael@walle.cc>
Signed-off-by: default avatarMatti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Signed-off-by: default avatarBartosz Golaszewski <bgolaszewski@baylibre.com>
parent bd56b051
...@@ -311,9 +311,9 @@ void gpio_regmap_unregister(struct gpio_regmap *gpio) ...@@ -311,9 +311,9 @@ void gpio_regmap_unregister(struct gpio_regmap *gpio)
} }
EXPORT_SYMBOL_GPL(gpio_regmap_unregister); 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) ...@@ -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, struct gpio_regmap *devm_gpio_regmap_register(struct device *dev,
const struct gpio_regmap_config *config) const struct gpio_regmap_config *config)
{ {
struct gpio_regmap **ptr, *gpio; struct gpio_regmap *gpio;
int ret;
ptr = devres_alloc(devm_gpio_regmap_unregister, sizeof(*ptr),
GFP_KERNEL);
if (!ptr)
return ERR_PTR(-ENOMEM);
gpio = gpio_regmap_register(config); gpio = gpio_regmap_register(config);
if (!IS_ERR(gpio)) {
*ptr = gpio; if (IS_ERR(gpio))
devres_add(dev, ptr); return gpio;
} else {
devres_free(ptr); ret = devm_add_action_or_reset(dev, devm_gpio_regmap_unregister, gpio);
} if (ret)
return ERR_PTR(ret);
return gpio; return gpio;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment