OSDN Git Service

staging: media: atomisp: use pm_runtime_resume_and_get()
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 23 Apr 2021 15:19:21 +0000 (17:19 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 19 May 2021 07:51:42 +0000 (09:51 +0200)
Commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter")
added pm_runtime_resume_and_get() in order to automatically handle
dev->power.usage_count decrement on errors.

Use the new API, in order to cleanup the error check logic.

Besides that, the de-init order in case of css error was wrong.
This change should also fix that.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/pci/atomisp_fops.c

index f1e6b25..26d0547 100644 (file)
@@ -837,7 +837,7 @@ dev_init:
        }
 
        /* runtime power management, turn on ISP */
-       ret = pm_runtime_get_sync(vdev->v4l2_dev->dev);
+       ret = pm_runtime_resume_and_get(vdev->v4l2_dev->dev);
        if (ret < 0) {
                dev_err(isp->dev, "Failed to power on device\n");
                goto error;
@@ -881,9 +881,9 @@ done:
 
 css_error:
        atomisp_css_uninit(isp);
+       pm_runtime_put(vdev->v4l2_dev->dev);
 error:
        hmm_pool_unregister(HMM_POOL_TYPE_DYNAMIC);
-       pm_runtime_put(vdev->v4l2_dev->dev);
        rt_mutex_unlock(&isp->mutex);
        return ret;
 }