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@xxxxxxxxxxxx> 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 >