Call vdec_get and venc_get later in the probe, after core->dev_{dec,enc}
get assigned. This is needed so dev_dec and dev_enc are initialized
when we are calling vdec_get and venc_get, so we can attach core power
domain lists to their devices.

Signed-off-by: Erikas Bitovtas <[email protected]>
---
 drivers/media/platform/qcom/venus/vdec.c | 12 ++++++------
 drivers/media/platform/qcom/venus/venc.c | 12 ++++++------
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/media/platform/qcom/venus/vdec.c 
b/drivers/media/platform/qcom/venus/vdec.c
index daa8f56610c7..a4aacf5e535b 100644
--- a/drivers/media/platform/qcom/venus/vdec.c
+++ b/drivers/media/platform/qcom/venus/vdec.c
@@ -1792,12 +1792,6 @@ static int vdec_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, core);
 
-       if (core->pm_ops->vdec_get) {
-               ret = core->pm_ops->vdec_get(dev);
-               if (ret)
-                       return ret;
-       }
-
        vdev = video_device_alloc();
        if (!vdev)
                return -ENOMEM;
@@ -1817,6 +1811,12 @@ static int vdec_probe(struct platform_device *pdev)
        core->vdev_dec = vdev;
        core->dev_dec = dev;
 
+       if (core->pm_ops->vdec_get) {
+               ret = core->pm_ops->vdec_get(dev);
+               if (ret)
+                       return ret;
+       }
+
        video_set_drvdata(vdev, core);
        pm_runtime_set_autosuspend_delay(dev, 2000);
        pm_runtime_use_autosuspend(dev);
diff --git a/drivers/media/platform/qcom/venus/venc.c 
b/drivers/media/platform/qcom/venus/venc.c
index bf53267cb68d..5f6844d3d9d0 100644
--- a/drivers/media/platform/qcom/venus/venc.c
+++ b/drivers/media/platform/qcom/venus/venc.c
@@ -1568,12 +1568,6 @@ static int venc_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, core);
 
-       if (core->pm_ops->venc_get) {
-               ret = core->pm_ops->venc_get(dev);
-               if (ret)
-                       return ret;
-       }
-
        vdev = video_device_alloc();
        if (!vdev)
                return -ENOMEM;
@@ -1593,6 +1587,12 @@ static int venc_probe(struct platform_device *pdev)
        core->vdev_enc = vdev;
        core->dev_enc = dev;
 
+       if (core->pm_ops->venc_get) {
+               ret = core->pm_ops->venc_get(dev);
+               if (ret)
+                       return ret;
+       }
+
        video_set_drvdata(vdev, core);
        pm_runtime_set_autosuspend_delay(dev, 2000);
        pm_runtime_use_autosuspend(dev);

-- 
2.53.0


Reply via email to