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 | |
| 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')
| -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; |
