regulator: refcount fixes
authorDavid Brownell <dbrownell@users.sourceforge.net>
Thu, 12 Mar 2009 00:43:34 +0000 (16:43 -0800)
committerLiam Girdwood <lrg@slimlogic.co.uk>
Tue, 31 Mar 2009 08:56:28 +0000 (09:56 +0100)
commitcd94b5053081963614f6ad77b9b66a7968056c84
tree42e2ae16a14457a4e755f63fd5ff95511220f9c8
parent1dc60343f874ce4bfbbc2c3d2f7865fc897df479
regulator: refcount fixes

Fix some refcounting issues in the regulator framework, supporting
regulator_disable() for regulators that were enabled at boot time
via machine constraints:

 - Update those regulators' usecounts after enabling, so they
   can cleanly be disabled at that level.

 - Remove the problematic per-consumer usecount, so there's
   only one level of enable/disable.

Buggy consumers could notice different bug symptoms.  The main
example would be refcounting bugs; also, any (out-of-tree) users
of the experimental regulator_set_optimum_mode() stuff which
don't call it when they're done using a regulator.

This is a net minor codeshrink.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
drivers/regulator/core.c