media: rkisp1: Read the ID register at probe time instead of streamon
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tue, 14 Jun 2022 19:10:37 +0000 (20:10 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 17 Jul 2022 10:25:45 +0000 (11:25 +0100)
There's no need to read the ID register every time streaming is started.
Do it once, at probe time.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Dafna Hirschfeld <dafna@fastmail.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c

index 248f0172ca628fb5246ab461b540db9af83a6a8a..ba773c0784fb12bd9dbe302bd9f472d5995a45c7 100644 (file)
@@ -467,6 +467,7 @@ static int rkisp1_probe(struct platform_device *pdev)
        struct v4l2_device *v4l2_dev;
        unsigned int i;
        int ret, irq;
+       u32 cif_id;
 
        match_data = of_device_get_match_data(&pdev->dev);
        if (!match_data)
@@ -509,6 +510,15 @@ static int rkisp1_probe(struct platform_device *pdev)
 
        pm_runtime_enable(&pdev->dev);
 
+       ret = pm_runtime_resume_and_get(&pdev->dev);
+       if (ret)
+               goto err_pm_runtime_disable;
+
+       cif_id = rkisp1_read(rkisp1, RKISP1_CIF_VI_ID);
+       dev_dbg(rkisp1->dev, "CIF_ID 0x%08x\n", cif_id);
+
+       pm_runtime_put(&pdev->dev);
+
        rkisp1->media_dev.hw_revision = match_data->isp_ver;
        strscpy(rkisp1->media_dev.model, RKISP1_DRIVER_NAME,
                sizeof(rkisp1->media_dev.model));
index a97c145bad981ac38208817aec8782bdfa5dbdcf..bc94a51124b07d1c522e1c631be462f8de980eb1 100644 (file)
@@ -473,12 +473,8 @@ static int rkisp1_config_path(struct rkisp1_device *rkisp1)
 /* Hardware configure Entry */
 static int rkisp1_config_cif(struct rkisp1_device *rkisp1)
 {
-       u32 cif_id;
        int ret;
 
-       cif_id = rkisp1_read(rkisp1, RKISP1_CIF_VI_ID);
-       dev_dbg(rkisp1->dev, "CIF_ID 0x%08x\n", cif_id);
-
        ret = rkisp1_config_isp(rkisp1);
        if (ret)
                return ret;