* [PATCH 1/2] mfd: twl6040: Disable and unprepare clk32k in twl6040_power() error path
@ 2016-04-20 15:16 Javier Martinez Canillas
2016-04-20 15:16 ` [PATCH 2/2] mfd: twl6040: Check clk_prepare_enable() return value in twl6040_power() Javier Martinez Canillas
2016-04-25 16:18 ` [PATCH 1/2] mfd: twl6040: Disable and unprepare clk32k in twl6040_power() error path Lee Jones
0 siblings, 2 replies; 4+ messages in thread
From: Javier Martinez Canillas @ 2016-04-20 15:16 UTC (permalink / raw)
To: linux-kernel
Cc: Javier Martinez Canillas, linux-omap, Tony Lindgren, Lee Jones
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>
---
drivers/mfd/twl6040.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/mfd/twl6040.c b/drivers/mfd/twl6040.c
index 08a693cd38cc..4de92c16dfb8 100644
--- a/drivers/mfd/twl6040.c
+++ b/drivers/mfd/twl6040.c
@@ -300,6 +300,7 @@ int twl6040_power(struct twl6040 *twl6040, int on)
/* use automatic power-up sequence */
ret = twl6040_power_up_automatic(twl6040);
if (ret) {
+ clk_disable_unprepare(twl6040->clk32k);
twl6040->power_count = 0;
goto out;
}
@@ -307,6 +308,7 @@ int twl6040_power(struct twl6040 *twl6040, int on)
/* use manual power-up sequence */
ret = twl6040_power_up_manual(twl6040);
if (ret) {
+ clk_disable_unprepare(twl6040->clk32k);
twl6040->power_count = 0;
goto out;
}
--
2.5.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] mfd: twl6040: Check clk_prepare_enable() return value in twl6040_power()
2016-04-20 15:16 [PATCH 1/2] mfd: twl6040: Disable and unprepare clk32k in twl6040_power() error path Javier Martinez Canillas
@ 2016-04-20 15:16 ` Javier Martinez Canillas
2016-04-25 16:18 ` Lee Jones
2016-04-25 16:18 ` [PATCH 1/2] mfd: twl6040: Disable and unprepare clk32k in twl6040_power() error path Lee Jones
1 sibling, 1 reply; 4+ messages in thread
From: Javier Martinez Canillas @ 2016-04-20 15:16 UTC (permalink / raw)
To: linux-kernel
Cc: Javier Martinez Canillas, linux-omap, Tony Lindgren, Lee Jones
The clk_prepare_enable() function can fail so check the return
value and propagate the error in case of a failure.
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---
drivers/mfd/twl6040.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/mfd/twl6040.c b/drivers/mfd/twl6040.c
index 4de92c16dfb8..852d5874aabb 100644
--- a/drivers/mfd/twl6040.c
+++ b/drivers/mfd/twl6040.c
@@ -291,7 +291,11 @@ int twl6040_power(struct twl6040 *twl6040, int on)
if (twl6040->power_count++)
goto out;
- clk_prepare_enable(twl6040->clk32k);
+ ret = clk_prepare_enable(twl6040->clk32k);
+ if (ret) {
+ twl6040->power_count = 0;
+ goto out;
+ }
/* Allow writes to the chip */
regcache_cache_only(twl6040->regmap, false);
--
2.5.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] mfd: twl6040: Disable and unprepare clk32k in twl6040_power() error path
2016-04-20 15:16 [PATCH 1/2] mfd: twl6040: Disable and unprepare clk32k in twl6040_power() error path Javier Martinez Canillas
2016-04-20 15:16 ` [PATCH 2/2] mfd: twl6040: Check clk_prepare_enable() return value in twl6040_power() Javier Martinez Canillas
@ 2016-04-25 16:18 ` Lee Jones
1 sibling, 0 replies; 4+ messages in thread
From: Lee Jones @ 2016-04-25 16:18 UTC (permalink / raw)
To: Javier Martinez Canillas; +Cc: linux-kernel, linux-omap, Tony Lindgren
On Wed, 20 Apr 2016, Javier Martinez Canillas wrote:
> 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>
> ---
>
> drivers/mfd/twl6040.c | 2 ++
> 1 file changed, 2 insertions(+)
Applied, thanks.
> diff --git a/drivers/mfd/twl6040.c b/drivers/mfd/twl6040.c
> index 08a693cd38cc..4de92c16dfb8 100644
> --- a/drivers/mfd/twl6040.c
> +++ b/drivers/mfd/twl6040.c
> @@ -300,6 +300,7 @@ int twl6040_power(struct twl6040 *twl6040, int on)
> /* use automatic power-up sequence */
> ret = twl6040_power_up_automatic(twl6040);
> if (ret) {
> + clk_disable_unprepare(twl6040->clk32k);
> twl6040->power_count = 0;
> goto out;
> }
> @@ -307,6 +308,7 @@ int twl6040_power(struct twl6040 *twl6040, int on)
> /* use manual power-up sequence */
> ret = twl6040_power_up_manual(twl6040);
> if (ret) {
> + clk_disable_unprepare(twl6040->clk32k);
> twl6040->power_count = 0;
> goto out;
> }
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] mfd: twl6040: Check clk_prepare_enable() return value in twl6040_power()
2016-04-20 15:16 ` [PATCH 2/2] mfd: twl6040: Check clk_prepare_enable() return value in twl6040_power() Javier Martinez Canillas
@ 2016-04-25 16:18 ` Lee Jones
0 siblings, 0 replies; 4+ messages in thread
From: Lee Jones @ 2016-04-25 16:18 UTC (permalink / raw)
To: Javier Martinez Canillas; +Cc: linux-kernel, linux-omap, Tony Lindgren
On Wed, 20 Apr 2016, Javier Martinez Canillas wrote:
> The clk_prepare_enable() function can fail so check the return
> value and propagate the error in case of a failure.
>
> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
>
> ---
>
> drivers/mfd/twl6040.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
Applied, thanks.
> diff --git a/drivers/mfd/twl6040.c b/drivers/mfd/twl6040.c
> index 4de92c16dfb8..852d5874aabb 100644
> --- a/drivers/mfd/twl6040.c
> +++ b/drivers/mfd/twl6040.c
> @@ -291,7 +291,11 @@ int twl6040_power(struct twl6040 *twl6040, int on)
> if (twl6040->power_count++)
> goto out;
>
> - clk_prepare_enable(twl6040->clk32k);
> + ret = clk_prepare_enable(twl6040->clk32k);
> + if (ret) {
> + twl6040->power_count = 0;
> + goto out;
> + }
>
> /* Allow writes to the chip */
> regcache_cache_only(twl6040->regmap, false);
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-04-25 16:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-20 15:16 [PATCH 1/2] mfd: twl6040: Disable and unprepare clk32k in twl6040_power() error path Javier Martinez Canillas
2016-04-20 15:16 ` [PATCH 2/2] mfd: twl6040: Check clk_prepare_enable() return value in twl6040_power() Javier Martinez Canillas
2016-04-25 16:18 ` Lee Jones
2016-04-25 16:18 ` [PATCH 1/2] mfd: twl6040: Disable and unprepare clk32k in twl6040_power() error path Lee Jones
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).