drm/mediatek: Get CMDQ client register for all ddp component
authorChun-Kuang Hu <chunkuang.hu@kernel.org>
Sun, 18 Oct 2020 23:31:14 +0000 (07:31 +0800)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Mon, 28 Dec 2020 23:11:10 +0000 (07:11 +0800)
Only OVL, RDMA,and WDMA get CMDQ client register information,
but all ddp component should work with CMDQ, so get this
information for all ddp component.

Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c

index 3064eac..cab5343 100644 (file)
@@ -506,6 +506,21 @@ int mtk_ddp_comp_init(struct device *dev, struct device_node *node,
        if (IS_ERR(comp->clk))
                return PTR_ERR(comp->clk);
 
+#if IS_REACHABLE(CONFIG_MTK_CMDQ)
+       if (of_address_to_resource(node, 0, &res) != 0) {
+               dev_err(dev, "Missing reg in %s node\n", node->full_name);
+               put_device(&larb_pdev->dev);
+               return -EINVAL;
+       }
+       comp->regs_pa = res.start;
+
+       ret = cmdq_dev_get_client_reg(dev, &cmdq_reg, 0);
+       if (ret)
+               dev_dbg(dev, "get mediatek,gce-client-reg fail!\n");
+       else
+               comp->subsys = cmdq_reg.subsys;
+#endif
+
        /* Only DMA capable components need the LARB property */
        comp->larb_dev = NULL;
        if (type != MTK_DISP_OVL &&
@@ -531,20 +546,6 @@ int mtk_ddp_comp_init(struct device *dev, struct device_node *node,
 
        comp->larb_dev = &larb_pdev->dev;
 
-#if IS_REACHABLE(CONFIG_MTK_CMDQ)
-       if (of_address_to_resource(node, 0, &res) != 0) {
-               dev_err(dev, "Missing reg in %s node\n", node->full_name);
-               put_device(&larb_pdev->dev);
-               return -EINVAL;
-       }
-       comp->regs_pa = res.start;
-
-       ret = cmdq_dev_get_client_reg(dev, &cmdq_reg, 0);
-       if (ret)
-               dev_dbg(dev, "get mediatek,gce-client-reg fail!\n");
-       else
-               comp->subsys = cmdq_reg.subsys;
-#endif
        return 0;
 }