media: sun8i-di: Fix runtime PM imbalance in deinterlace_start_streaming
authorDinghao Liu <dinghao.liu@zju.edu.cn>
Wed, 7 Apr 2021 05:46:06 +0000 (07:46 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fri, 9 Apr 2021 10:58:34 +0000 (12:58 +0200)
pm_runtime_get_sync() will increase the runtime PM counter
even it returns an error. Thus a pairing decrement is needed
to prevent refcount leak. Fix this by replacing this API with
pm_runtime_resume_and_get(), which will not change the runtime
PM counter on error.

Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/sunxi/sun8i-di/sun8i-di.c

index ed863bf..671e4a9 100644 (file)
@@ -589,7 +589,7 @@ static int deinterlace_start_streaming(struct vb2_queue *vq, unsigned int count)
        int ret;
 
        if (V4L2_TYPE_IS_OUTPUT(vq->type)) {
-               ret = pm_runtime_get_sync(dev);
+               ret = pm_runtime_resume_and_get(dev);
                if (ret < 0) {
                        dev_err(dev, "Failed to enable module\n");