In preparation for adding an helper serving the purpose of finally
removing duplicated code to check for internal/simple components,
and for improving human readability in the up coming refactoring,
move the internal/simple component registration logic to its own
mtk_ddp_comp_init_internal_comp() function.

This brings no functional changes.

Signed-off-by: AngeloGioacchino Del Regno 
<[email protected]>
---
 drivers/gpu/drm/mediatek/mtk_ddp_comp.c | 55 +++++++++++++++----------
 1 file changed, 33 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_ddp_comp.c 
b/drivers/gpu/drm/mediatek/mtk_ddp_comp.c
index d716fd9f8a70..2ba2123238b3 100644
--- a/drivers/gpu/drm/mediatek/mtk_ddp_comp.c
+++ b/drivers/gpu/drm/mediatek/mtk_ddp_comp.c
@@ -629,6 +629,38 @@ static void mtk_ddp_comp_clk_put(void *_clk)
        clk_put(clk);
 }
 
+static int mtk_ddp_comp_init_internal_comp(struct device *dev, struct device 
*comp_dev)
+{
+       struct device_node *comp_node = comp_dev->of_node;
+       struct mtk_ddp_comp_dev *priv;
+       int ret;
+
+       priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
+       if (!priv)
+               return -ENOMEM;
+
+       priv->regs = devm_of_iomap(dev, comp_node, 0, NULL);
+       if (IS_ERR(priv->regs))
+               return PTR_ERR(priv->regs);
+
+       priv->clk = of_clk_get(comp_node, 0);
+       if (IS_ERR(priv->clk))
+               return PTR_ERR(priv->clk);
+
+       ret = devm_add_action_or_reset(dev, mtk_ddp_comp_clk_put, priv->clk);
+       if (ret)
+               return ret;
+
+#if IS_REACHABLE(CONFIG_MTK_CMDQ)
+       ret = cmdq_dev_get_client_reg(comp_dev, &priv->cmdq_reg, 0);
+       if (ret)
+               dev_dbg(comp_dev, "get mediatek,gce-client-reg fail!\n");
+#endif
+       dev_set_drvdata(comp_dev, priv);
+
+       return 0;
+};
+
 int mtk_ddp_comp_init(struct device *dev, struct device_node *node,
                      struct mtk_drm_comp_list *hlist,
                      unsigned int comp_id)
@@ -636,7 +668,6 @@ int mtk_ddp_comp_init(struct device *dev, struct 
device_node *node,
        struct platform_device *comp_pdev;
        struct mtk_ddp_comp *comp;
        enum mtk_ddp_comp_type type;
-       struct mtk_ddp_comp_dev *priv;
        int ret;
 
        if (comp_id >= DDP_COMPONENT_DRM_ID_MAX)
@@ -686,29 +717,9 @@ int mtk_ddp_comp_init(struct device *dev, struct 
device_node *node,
            type == MTK_DISP_DSI)
                goto end;
 
-       priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
-       if (!priv)
-               return -ENOMEM;
-
-       priv->regs = devm_of_iomap(dev, node, 0, NULL);
-       if (IS_ERR(priv->regs))
-               return PTR_ERR(priv->regs);
-
-       priv->clk = of_clk_get(node, 0);
-       if (IS_ERR(priv->clk))
-               return PTR_ERR(priv->clk);
-
-       ret = devm_add_action_or_reset(dev, mtk_ddp_comp_clk_put, priv->clk);
+       ret = mtk_ddp_comp_init_internal_comp(dev, comp->dev);
        if (ret)
                return ret;
-
-#if IS_REACHABLE(CONFIG_MTK_CMDQ)
-       ret = cmdq_dev_get_client_reg(comp->dev, &priv->cmdq_reg, 0);
-       if (ret)
-               dev_dbg(comp->dev, "get mediatek,gce-client-reg fail!\n");
-#endif
-
-       platform_set_drvdata(comp_pdev, priv);
 end:
        hash_add(hlist->ddp_list, &comp->lnode, comp->id);
 
-- 
2.54.0

Reply via email to