Commit 489d7a8c authored by Yuanjun Gong's avatar Yuanjun Gong Committed by Bjorn Andersson
Browse files

soc: qcom: use devm_clk_get_enabled() in gsbi_probe()



in gsbi_probe(), the return value of function clk_prepare_enable()
should be checked, since it may fail. using devm_clk_get_enabled()
instead of devm_clk_get() and clk_prepare_enable() can avoid this
problem.

Signed-off-by: default avatarYuanjun Gong <ruc_gongyuanjun@163.com>
Link: https://lore.kernel.org/r/20230720140834.33557-1-ruc_gongyuanjun@163.com


[bjorn: Dropped unnecessary "ret" variable]
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent de3acb7a
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ static int gsbi_probe(struct platform_device *pdev)
	const struct of_device_id *match;
	void __iomem *base;
	struct gsbi_info *gsbi;
	int i, ret;
	int i;
	u32 mask, gsbi_num;
	const struct crci_config *config = NULL;

@@ -178,12 +178,10 @@ static int gsbi_probe(struct platform_device *pdev)

	dev_info(&pdev->dev, "GSBI port protocol: %d crci: %d\n",
		 gsbi->mode, gsbi->crci);
	gsbi->hclk = devm_clk_get(&pdev->dev, "iface");
	gsbi->hclk = devm_clk_get_enabled(&pdev->dev, "iface");
	if (IS_ERR(gsbi->hclk))
		return PTR_ERR(gsbi->hclk);

	clk_prepare_enable(gsbi->hclk);

	writel_relaxed((gsbi->mode << GSBI_PROTOCOL_SHIFT) | gsbi->crci,
				base + GSBI_CTRL_REG);

@@ -211,10 +209,7 @@ static int gsbi_probe(struct platform_device *pdev)

	platform_set_drvdata(pdev, gsbi);

	ret = of_platform_populate(node, NULL, NULL, &pdev->dev);
	if (ret)
		clk_disable_unprepare(gsbi->hclk);
	return ret;
	return of_platform_populate(node, NULL, NULL, &pdev->dev);
}

static int gsbi_remove(struct platform_device *pdev)