[PATCH v2 4/6] memory: renesas-rpc-if: Improve Runtime PM handling

From: Geert Uytterhoeven
Date: Wed Nov 23 2022 - 09:41:48 EST


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@xxxxxxxxx>
---
v2:
- No changes.
---
drivers/memory/renesas-rpc-if.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/memory/renesas-rpc-if.c b/drivers/memory/renesas-rpc-if.c
index 83171242f9514c22..9346dcc29a36662e 100644
--- a/drivers/memory/renesas-rpc-if.c
+++ b/drivers/memory/renesas-rpc-if.c
@@ -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);
--
2.25.1