]> www.infradead.org Git - users/jedix/linux-maple.git/commit
hwrng: stm32 - use pm_runtime_resume_and_get()
authorMarek Vasut <marex@denx.de>
Fri, 31 May 2024 08:53:22 +0000 (10:53 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 7 Jun 2024 11:46:39 +0000 (19:46 +0800)
commitf134d5dce9c1f70fb522712b306644deb1e6eccd
tree6ea25392c686ee879d1c5d6e68851d303fb93ab8
parent3aeb1da092e875255c24c6a26be097448d70a756
hwrng: stm32 - use pm_runtime_resume_and_get()

include/linux/pm_runtime.h pm_runtime_get_sync() description suggests to
... consider using pm_runtime_resume_and_get() instead of it, especially
if its return value is checked by the caller, as this is likely to result
in cleaner code.

This is indeed better, switch to pm_runtime_resume_and_get() which
correctly suspends the device again in case of failure. Also add error
checking into the RNG driver in case pm_runtime_resume_and_get() does
fail, which is currently not done, and it does detect sporadic -EACCES
error return after resume, which would otherwise lead to a hang due to
register access on un-resumed hardware. Now the read simply errors out
and the system does not hang.

Acked-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/stm32-rng.c