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: Yuanjun 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: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
parent
de3acb7af9
commit
489d7a8cc2
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue