aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavier Martinez Canillas <javier@osg.samsung.com>2016-04-20 11:16:37 -0400
committerLee Jones <lee.jones@linaro.org>2016-05-09 03:23:52 -0400
commitd6441dc5ce2bc8b296a65952d840d2f16e37f974 (patch)
treeb8dcb81743c279a746d61b7db9099f597d83d79b
parent32852bcab29d8d43c5d4ddeed9937817e8e8c990 (diff)
mfd: twl6040: Disable and unprepare clk32k in twl6040_power() error path
The clk32k clock is prepared and enabled in twl6040_power() but the clock is left enabled in case of an error while it should be disable/unprepared. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
-rw-r--r--drivers/mfd/twl6040.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mfd/twl6040.c b/drivers/mfd/twl6040.c
index 85cc32a2e0e0..852d5874aabb 100644
--- a/drivers/mfd/twl6040.c
+++ b/drivers/mfd/twl6040.c
@@ -304,6 +304,7 @@ int twl6040_power(struct twl6040 *twl6040, int on)
304 /* use automatic power-up sequence */ 304 /* use automatic power-up sequence */
305 ret = twl6040_power_up_automatic(twl6040); 305 ret = twl6040_power_up_automatic(twl6040);
306 if (ret) { 306 if (ret) {
307 clk_disable_unprepare(twl6040->clk32k);
307 twl6040->power_count = 0; 308 twl6040->power_count = 0;
308 goto out; 309 goto out;
309 } 310 }
@@ -311,6 +312,7 @@ int twl6040_power(struct twl6040 *twl6040, int on)
311 /* use manual power-up sequence */ 312 /* use manual power-up sequence */
312 ret = twl6040_power_up_manual(twl6040); 313 ret = twl6040_power_up_manual(twl6040);
313 if (ret) { 314 if (ret) {
315 clk_disable_unprepare(twl6040->clk32k);
314 twl6040->power_count = 0; 316 twl6040->power_count = 0;
315 goto out; 317 goto out;
316 } 318 }