media: mtk-vcodec: Refactor vcodec pm interface
authorYunfei Dong <yunfei.dong@mediatek.com>
Thu, 13 Jan 2022 04:10:39 +0000 (05:10 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 23 Jan 2022 20:18:44 +0000 (21:18 +0100)
Using the needed params for pm init/release function and remove unused
param mtkdev in 'struct mtk_vcodec_pm'.

Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
Reviewed-by: Tzung-Bi Shih <tzungbi@google.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Steve Cho <stevecho@chromium.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.h
drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c

index 30257e4f989b2f342c8b58733fe4a1d94b49efc3..b9f612fb630ed5221a63f55dd55f132229f7b114 100644 (file)
@@ -246,7 +246,7 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
        if (IS_ERR(dev->fw_handler))
                return PTR_ERR(dev->fw_handler);
 
-       ret = mtk_vcodec_init_dec_pm(dev);
+       ret = mtk_vcodec_init_dec_pm(dev->plat_dev, &dev->pm);
        if (ret < 0) {
                dev_err(&pdev->dev, "Failed to get mt vcodec clock source");
                goto err_dec_pm;
@@ -377,7 +377,7 @@ err_dec_mem_init:
 err_dec_alloc:
        v4l2_device_unregister(&dev->v4l2_dev);
 err_res:
-       mtk_vcodec_release_dec_pm(dev);
+       mtk_vcodec_release_dec_pm(&dev->pm);
 err_dec_pm:
        mtk_vcodec_fw_release(dev->fw_handler);
        return ret;
@@ -416,7 +416,7 @@ static int mtk_vcodec_dec_remove(struct platform_device *pdev)
                video_unregister_device(dev->vfd_dec);
 
        v4l2_device_unregister(&dev->v4l2_dev);
-       mtk_vcodec_release_dec_pm(dev);
+       mtk_vcodec_release_dec_pm(&dev->pm);
        mtk_vcodec_fw_release(dev->fw_handler);
        return 0;
 }
index 6038db96f71c31f1c65433e654c76e9fc905ee9b..5ba54bb813c88a9d8088e7fdb87214b075d36ca9 100644 (file)
 #include "mtk_vcodec_dec_pm.h"
 #include "mtk_vcodec_util.h"
 
-int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *mtkdev)
+int mtk_vcodec_init_dec_pm(struct platform_device *pdev, struct mtk_vcodec_pm *pm)
 {
        struct device_node *node;
-       struct platform_device *pdev;
-       struct mtk_vcodec_pm *pm;
+       struct platform_device *larb_pdev;
        struct mtk_vcodec_clk *dec_clk;
        struct mtk_vcodec_clk_info *clk_info;
        int i = 0, ret = 0;
 
-       pdev = mtkdev->plat_dev;
-       pm = &mtkdev->pm;
-       pm->mtkdev = mtkdev;
        dec_clk = &pm->vdec_clk;
        node = of_parse_phandle(pdev->dev.of_node, "mediatek,larb", 0);
        if (!node) {
@@ -32,13 +28,12 @@ int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *mtkdev)
                return -1;
        }
 
-       pdev = of_find_device_by_node(node);
+       larb_pdev = of_find_device_by_node(node);
        of_node_put(node);
-       if (WARN_ON(!pdev)) {
+       if (WARN_ON(!larb_pdev))
                return -1;
-       }
-       pm->larbvdec = &pdev->dev;
-       pdev = mtkdev->plat_dev;
+
+       pm->larbvdec = &larb_pdev->dev;
        pm->dev = &pdev->dev;
 
        dec_clk->clk_num =
@@ -82,10 +77,10 @@ put_device:
        return ret;
 }
 
-void mtk_vcodec_release_dec_pm(struct mtk_vcodec_dev *dev)
+void mtk_vcodec_release_dec_pm(struct mtk_vcodec_pm *pm)
 {
-       pm_runtime_disable(dev->pm.dev);
-       put_device(dev->pm.larbvdec);
+       pm_runtime_disable(pm->dev);
+       put_device(pm->larbvdec);
 }
 
 int mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm)
index 280aeaefdb6514d976adf1fda0e0120917376f50..08769c7648ebc64e6c38dde5687651d1c22a8e49 100644 (file)
@@ -9,8 +9,8 @@
 
 #include "mtk_vcodec_drv.h"
 
-int mtk_vcodec_init_dec_pm(struct mtk_vcodec_dev *dev);
-void mtk_vcodec_release_dec_pm(struct mtk_vcodec_dev *dev);
+int mtk_vcodec_init_dec_pm(struct platform_device *pdev, struct mtk_vcodec_pm *pm);
+void mtk_vcodec_release_dec_pm(struct mtk_vcodec_pm *pm);
 
 int mtk_vcodec_dec_pw_on(struct mtk_vcodec_pm *pm);
 void mtk_vcodec_dec_pw_off(struct mtk_vcodec_pm *pm);
index 1d2370608d0d27f5383d81e887ed279249557476..0fa9d85114b9fc16f9a16087b5a00f1325e10654 100644 (file)
@@ -195,7 +195,6 @@ struct mtk_vcodec_pm {
        struct mtk_vcodec_clk   venc_clk;
        struct device   *larbvenc;
        struct device   *dev;
-       struct mtk_vcodec_dev   *mtkdev;
 };
 
 /**
index 1b2e4930ed27979cbfabb3ef39262e7c3d0ddf18..0c8c8f86788c1e649bd6ea4d59392e33edaf0de4 100644 (file)
@@ -26,7 +26,6 @@ int mtk_vcodec_init_enc_pm(struct mtk_vcodec_dev *mtkdev)
        pdev = mtkdev->plat_dev;
        pm = &mtkdev->pm;
        memset(pm, 0, sizeof(struct mtk_vcodec_pm));
-       pm->mtkdev = mtkdev;
        pm->dev = &pdev->dev;
        dev = &pdev->dev;
        enc_clk = &pm->venc_clk;