[PATCH] hwrng: mediatek - Force runtime pm ops for sleep ops
Markus Schneider-Pargmann
msp at baylibre.com
Thu Sep 30 12:40:58 PDT 2021
Hi,
On Thu, Sep 30, 2021 at 09:12:42PM +0200, Markus Schneider-Pargmann wrote:
> Currently mtk_rng_runtime_suspend/resume is called for both runtime pm
> and system sleep operations.
>
> This is wrong as these should only be runtime ops as the name already
> suggests. Currently freezing the system will lead to a call to
> mtk_rng_runtime_suspend even if the device currently isn't active. This
> leads to a clock warning because it is disabled/unprepared although it
> isn't enabled/prepared currently.
>
> This patch fixes this by only setting the runtime pm ops and forces to
> call the runtime pm ops from the system sleep ops as well if active but
> not otherwise.
>
> Signed-off-by: Markus Schneider-Pargmann <msp at baylibre.com>
Fixes: 81d2b34508c6 (hwrng: mtk - add runtime PM support)
Sorry, forgot to add this line in the commit message. I can add it for
the next version.
Best,
Markus
> ---
> drivers/char/hw_random/mtk-rng.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/char/hw_random/mtk-rng.c b/drivers/char/hw_random/mtk-rng.c
> index 8ad7b515a51b..6c00ea008555 100644
> --- a/drivers/char/hw_random/mtk-rng.c
> +++ b/drivers/char/hw_random/mtk-rng.c
> @@ -166,8 +166,13 @@ static int mtk_rng_runtime_resume(struct device *dev)
> return mtk_rng_init(&priv->rng);
> }
>
> -static UNIVERSAL_DEV_PM_OPS(mtk_rng_pm_ops, mtk_rng_runtime_suspend,
> - mtk_rng_runtime_resume, NULL);
> +static const struct dev_pm_ops mtk_rng_pm_ops = {
> + SET_RUNTIME_PM_OPS(mtk_rng_runtime_suspend,
> + mtk_rng_runtime_resume, NULL)
> + SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
> + pm_runtime_force_resume)
> +};
> +
> #define MTK_RNG_PM_OPS (&mtk_rng_pm_ops)
> #else /* CONFIG_PM */
> #define MTK_RNG_PM_OPS NULL
> --
> 2.33.0
>
More information about the Linux-mediatek
mailing list