public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] regulator: enable supply regulator only when use count is zero
@ 2010-11-09 14:50 Bengt Jonsson
  2010-11-09 15:13 ` Mark Brown
  2010-11-09 21:11 ` Liam Girdwood
  0 siblings, 2 replies; 6+ messages in thread
From: Bengt Jonsson @ 2010-11-09 14:50 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown
  Cc: linux-kernel, Linus Walleij, Mattias Wallin, Bengt Jonsson

Supply regulators are disabled only when the last
reference count is removed on the child regulator
(the use count goes from 1 to 0). This patch changes
the behaviour of enable so the supply regulator is
enabled only when the use count of the child
regulator goes from 0 to 1.

Change-Id: Ic322801119fefaabc1ed4fef248e463e67fb1857
Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
---
 drivers/regulator/core.c |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index f1d10c9..cd1f5a8 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1268,13 +1268,15 @@ static int _regulator_enable(struct regulator_dev *rdev)
 {
 	int ret, delay;
 
-	/* do we need to enable the supply regulator first */
-	if (rdev->supply) {
-		ret = _regulator_enable(rdev->supply);
-		if (ret < 0) {
-			printk(KERN_ERR "%s: failed to enable %s: %d\n",
-			       __func__, rdev_get_name(rdev), ret);
-			return ret;
+	if (rdev->use_count == 0) {
+		/* do we need to enable the supply regulator first */
+		if (rdev->supply) {
+			ret = _regulator_enable(rdev->supply);
+			if (ret < 0) {
+				printk(KERN_ERR "%s: failed to enable %s: %d\n",
+				       __func__, rdev_get_name(rdev), ret);
+				return ret;
+			}
 		}
 	}
 
-- 
1.7.2.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [PATCH] regulator: enable supply regulator only when use count is zero
@ 2010-11-10 10:06 Bengt Jonsson
  2010-11-10 16:37 ` Mark Brown
  2010-11-10 21:19 ` Liam Girdwood
  0 siblings, 2 replies; 6+ messages in thread
From: Bengt Jonsson @ 2010-11-10 10:06 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown
  Cc: linux-kernel, Linus Walleij, Mattias Wallin, Bengt Jonsson

Supply regulators are disabled only when the last
reference count is removed on the child regulator
(the use count goes from 1 to 0). This patch changes
the behaviour of enable so the supply regulator is
enabled only when the use count of the child
regulator goes from 0 to 1.

Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
---
 drivers/regulator/core.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 27d062e..c577c6d 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1267,15 +1267,17 @@ static int _regulator_enable(struct regulator_dev *rdev)
 {
 	int ret, delay;
 
-	/* do we need to enable the supply regulator first */
-	if (rdev->supply) {
-		mutex_lock(&rdev->supply->mutex);
-		ret = _regulator_enable(rdev->supply);
-		mutex_unlock(&rdev->supply->mutex);
-		if (ret < 0) {
-			printk(KERN_ERR "%s: failed to enable %s: %d\n",
-			       __func__, rdev_get_name(rdev), ret);
-			return ret;
+	if (rdev->use_count == 0) {
+		/* do we need to enable the supply regulator first */
+		if (rdev->supply) {
+			mutex_lock(&rdev->supply->mutex);
+			ret = _regulator_enable(rdev->supply);
+			mutex_unlock(&rdev->supply->mutex);
+			if (ret < 0) {
+				printk(KERN_ERR "%s: failed to enable %s: %d\n",
+				       __func__, rdev_get_name(rdev), ret);
+				return ret;
+			}
 		}
 	}
 
-- 
1.7.2.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-11-10 21:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-09 14:50 [PATCH] regulator: enable supply regulator only when use count is zero Bengt Jonsson
2010-11-09 15:13 ` Mark Brown
2010-11-09 21:11 ` Liam Girdwood
  -- strict thread matches above, loose matches on Subject: below --
2010-11-10 10:06 Bengt Jonsson
2010-11-10 16:37 ` Mark Brown
2010-11-10 21:19 ` Liam Girdwood

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox