[PATCH] w1: omap-hdq: using pm_runtime_resume_and_get instead of pm_runtime_get_sync
From: cgel . zte
Date: Tue Apr 12 2022 - 06:13:37 EST
From: Minghao Chi <chi.minghao@xxxxxxxxxx>
Using pm_runtime_resume_and_get is more appropriate
for simplifing code
Reported-by: Zeal Robot <zealci@xxxxxxxxxx>
Signed-off-by: Minghao Chi <chi.minghao@xxxxxxxxxx>
---
drivers/w1/masters/omap_hdq.c | 38 ++++++++++-------------------------
1 file changed, 11 insertions(+), 27 deletions(-)
diff --git a/drivers/w1/masters/omap_hdq.c b/drivers/w1/masters/omap_hdq.c
index bf2ec59c1f9d..f325fe35a8f7 100644
--- a/drivers/w1/masters/omap_hdq.c
+++ b/drivers/w1/masters/omap_hdq.c
@@ -372,12 +372,9 @@ static u8 omap_w1_triplet(void *_hdq, u8 bdir)
OMAP_HDQ_CTRL_STATUS_INTERRUPTMASK;
u8 mask = ctrl | OMAP_HDQ_CTRL_STATUS_DIR;
- err = pm_runtime_get_sync(hdq_data->dev);
- if (err < 0) {
- pm_runtime_put_noidle(hdq_data->dev);
-
+ err = pm_runtime_resume_and_get(hdq_data->dev);
+ if (err < 0)
return err;
- }
err = mutex_lock_interruptible(&hdq_data->hdq_mutex);
if (err < 0) {
@@ -463,12 +460,9 @@ static u8 omap_w1_reset_bus(void *_hdq)
struct hdq_data *hdq_data = _hdq;
int err;
- err = pm_runtime_get_sync(hdq_data->dev);
- if (err < 0) {
- pm_runtime_put_noidle(hdq_data->dev);
-
+ err = pm_runtime_resume_and_get(hdq_data->dev);
+ if (err < 0)
return err;
- }
omap_hdq_break(hdq_data);
@@ -485,12 +479,9 @@ static u8 omap_w1_read_byte(void *_hdq)
u8 val = 0;
int ret;
- ret = pm_runtime_get_sync(hdq_data->dev);
- if (ret < 0) {
- pm_runtime_put_noidle(hdq_data->dev);
-
+ ret = pm_runtime_resume_and_get(hdq_data->dev);
+ if (ret < 0)
return -1;
- }
ret = hdq_read_byte(hdq_data, &val);
if (ret)
@@ -509,12 +500,9 @@ static void omap_w1_write_byte(void *_hdq, u8 byte)
int ret;
u8 status;
- ret = pm_runtime_get_sync(hdq_data->dev);
- if (ret < 0) {
- pm_runtime_put_noidle(hdq_data->dev);
-
+ ret = pm_runtime_resume_and_get(hdq_data->dev);
+ if (ret < 0)
return;
- }
/*
* We need to reset the slave before
@@ -605,10 +593,9 @@ static int omap_hdq_probe(struct platform_device *pdev)
pm_runtime_enable(&pdev->dev);
pm_runtime_use_autosuspend(&pdev->dev);
pm_runtime_set_autosuspend_delay(&pdev->dev, 300);
- ret = pm_runtime_get_sync(&pdev->dev);
+ ret = pm_runtime_resume_and_get(&pdev->dev);
if (ret < 0) {
- pm_runtime_put_noidle(&pdev->dev);
- dev_dbg(&pdev->dev, "pm_runtime_get_sync failed\n");
+ dev_dbg(&pdev->dev, "pm_runtime_resume_and_get failed\n");
goto err_w1;
}
@@ -659,10 +646,7 @@ static int omap_hdq_remove(struct platform_device *pdev)
{
int active;
- active = pm_runtime_get_sync(&pdev->dev);
- if (active < 0)
- pm_runtime_put_noidle(&pdev->dev);
-
+ active = pm_runtime_resume_and_get(&pdev->dev);
w1_remove_master_device(&omap_w1_master);
pm_runtime_dont_use_autosuspend(&pdev->dev);
--
2.25.1