diff options
| -rw-r--r-- | drivers/regulator/core.c | 3 | ||||
| -rw-r--r-- | include/linux/regulator/driver.h | 2 |
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(®ulator_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(®ulator_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 * |
