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
