staging: media: tegra-video: use pm_runtime_resume_and_get()
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 23 Apr 2021 15:19:23 +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.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/tegra-video/csi.c
drivers/staging/media/tegra-video/vi.c

index 033a693..e938bf4 100644 (file)
@@ -298,10 +298,9 @@ static int tegra_csi_enable_stream(struct v4l2_subdev *subdev)
        struct tegra_csi *csi = csi_chan->csi;
        int ret, err;
 
-       ret = pm_runtime_get_sync(csi->dev);
+       ret = pm_runtime_resume_and_get(csi->dev);
        if (ret < 0) {
                dev_err(csi->dev, "failed to get runtime PM: %d\n", ret);
-               pm_runtime_put_noidle(csi->dev);
                return ret;
        }
 
index b712063..b76e911 100644 (file)
@@ -297,10 +297,9 @@ static int tegra_channel_start_streaming(struct vb2_queue *vq, u32 count)
        struct tegra_vi_channel *chan = vb2_get_drv_priv(vq);
        int ret;
 
-       ret = pm_runtime_get_sync(chan->vi->dev);
+       ret = pm_runtime_resume_and_get(chan->vi->dev);
        if (ret < 0) {
                dev_err(chan->vi->dev, "failed to get runtime PM: %d\n", ret);
-               pm_runtime_put_noidle(chan->vi->dev);
                return ret;
        }