We noticed a refcounting fight between the kernel device
core devm_* and the regulator core refcounting, pertaining
to enable GPIOd:s that may be shared between multiple
regulators.

Fix this with a series that hand it all over to the
regulator core and remove any devm_* stuff pertaining
to these GPIOs.

This includes a patch to gpiolib to make gpiod_get_from_node()
available. Just go ahead and apply this to the regulator
tree.

If these need to go for fixes or not is up to the
regulator maintainer, but all commits have a proper
Fixes: tag in case they would. I have noted in the
four last commits that the gpiolib patch is a
prerequisite.

Linus Walleij (10):
  regulator: fixed: Let core handle GPIO descriptor
  regulator: lm363x: Let core handle GPIO descriptor
  regulator: lp8788-ldo: Let core handle GPIO descriptor
  regulator: max8952: Let core handle GPIO descriptor
  regulator: max8973: Let core handle GPIO descriptor
  gpio: Export gpiod_get_from_of_node()
  regulator: da9211: Let core handle GPIO descriptors
  regulator: max77686: Let core handle GPIO descriptor
  regulator: s5m8767: Let core handle GPIO descriptors
  regulator: tps65090: Let core handle GPIO descriptors

 drivers/gpio/gpiolib.h                 |  6 -----
 drivers/regulator/da9211-regulator.c   |  4 +--
 drivers/regulator/fixed.c              |  4 ++-
 drivers/regulator/lm363x-regulator.c   |  8 ++++--
 drivers/regulator/lp8788-ldo.c         |  4 ++-
 drivers/regulator/max77686-regulator.c |  3 +--
 drivers/regulator/max8952.c            |  8 +++---
 drivers/regulator/max8973-regulator.c  | 12 ++++++---
 drivers/regulator/s5m8767.c            | 37 ++++++++++++++++++--------
 drivers/regulator/tps65090-regulator.c | 10 +++----
 include/linux/gpio/consumer.h          | 13 +++++++++
 11 files changed, 72 insertions(+), 37 deletions(-)

-- 
2.19.1

Reply via email to