All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.