diff options
author | Charles Keepax <ckeepax@gmail.com> | 2015-03-05 10:39:20 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-03-05 11:42:14 -0500 |
commit | 046db763aaaeb987ea01ea8c7e6d618e0ad1e6b8 (patch) | |
tree | f894b2901d8b27144479af9a722696092d934340 /include/linux/regulator/consumer.h | |
parent | c517d838eb7d07bbe9507871fab3931deccff539 (diff) |
regulator: core: Add devres versions of notifier registration
Add devm_regulator_register_notifier, this adds the resource against the
device for the consumer supply we are registering the notifier for. There
seem to be few use-cases where this wouldn't be the users intention and
this ensures the notifiers will always be removed at the correct time.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include/linux/regulator/consumer.h')
-rw-r--r-- | include/linux/regulator/consumer.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index d17e1ff7ad01..bd631ee5f1da 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h | |||
@@ -252,8 +252,12 @@ int regulator_list_hardware_vsel(struct regulator *regulator, | |||
252 | /* regulator notifier block */ | 252 | /* regulator notifier block */ |
253 | int regulator_register_notifier(struct regulator *regulator, | 253 | int regulator_register_notifier(struct regulator *regulator, |
254 | struct notifier_block *nb); | 254 | struct notifier_block *nb); |
255 | int devm_regulator_register_notifier(struct regulator *regulator, | ||
256 | struct notifier_block *nb); | ||
255 | int regulator_unregister_notifier(struct regulator *regulator, | 257 | int regulator_unregister_notifier(struct regulator *regulator, |
256 | struct notifier_block *nb); | 258 | struct notifier_block *nb); |
259 | void devm_regulator_unregister_notifier(struct regulator *regulator, | ||
260 | struct notifier_block *nb); | ||
257 | 261 | ||
258 | /* driver data - core doesn't touch */ | 262 | /* driver data - core doesn't touch */ |
259 | void *regulator_get_drvdata(struct regulator *regulator); | 263 | void *regulator_get_drvdata(struct regulator *regulator); |
@@ -515,12 +519,24 @@ static inline int regulator_register_notifier(struct regulator *regulator, | |||
515 | return 0; | 519 | return 0; |
516 | } | 520 | } |
517 | 521 | ||
522 | static inline int devm_regulator_register_notifier(struct regulator *regulator, | ||
523 | struct notifier_block *nb) | ||
524 | { | ||
525 | return 0; | ||
526 | } | ||
527 | |||
518 | static inline int regulator_unregister_notifier(struct regulator *regulator, | 528 | static inline int regulator_unregister_notifier(struct regulator *regulator, |
519 | struct notifier_block *nb) | 529 | struct notifier_block *nb) |
520 | { | 530 | { |
521 | return 0; | 531 | return 0; |
522 | } | 532 | } |
523 | 533 | ||
534 | static inline int devm_regulator_unregister_notifier(struct regulator *regulator, | ||
535 | struct notifier_block *nb) | ||
536 | { | ||
537 | return 0; | ||
538 | } | ||
539 | |||
524 | static inline void *regulator_get_drvdata(struct regulator *regulator) | 540 | static inline void *regulator_get_drvdata(struct regulator *regulator) |
525 | { | 541 | { |
526 | return NULL; | 542 | return NULL; |