summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/regulator/core.c3
-rw-r--r--include/linux/regulator/driver.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 78a3a1e282a0..bcc81c0d94fd 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -4381,6 +4381,8 @@ regulator_register(const struct regulator_desc *regulator_desc,
mutex_unlock(&regulator_list_mutex);
rdev_init_debugfs(rdev);
+ rdev->proxy_consumer = regulator_proxy_consumer_register(dev,
+ config->of_node);
kfree(config);
return rdev;
@@ -4424,6 +4426,7 @@ void regulator_unregister(struct regulator_dev *rdev)
regulator_disable(rdev->supply);
regulator_put(rdev->supply);
}
+ regulator_proxy_consumer_unregister(rdev->proxy_consumer);
mutex_lock(&regulator_list_mutex);
debugfs_remove_recursive(rdev->debugfs);
flush_work(&rdev->disable_work.work);
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
index 9c2903e58adb..143598e3bd7e 100644
--- a/include/linux/regulator/driver.h
+++ b/include/linux/regulator/driver.h
@@ -18,6 +18,7 @@
#include <linux/device.h>
#include <linux/notifier.h>
#include <linux/regulator/consumer.h>
+#include <linux/regulator/proxy-consumer.h>
struct regmap;
struct regulator_dev;
@@ -399,6 +400,7 @@ struct regulator_dev {
/* time when this regulator was disabled last time */
unsigned long last_off_jiffy;
+ struct proxy_consumer *proxy_consumer;
};
struct regulator_dev *