memory: renesas-rpc-if: Improve Runtime PM handling

Convert from the deprecated pm_runtime_get_sync() to the new
pm_runtime_resume_and_get(), and add error checking.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Link: https://lore.kernel.org/r/6f2bd3b2b3d98c5bed541d969900b2ad04f93943.1669213027.git.geert+renesas@glider.be
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
This commit is contained in:
Geert Uytterhoeven 2022-11-23 15:41:20 +01:00 committed by Krzysztof Kozlowski
parent d5ab2e8c7d
commit bb0b025d72

View File

@ -304,12 +304,13 @@ int rpcif_hw_init(struct rpcif *rpcif, bool hyperflash)
{
struct rpcif_priv *rpc = dev_get_drvdata(rpcif->dev);
u32 dummy;
int ret;
pm_runtime_get_sync(rpc->dev);
ret = pm_runtime_resume_and_get(rpc->dev);
if (ret)
return ret;
if (rpc->type == RPCIF_RZ_G2L) {
int ret;
ret = reset_control_reset(rpc->rstc);
if (ret)
return ret;
@ -482,7 +483,9 @@ int rpcif_manual_xfer(struct rpcif *rpcif)
u32 smenr, smcr, pos = 0, max = rpc->bus_size == 2 ? 8 : 4;
int ret = 0;
pm_runtime_get_sync(rpc->dev);
ret = pm_runtime_resume_and_get(rpc->dev);
if (ret < 0)
return ret;
regmap_update_bits(rpc->regmap, RPCIF_PHYCNT,
RPCIF_PHYCNT_CAL, RPCIF_PHYCNT_CAL);
@ -650,11 +653,14 @@ ssize_t rpcif_dirmap_read(struct rpcif *rpcif, u64 offs, size_t len, void *buf)
struct rpcif_priv *rpc = dev_get_drvdata(rpcif->dev);
loff_t from = offs & (rpc->size - 1);
size_t size = rpc->size - from;
int ret;
if (len > size)
len = size;
pm_runtime_get_sync(rpc->dev);
ret = pm_runtime_resume_and_get(rpc->dev);
if (ret < 0)
return ret;
regmap_update_bits(rpc->regmap, RPCIF_CMNCR, RPCIF_CMNCR_MD, 0);
regmap_write(rpc->regmap, RPCIF_DRCR, 0);