gpio: regmap: move drvdata to config data
authorMichael Walle <michael@walle.cc>
Fri, 4 Jun 2021 22:58:57 +0000 (00:58 +0200)
committerBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 7 Jun 2021 13:39:19 +0000 (15:39 +0200)
commit9b3c47f124b60770f7738710e95801284d69d24f
tree398e4260fcd021b82e59c80ad9a01f5ebf74c264
parent043a0c9fe7a036ec5e1b85a8894d6f69bf996470
gpio: regmap: move drvdata to config data

Drop gpio_regmap_set_drvdata() and instead add it to the configuration
data passed to gpio_regmap_register().

gpio_regmap_set_drvdata() can't really be used in a race free way. This
is because the gpio_regmap object which is needed by _set_drvdata() is
returned by gpio_regmap_register(). On the other hand, the callbacks
which use the drvdata might already be called right after the
gpiochip_add() call in gpio_regmap_register(). Therefore, we have to
provide the drvdata early before we call gpiochip_add().

Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
drivers/gpio/gpio-regmap.c
include/linux/gpio/regmap.h