From: John Keeping <john@metanate.com>
To: Corentin Labbe <clabbe@baylibre.com>
Cc: heiko@sntech.de, ardb@kernel.org, herbert@gondor.apana.org.au,
krzysztof.kozlowski+dt@linaro.org, robh+dt@kernel.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-rockchip@lists.infradead.org
Subject: Re: [PATCH v7 14/33] crypto: rockchip: handle reset also in PM
Date: Mon, 20 Jun 2022 12:04:24 +0100 [thread overview]
Message-ID: <YrBUODGF51oUsF1f@donbot> (raw)
In-Reply-To: <20220508185957.3629088-15-clabbe@baylibre.com>
On Sun, May 08, 2022 at 06:59:38PM +0000, Corentin Labbe wrote:
> reset could be handled by PM functions.
Is there any further rationale for this?
After this change there is no longer a guaranteed reset pulse on probe
since the reset control may already be de-asserted. This is normally
the most important case for a reset as it's the only time when the state
of the hardware is unknown.
The original use of devm_add_action_or_reset() seems a bit weird already
since there doesn't seem to be any need to assert reset when the driver
is unloaded.
> Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> ---
> drivers/crypto/rockchip/rk3288_crypto.c | 19 ++++---------------
> 1 file changed, 4 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/crypto/rockchip/rk3288_crypto.c b/drivers/crypto/rockchip/rk3288_crypto.c
> index d9258b9e71b3..a11a92e1f3fd 100644
> --- a/drivers/crypto/rockchip/rk3288_crypto.c
> +++ b/drivers/crypto/rockchip/rk3288_crypto.c
> @@ -73,6 +73,8 @@ static int rk_crypto_pm_suspend(struct device *dev)
> {
> struct rk_crypto_info *rkdev = dev_get_drvdata(dev);
>
> + reset_control_assert(rkdev->rst);
> +
> rk_crypto_disable_clk(rkdev);
> return 0;
> }
> @@ -81,6 +83,8 @@ static int rk_crypto_pm_resume(struct device *dev)
> {
> struct rk_crypto_info *rkdev = dev_get_drvdata(dev);
>
> + reset_control_deassert(rkdev->rst);
> +
> return rk_crypto_enable_clk(rkdev);
> }
>
> @@ -222,13 +226,6 @@ static void rk_crypto_unregister(void)
> }
> }
>
> -static void rk_crypto_action(void *data)
> -{
> - struct rk_crypto_info *crypto_info = data;
> -
> - reset_control_assert(crypto_info->rst);
> -}
> -
> static const struct of_device_id crypto_of_id_table[] = {
> { .compatible = "rockchip,rk3288-crypto" },
> {}
> @@ -254,14 +251,6 @@ static int rk_crypto_probe(struct platform_device *pdev)
> goto err_crypto;
> }
>
> - reset_control_assert(crypto_info->rst);
> - usleep_range(10, 20);
> - reset_control_deassert(crypto_info->rst);
> -
> - err = devm_add_action_or_reset(dev, rk_crypto_action, crypto_info);
> - if (err)
> - goto err_crypto;
> -
> crypto_info->reg = devm_platform_ioremap_resource(pdev, 0);
> if (IS_ERR(crypto_info->reg)) {
> err = PTR_ERR(crypto_info->reg);
> --
> 2.35.1
WARNING: multiple messages have this Message-ID (diff)
From: John Keeping <john@metanate.com>
To: Corentin Labbe <clabbe@baylibre.com>
Cc: heiko@sntech.de, ardb@kernel.org, herbert@gondor.apana.org.au,
krzysztof.kozlowski+dt@linaro.org, robh+dt@kernel.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-rockchip@lists.infradead.org
Subject: Re: [PATCH v7 14/33] crypto: rockchip: handle reset also in PM
Date: Mon, 20 Jun 2022 12:04:24 +0100 [thread overview]
Message-ID: <YrBUODGF51oUsF1f@donbot> (raw)
In-Reply-To: <20220508185957.3629088-15-clabbe@baylibre.com>
On Sun, May 08, 2022 at 06:59:38PM +0000, Corentin Labbe wrote:
> reset could be handled by PM functions.
Is there any further rationale for this?
After this change there is no longer a guaranteed reset pulse on probe
since the reset control may already be de-asserted. This is normally
the most important case for a reset as it's the only time when the state
of the hardware is unknown.
The original use of devm_add_action_or_reset() seems a bit weird already
since there doesn't seem to be any need to assert reset when the driver
is unloaded.
> Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> ---
> drivers/crypto/rockchip/rk3288_crypto.c | 19 ++++---------------
> 1 file changed, 4 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/crypto/rockchip/rk3288_crypto.c b/drivers/crypto/rockchip/rk3288_crypto.c
> index d9258b9e71b3..a11a92e1f3fd 100644
> --- a/drivers/crypto/rockchip/rk3288_crypto.c
> +++ b/drivers/crypto/rockchip/rk3288_crypto.c
> @@ -73,6 +73,8 @@ static int rk_crypto_pm_suspend(struct device *dev)
> {
> struct rk_crypto_info *rkdev = dev_get_drvdata(dev);
>
> + reset_control_assert(rkdev->rst);
> +
> rk_crypto_disable_clk(rkdev);
> return 0;
> }
> @@ -81,6 +83,8 @@ static int rk_crypto_pm_resume(struct device *dev)
> {
> struct rk_crypto_info *rkdev = dev_get_drvdata(dev);
>
> + reset_control_deassert(rkdev->rst);
> +
> return rk_crypto_enable_clk(rkdev);
> }
>
> @@ -222,13 +226,6 @@ static void rk_crypto_unregister(void)
> }
> }
>
> -static void rk_crypto_action(void *data)
> -{
> - struct rk_crypto_info *crypto_info = data;
> -
> - reset_control_assert(crypto_info->rst);
> -}
> -
> static const struct of_device_id crypto_of_id_table[] = {
> { .compatible = "rockchip,rk3288-crypto" },
> {}
> @@ -254,14 +251,6 @@ static int rk_crypto_probe(struct platform_device *pdev)
> goto err_crypto;
> }
>
> - reset_control_assert(crypto_info->rst);
> - usleep_range(10, 20);
> - reset_control_deassert(crypto_info->rst);
> -
> - err = devm_add_action_or_reset(dev, rk_crypto_action, crypto_info);
> - if (err)
> - goto err_crypto;
> -
> crypto_info->reg = devm_platform_ioremap_resource(pdev, 0);
> if (IS_ERR(crypto_info->reg)) {
> err = PTR_ERR(crypto_info->reg);
> --
> 2.35.1
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
WARNING: multiple messages have this Message-ID (diff)
From: John Keeping <john@metanate.com>
To: Corentin Labbe <clabbe@baylibre.com>
Cc: heiko@sntech.de, ardb@kernel.org, herbert@gondor.apana.org.au,
krzysztof.kozlowski+dt@linaro.org, robh+dt@kernel.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-rockchip@lists.infradead.org
Subject: Re: [PATCH v7 14/33] crypto: rockchip: handle reset also in PM
Date: Mon, 20 Jun 2022 12:04:24 +0100 [thread overview]
Message-ID: <YrBUODGF51oUsF1f@donbot> (raw)
In-Reply-To: <20220508185957.3629088-15-clabbe@baylibre.com>
On Sun, May 08, 2022 at 06:59:38PM +0000, Corentin Labbe wrote:
> reset could be handled by PM functions.
Is there any further rationale for this?
After this change there is no longer a guaranteed reset pulse on probe
since the reset control may already be de-asserted. This is normally
the most important case for a reset as it's the only time when the state
of the hardware is unknown.
The original use of devm_add_action_or_reset() seems a bit weird already
since there doesn't seem to be any need to assert reset when the driver
is unloaded.
> Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> ---
> drivers/crypto/rockchip/rk3288_crypto.c | 19 ++++---------------
> 1 file changed, 4 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/crypto/rockchip/rk3288_crypto.c b/drivers/crypto/rockchip/rk3288_crypto.c
> index d9258b9e71b3..a11a92e1f3fd 100644
> --- a/drivers/crypto/rockchip/rk3288_crypto.c
> +++ b/drivers/crypto/rockchip/rk3288_crypto.c
> @@ -73,6 +73,8 @@ static int rk_crypto_pm_suspend(struct device *dev)
> {
> struct rk_crypto_info *rkdev = dev_get_drvdata(dev);
>
> + reset_control_assert(rkdev->rst);
> +
> rk_crypto_disable_clk(rkdev);
> return 0;
> }
> @@ -81,6 +83,8 @@ static int rk_crypto_pm_resume(struct device *dev)
> {
> struct rk_crypto_info *rkdev = dev_get_drvdata(dev);
>
> + reset_control_deassert(rkdev->rst);
> +
> return rk_crypto_enable_clk(rkdev);
> }
>
> @@ -222,13 +226,6 @@ static void rk_crypto_unregister(void)
> }
> }
>
> -static void rk_crypto_action(void *data)
> -{
> - struct rk_crypto_info *crypto_info = data;
> -
> - reset_control_assert(crypto_info->rst);
> -}
> -
> static const struct of_device_id crypto_of_id_table[] = {
> { .compatible = "rockchip,rk3288-crypto" },
> {}
> @@ -254,14 +251,6 @@ static int rk_crypto_probe(struct platform_device *pdev)
> goto err_crypto;
> }
>
> - reset_control_assert(crypto_info->rst);
> - usleep_range(10, 20);
> - reset_control_deassert(crypto_info->rst);
> -
> - err = devm_add_action_or_reset(dev, rk_crypto_action, crypto_info);
> - if (err)
> - goto err_crypto;
> -
> crypto_info->reg = devm_platform_ioremap_resource(pdev, 0);
> if (IS_ERR(crypto_info->reg)) {
> err = PTR_ERR(crypto_info->reg);
> --
> 2.35.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-06-20 11:14 UTC|newest]
Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-08 18:59 [PATCH v7 00/33] crypto: rockchip: permit to pass self-tests Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 01/33] crypto: rockchip: use dev_err for error message about interrupt Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 02/33] crypto: rockchip: do not use uninitialized variable Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 03/33] crypto: rockchip: do not do custom power management Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 04/33] crypto: rockchip: fix privete/private typo Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 05/33] crypto: rockchip: do not store mode globally Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 06/33] crypto: rockchip: add fallback for cipher Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 07/33] crypto: rockchip: add fallback for ahash Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 08/33] crypto: rockchip: better handle cipher key Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 09/33] crypto: rockchip: remove non-aligned handling Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 10/33] crypto: rockchip: rework by using crypto_engine Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 11/33] crypto: rockchip: rewrite type Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 12/33] crypto: rockchip: add debugfs Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 13/33] crypto: rockchip: introduce PM Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 14/33] crypto: rockchip: handle reset also in PM Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-06-20 11:04 ` John Keeping [this message]
2022-06-20 11:04 ` John Keeping
2022-06-20 11:04 ` John Keeping
2022-06-21 8:05 ` LABBE Corentin
2022-06-21 8:05 ` LABBE Corentin
2022-06-21 8:05 ` LABBE Corentin
2022-06-21 13:37 ` John Keeping
2022-06-21 13:37 ` John Keeping
2022-06-21 13:37 ` John Keeping
2022-06-30 14:51 ` LABBE Corentin
2022-06-30 14:51 ` LABBE Corentin
2022-06-30 14:51 ` LABBE Corentin
2022-05-08 18:59 ` [PATCH v7 15/33] crypto: rockchip: use clk_bulk to simplify clock management Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 16/33] crypto: rockchip: add myself as maintainer Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 17/33] crypto: rockchip: use read_poll_timeout Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 18/33] crypto: rockchip: fix style issue Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 19/33] crypto: rockchip: add support for rk3328 Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 20/33] crypto: rockchip: rename ablk functions to cipher Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 21/33] crypto: rockchip: rework rk_handle_req function Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 22/33] crypto: rockchip: use a rk_crypto_info variable instead of lot of indirection Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 23/33] crypto: rockchip: use the rk_crypto_info given as parameter Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 24/33] dt-bindings: crypto: convert rockchip-crypto to YAML Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 25/33] dt-bindings: crypto: rockchip: convert to new driver bindings Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-09 7:23 ` Krzysztof Kozlowski
2022-05-09 7:23 ` Krzysztof Kozlowski
2022-05-09 7:23 ` Krzysztof Kozlowski
2022-05-08 18:59 ` [PATCH v7 26/33] clk: rk3399: use proper crypto0 name Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 27/33] arm64: dts: rockchip: add rk3328 crypto node Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 28/33] arm64: dts: rockchip: rk3399: add " Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 29/33] crypto: rockchip: store crypto_info in request context Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 30/33] crypto: rockchip: Check for clocks numbers and their frequencies Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 31/33] crypto: rockchip: rk_ahash_reg_init use crypto_info from parameter Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 32/33] crypto: rockchip: permit to have more than one reset Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` [PATCH v7 33/33] crypto: rockchip: Add support for RK3399 Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-05-08 18:59 ` Corentin Labbe
2022-06-13 11:23 ` [PATCH v7 00/33] crypto: rockchip: permit to pass self-tests LABBE Corentin
2022-06-13 11:23 ` LABBE Corentin
2022-06-13 11:23 ` LABBE Corentin
2022-06-20 11:08 ` John Keeping
2022-06-20 11:08 ` John Keeping
2022-06-20 11:08 ` John Keeping
2022-07-02 13:10 ` Diederik de Haas
2022-07-02 13:10 ` Diederik de Haas
2022-07-02 13:10 ` Diederik de Haas
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=YrBUODGF51oUsF1f@donbot \
--to=john@metanate.com \
--cc=ardb@kernel.org \
--cc=clabbe@baylibre.com \
--cc=devicetree@vger.kernel.org \
--cc=heiko@sntech.de \
--cc=herbert@gondor.apana.org.au \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=robh+dt@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.