aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2009-12-01 21:12:27 +0000
committerLiam Girdwood <lrg@slimlogic.co.uk>2010-03-03 14:49:23 +0000
commit84b6826306119dc3c41ef9d7ed6c408112f63301 (patch)
treec80020268cc8b2b62524f4e9f29278332db37310 /drivers/regulator
parent6faa7e0a4bb1215fb0a0093a0d426a72599e5982 (diff)
downloadkernel_samsung_smdk4412-84b6826306119dc3c41ef9d7ed6c408112f63301.zip
kernel_samsung_smdk4412-84b6826306119dc3c41ef9d7ed6c408112f63301.tar.gz
kernel_samsung_smdk4412-84b6826306119dc3c41ef9d7ed6c408112f63301.tar.bz2
regulator: Add notifier event on regulator disable
The intended use case is for drivers which disable regulators to save power but need to do some work to restore the hardware state when restarting. If the supplies are not actually disabled due to board limits or sharing with other active devices this notifier allows the driver to avoid unneeded reinitialisation, particularly when used with runtime PM. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'drivers/regulator')
-rw-r--r--drivers/regulator/core.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index b60a4c9..6d2ce8a 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1341,6 +1341,9 @@ static int _regulator_disable(struct regulator_dev *rdev)
__func__, rdev_get_name(rdev));
return ret;
}
+
+ _notifier_call_chain(rdev, REGULATOR_EVENT_DISABLE,
+ NULL);
}
/* decrease our supplies ref count and disable if required */
@@ -1399,8 +1402,8 @@ static int _regulator_force_disable(struct regulator_dev *rdev)
return ret;
}
/* notify other consumers that power has been forced off */
- _notifier_call_chain(rdev, REGULATOR_EVENT_FORCE_DISABLE,
- NULL);
+ _notifier_call_chain(rdev, REGULATOR_EVENT_FORCE_DISABLE |
+ REGULATOR_EVENT_DISABLE, NULL);
}
/* decrease our supplies ref count and disable if required */