All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org
Cc: arnd@arndb.de, linus.walleij@stericsson.com,
	Herbert Xu <herbert@gondor.apana.org.au>,
	"David S. Miller" <davem@davemloft.net>,
	Andreas Westin <andreas.westin@stericsson.com>,
	linux-crypto@vger.kernel.org
Subject: [PATCH 1/9 v2] crypto: ux500/hash - Prepare clock before enabling it
Date: Fri, 19 Apr 2013 13:24:28 +0100	[thread overview]
Message-ID: <20130419122428.GC3432@gmail.com> (raw)
In-Reply-To: <1366280825-31136-2-git-send-email-lee.jones@linaro.org>

Slight change of plan for v2.

Now we're doing a seperate clk_prepare(), as the clk_enable() in the
previous patch turned out to be called inside a spin_lock().

Arnd, can you confirm your Ack please?

---

crypto: ux500/hash - Prepare clock before enabling it

If we fail to prepare the ux500-hash clock before enabling it the
platform will fail to boot. Here we insure this happens.

Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: David S. Miller <davem@davemloft.net>
Cc: Andreas Westin <andreas.westin@stericsson.com>
Cc: linux-crypto@vger.kernel.org
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>

diff --git a/drivers/crypto/ux500/hash/hash_core.c b/drivers/crypto/ux500/hash/hash_core.c
index 632c333..1e8b2f3 100644
--- a/drivers/crypto/ux500/hash/hash_core.c
+++ b/drivers/crypto/ux500/hash/hash_core.c
@@ -1727,11 +1727,17 @@ static int ux500_hash_probe(struct platform_device *pdev)
 		goto out_regulator;
 	}
 
+	ret = clk_prepare(device_data->clk);
+	if (ret) {
+		dev_err(dev, "[%s] clk_prepare() failed!", __func__);
+		goto out_clk;
+	}
+
 	/* Enable device power (and clock) */
 	ret = hash_enable_power(device_data, false);
 	if (ret) {
 		dev_err(dev, "[%s]: hash_enable_power() failed!", __func__);
-		goto out_clk;
+		goto out_clk_unprepare;
 	}
 
 	ret = hash_check_hw(device_data);
@@ -1763,6 +1769,9 @@ static int ux500_hash_probe(struct platform_device *pdev)
 out_power:
 	hash_disable_power(device_data, false);
 
+out_clk_unprepare:
+	clk_unprepare(device_data->clk);
+
 out_clk:
 	clk_put(device_data->clk);
 
@@ -1827,6 +1836,7 @@ static int ux500_hash_remove(struct platform_device *pdev)
 		dev_err(dev, "[%s]: hash_disable_power() failed",
 			__func__);
 
+	clk_unprepare(device_data->clk);
 	clk_put(device_data->clk);
 	regulator_put(device_data->regulator);

WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/9 v2] crypto: ux500/hash - Prepare clock before enabling it
Date: Fri, 19 Apr 2013 13:24:28 +0100	[thread overview]
Message-ID: <20130419122428.GC3432@gmail.com> (raw)
In-Reply-To: <1366280825-31136-2-git-send-email-lee.jones@linaro.org>

Slight change of plan for v2.

Now we're doing a seperate clk_prepare(), as the clk_enable() in the
previous patch turned out to be called inside a spin_lock().

Arnd, can you confirm your Ack please?

---

crypto: ux500/hash - Prepare clock before enabling it

If we fail to prepare the ux500-hash clock before enabling it the
platform will fail to boot. Here we insure this happens.

Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: David S. Miller <davem@davemloft.net>
Cc: Andreas Westin <andreas.westin@stericsson.com>
Cc: linux-crypto at vger.kernel.org
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>

diff --git a/drivers/crypto/ux500/hash/hash_core.c b/drivers/crypto/ux500/hash/hash_core.c
index 632c333..1e8b2f3 100644
--- a/drivers/crypto/ux500/hash/hash_core.c
+++ b/drivers/crypto/ux500/hash/hash_core.c
@@ -1727,11 +1727,17 @@ static int ux500_hash_probe(struct platform_device *pdev)
 		goto out_regulator;
 	}
 
+	ret = clk_prepare(device_data->clk);
+	if (ret) {
+		dev_err(dev, "[%s] clk_prepare() failed!", __func__);
+		goto out_clk;
+	}
+
 	/* Enable device power (and clock) */
 	ret = hash_enable_power(device_data, false);
 	if (ret) {
 		dev_err(dev, "[%s]: hash_enable_power() failed!", __func__);
-		goto out_clk;
+		goto out_clk_unprepare;
 	}
 
 	ret = hash_check_hw(device_data);
