Message ID | cf34b0268bf298314392b0ed8831a4d9cd14efca.1622008846.git.matti.vaittinen@fi.rohmeurope.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | gpio: gpio-regmap: Support few custom operations | expand |
Am 2021-05-26 08:10, schrieb Matti Vaittinen: > Slightly simplify the devm_gpio_regmap_register() by using the > devm_add_action_or_reset(). Reviewed-by: Michael Walle <michael@walle.cc> -michael
On Fri, May 28, 2021 at 7:17 PM Michael Walle <michael@walle.cc> wrote: > > Am 2021-05-26 08:10, schrieb Matti Vaittinen: > > Slightly simplify the devm_gpio_regmap_register() by using the > > devm_add_action_or_reset(). > > Reviewed-by: Michael Walle <michael@walle.cc> > > -michael This doesn't apply on its own - looks like it depends on patch 1/3. Would you mind sending it separately rebased on top of my for-next branch at https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git/? Bart
Morning Bart, On Wed, 2021-06-02 at 13:54 +0200, Bartosz Golaszewski wrote: > On Fri, May 28, 2021 at 7:17 PM Michael Walle <michael@walle.cc> > wrote: > > Am 2021-05-26 08:10, schrieb Matti Vaittinen: > > > Slightly simplify the devm_gpio_regmap_register() by using the > > > devm_add_action_or_reset(). > > > > Reviewed-by: Michael Walle <michael@walle.cc> > > > > -michael > > This doesn't apply on its own - looks like it depends on patch 1/3. > Would you mind sending it separately rebased on top of my for-next > branch at > https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git/? > Sure. No problem. I'll respin this sole patch today unless Michael plans adding other changes - in which case it might be best he includes this just to avoid the conflicts. > Bart
Am 3. Juni 2021 06:26:03 MESZ schrieb Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>: >Morning Bart, > >On Wed, 2021-06-02 at 13:54 +0200, Bartosz Golaszewski wrote: >> On Fri, May 28, 2021 at 7:17 PM Michael Walle <michael@walle.cc> >> wrote: >> > Am 2021-05-26 08:10, schrieb Matti Vaittinen: >> > > Slightly simplify the devm_gpio_regmap_register() by using the >> > > devm_add_action_or_reset(). >> > >> > Reviewed-by: Michael Walle <michael@walle.cc> >> > >> > -michael >> >> This doesn't apply on its own - looks like it depends on patch 1/3. >> Would you mind sending it separately rebased on top of my for-next >> branch at >> https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git/? >> > >Sure. No problem. I'll respin this sole patch today unless Michael >plans adding other changes - in which case it might be best he includes >this just to avoid the conflicts. Both are fine by me. I don't expect any conflicts, but I can also pick this up when I'm picking the gpio_regmap_set_drvdata() stuff of the other patch. I'll do it probably tomorrow. -michael
diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c index 4f0903d1acd5..ce5bc9e0d684 100644 --- a/drivers/gpio/gpio-regmap.c +++ b/drivers/gpio/gpio-regmap.c @@ -341,9 +341,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); } /** @@ -361,20 +361,17 @@ struct gpio_regmap *devm_gpio_regmap_register(struct device *dev, const struct gpio_regmap_config *config, const struct gpio_regmap_ops *ops) { - 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, ops); - 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; }
Slightly simplify the devm_gpio_regmap_register() by using the devm_add_action_or_reset(). Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> --- Changelog v3: - gpio-regmap: Use the devm_add_action_or_reset() instead of the devm_add_action() --- drivers/gpio/gpio-regmap.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-)