mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 13:43:51 +00:00
PCI: brcmstb: Use common error handling code in brcm_pcie_probe()
Refactor the error handling in the bottom half of the probe function for readability. The invocation of clk_prepare_enable() is moved lower in the function and this simplifies a couple of return paths. The dev_err_probe() is also used when it is apt. Link: https://lore.kernel.org/linux-pci/20240815225731.40276-5-james.quinlan@broadcom.com Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com> [kwilczynski: commit log] Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
This commit is contained in:
parent
56d020296a
commit
64706ba771
@ -1613,25 +1613,23 @@ static int brcm_pcie_probe(struct platform_device *pdev)
|
||||
|
||||
pcie->ssc = of_property_read_bool(np, "brcm,enable-ssc");
|
||||
|
||||
ret = clk_prepare_enable(pcie->clk);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "could not enable clock\n");
|
||||
return ret;
|
||||
}
|
||||
pcie->rescal = devm_reset_control_get_optional_shared(&pdev->dev, "rescal");
|
||||
if (IS_ERR(pcie->rescal)) {
|
||||
clk_disable_unprepare(pcie->clk);
|
||||
if (IS_ERR(pcie->rescal))
|
||||
return PTR_ERR(pcie->rescal);
|
||||
}
|
||||
|
||||
pcie->perst_reset = devm_reset_control_get_optional_exclusive(&pdev->dev, "perst");
|
||||
if (IS_ERR(pcie->perst_reset)) {
|
||||
clk_disable_unprepare(pcie->clk);
|
||||
if (IS_ERR(pcie->perst_reset))
|
||||
return PTR_ERR(pcie->perst_reset);
|
||||
}
|
||||
|
||||
ret = clk_prepare_enable(pcie->clk);
|
||||
if (ret)
|
||||
return dev_err_probe(&pdev->dev, ret, "could not enable clock\n");
|
||||
|
||||
ret = reset_control_reset(pcie->rescal);
|
||||
if (ret)
|
||||
dev_err(&pdev->dev, "failed to deassert 'rescal'\n");
|
||||
if (ret) {
|
||||
clk_disable_unprepare(pcie->clk);
|
||||
return dev_err_probe(&pdev->dev, ret, "failed to deassert 'rescal'\n");
|
||||
}
|
||||
|
||||
ret = brcm_phy_start(pcie);
|
||||
if (ret) {
|
||||
@ -1678,6 +1676,7 @@ static int brcm_pcie_probe(struct platform_device *pdev)
|
||||
|
||||
fail:
|
||||
__brcm_pcie_remove(pcie);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user