@@ -1763,6 +1769,9 @@ static int ux500_hash_probe(struct platform_device *pdev)
 out_power:
 	hash_disable_power(device_data, false);
 
+out_clk_unprepare:
+	clk_unprepare(device_data->clk);
+
 out_clk:
 	clk_put(device_data->clk);
 
@@ -1827,6 +1836,7 @@ static int ux500_hash_remove(struct platform_device *pdev)
 		dev_err(dev, "[%s]: hash_disable_power() failed",
 			__func__);
 
+	clk_unprepare(device_data->clk);
 	clk_put(device_data->clk);
 	regulator_put(device_data->regulator);

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org
Cc: arnd@arndb.de, linus.walleij@stericsson.com,
	Herbert Xu <herbert@gondor.hengli.com.au>,
	"David S. Miller" <davem@davemloft.net>,
	Andreas Westin <andreas.westin@stericsson.com>,
	linux-crypto@vger.kernel.org
Subject: [PATCH 1/9 v2] crypto: ux500/hash - Prepare clock before enabling it
Date: Fri, 19 Apr 2013 13:24:28 +0100	[thread overview]
Message-ID: <20130419122428.GC3432@gmail.com> (raw)
In-Reply-To: <1366280825-31136-2-git-send-email-lee.jones@linaro.org>

Slight change of plan for v2.

Now we're doing a seperate clk_prepare(), as the clk_enable() in the
previous patch turned out to be called inside a spin_lock().

Arnd, can you confirm your Ack please?

---

crypto: ux500/hash - Prepare clock before enabling it

If we fail to prepare the ux500-hash clock before enabling it the
platform will fail to boot. Here we insure this happens.

Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: David S. Miller <davem@davemloft.net>
Cc: Andreas Westin <andreas.westin@stericsson.com>
Cc: linux-crypto@vger.kernel.org
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>

diff --git a/drivers/crypto/ux500/hash/hash_core.c b/drivers/crypto/ux500/hash/hash_core.c
index 632c333..1e8b2f3 100644
--- a/drivers/crypto/ux500/hash/hash_core.c
+++ b/drivers/crypto/ux500/hash/hash_core.c
@@ -1727,11 +1727,17 @@ static int ux500_hash_probe(struct platform_device *pdev)
 		goto out_regulator;
 	}
 
+	ret = clk_prepare(device_data->clk);
+	if (ret) {
+		dev_err(dev, "[%s] clk_prepare() failed!", __func__);
+		goto out_clk;
+	}
+
 	/* Enable device power (and clock) */
 	ret = hash_enable_power(device_data, false);
 	if (ret) {
 		dev_err(dev, "[%s]: hash_enable_power() failed!", __func__);
-		goto out_clk;
+		goto out_clk_unprepare;
 	}
 
 	ret = hash_check_hw(device_data);
@@ -1763,6 +1769,9 @@ static int ux500_hash_probe(struct platform_device *pdev)
 out_power:
 	hash_disable_power(device_data, false);
 
+out_clk_unprepare:
+	clk_unprepare(device_data->clk);
+
 out_clk:
 	clk_put(device_data->clk);
 
@@ -1827,6 +1836,7 @@ static int ux500_hash_remove(struct platform_device *pdev)
 		dev_err(dev, "[%s]: hash_disable_power() failed",
 			__func__);
 
+	clk_unprepare(device_data->clk);
 	clk_put(device_data->clk);
 	regulator_put(device_data->regulator);

  reply	other threads:[~2013-04-19 12:24 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-18 10:26 [PATCH 0/9] Fix ux500 crypto drivers and init DMA in the correct way Lee Jones
2013-04-18 10:26 ` Lee Jones
2013-04-18 10:26 ` [PATCH 1/9] crypto: ux500/hash - Prepare clock before enabling it Lee Jones
2013-04-18 10:26   ` Lee Jones
2013-04-18 10:26   ` Lee Jones
2013-04-19 12:24   ` Lee Jones [this message]
2013-04-19 12:24     ` [PATCH 1/9 v2] " Lee Jones
2013-04-19 12:24     ` Lee Jones
2013-04-19 12:26     ` Arnd Bergmann
2013-04-19 12:26       ` Arnd Bergmann
2013-04-19 12:26       ` Arnd Bergmann
2013-04-25 11:49     ` Linus Walleij
2013-04-25 11:49       ` Linus Walleij
2013-04-25 11:49       ` Linus Walleij
2013-04-25 13:46       ` Lee Jones
2013-04-25 13:46         ` Lee Jones
2013-04-25 13:46         ` Lee Jones
2013-04-18 10:26 ` [PATCH 2/9] crypto: ux500/hash - Set DMA configuration though dma_slave_config() Lee Jones
2013-04-18 10:26   ` Lee Jones
2013-04-18 10:26   ` Lee Jones
2013-04-25 11:55   ` Linus Walleij
2013-04-25 11:55     ` Linus Walleij
2013-04-25 11:55     ` Linus Walleij
2013-04-18 10:26 ` [PATCH 3/9] ARM: ux500: Stop passing Hash DMA channel config information though pdata Lee Jones
2013-04-18 10:26   ` Lee Jones
2013-04-25 11:56   ` Linus Walleij
2013-04-25 11:56     ` Linus Walleij
2013-04-18 10:27 ` [PATCH 4/9] crypto: ux500/cryp - Prepare clock before enabling it Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-19 12:22   ` [PATCH 4/9 v2] " Lee Jones
2013-04-19 12:22     ` Lee Jones
2013-04-19 12:22     ` Lee Jones
2013-04-19 12:23     ` Arnd Bergmann
2013-04-19 12:23       ` Arnd Bergmann
2013-04-19 12:23       ` Arnd Bergmann
2013-04-25 11:57     ` Linus Walleij
2013-04-25 11:57       ` Linus Walleij
2013-04-25 11:57       ` Linus Walleij
2013-04-18 10:27 ` [PATCH 5/9] crypto: ux500/cryp - Fix compile error Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-25 12:00   ` Linus Walleij
2013-04-25 12:00     ` Linus Walleij
2013-04-25 12:00     ` Linus Walleij
2013-04-25 13:44     ` Lee Jones
2013-04-25 13:44       ` Lee Jones
2013-04-25 13:44       ` Lee Jones
2013-04-18 10:27 ` [PATCH 6/9] crypto: ux500/cryp - Set DMA configuration though dma_slave_config() Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-25 12:02   ` Linus Walleij
2013-04-25 12:02     ` Linus Walleij
2013-04-25 12:02     ` Linus Walleij
2013-04-25 13:44     ` Lee Jones
2013-04-25 13:44       ` Lee Jones
2013-04-25 13:44       ` Lee Jones
2013-04-25 14:05       ` Linus Walleij
2013-04-25 14:05         ` Linus Walleij
2013-04-25 14:05         ` Linus Walleij
2013-04-25 14:11       ` Arnd Bergmann
2013-04-25 14:11         ` Arnd Bergmann
2013-04-25 14:11         ` Arnd Bergmann
2013-04-26  8:28         ` Linus Walleij
2013-04-26  8:28           ` Linus Walleij
2013-04-26  8:28           ` Linus Walleij
2013-04-26  8:16           ` Vinod Koul
2013-04-26  8:16             ` Vinod Koul
2013-04-26  9:07             ` Linus Walleij
2013-04-26  9:07               ` Linus Walleij
2013-04-26  9:39             ` Arnd Bergmann
2013-04-26  9:39               ` Arnd Bergmann
2013-04-26  9:44               ` Russell King - ARM Linux
2013-04-26  9:44                 ` Russell King - ARM Linux
2013-04-26  9:41             ` Russell King - ARM Linux
2013-04-26  9:41               ` Russell King - ARM Linux
2013-04-26  9:41               ` Russell King - ARM Linux
2013-04-30 10:08               ` Vinod Koul
2013-04-30 10:08                 ` Vinod Koul
2013-04-26  9:34           ` Arnd Bergmann
2013-04-26  9:34             ` Arnd Bergmann
2013-04-26  9:34             ` Arnd Bergmann
2013-04-18 10:27 ` [PATCH 7/9] ARM: ux500: Stop passing Cryp DMA channel config information though pdata Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-25 12:02   ` Linus Walleij
2013-04-25 12:02     ` Linus Walleij
2013-04-18 10:27 ` [PATCH 8/9] crypto: ux500/[cryp|hash] - Show successful start-up in the bootlog Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-25 12:03   ` Linus Walleij
2013-04-25 12:03     ` Linus Walleij
2013-04-25 12:03     ` Linus Walleij
2013-04-18 10:27 ` [PATCH 9/9] ARM: ux500: Register Cyrp and Hash platform drivers on Snowball Lee Jones
2013-04-18 10:27   ` Lee Jones
2013-04-25 12:04   ` Linus Walleij
2013-04-25 12:04     ` Linus Walleij
2013-04-18 10:44 ` [PATCH 0/9] Fix ux500 crypto drivers and init DMA in the correct way Arnd Bergmann
2013-04-18 10:44   ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130419122428.GC3432@gmail.com \
    --to=lee.jones@linaro.org \
    --cc=andreas.westin@stericsson.com \
    --cc=arnd@arndb.de \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=linus.walleij@stericsson.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.