Message ID | 20240710221630.29561-4-james.quinlan@broadcom.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Krzysztof WilczyĆski |
Headers | show |
Series | PCI: brcnstb: Enable STB 7712 SOC | expand |
On 7/11/24 01:16, Jim Quinlan wrote: > o Move the clk_prepare_enable() below the resource allocations. > o Add a jump target (clk_out) so that a bit of exception handling can be > better reused at the end of this function implementation. > > Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com> > > Fixes: bb610757fcd7 ("PCI: brcmstb: Use reset/rearm instead of deassert/assert") I don't think the current patch is related to bb610757fcd7, please drop Fixes tag. > --- > drivers/pci/controller/pcie-brcmstb.c | 29 +++++++++++++++------------ > 1 file changed, 16 insertions(+), 13 deletions(-) Reviewed-by: Stanimir Varbanov <svarbanov@suse.de> ~Stan
On 7/10/24 15:16, Jim Quinlan wrote: > o Move the clk_prepare_enable() below the resource allocations. > o Add a jump target (clk_out) so that a bit of exception handling can be > better reused at the end of this function implementation. > > Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com> > > Fixes: bb610757fcd7 ("PCI: brcmstb: Use reset/rearm instead of deassert/assert") (no need for an empty line between your Signed-off-by and the Fixes tags BTW). Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c index c08683febdd4..c257434edc08 100644 --- a/drivers/pci/controller/pcie-brcmstb.c +++ b/drivers/pci/controller/pcie-brcmstb.c @@ -1613,31 +1613,30 @@ 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) { + dev_err(&pdev->dev, "could not enable clock\n"); + return ret; } ret = reset_control_reset(pcie->rescal); - if (ret) + if (ret) { dev_err(&pdev->dev, "failed to deassert 'rescal'\n"); + goto clk_out; + } ret = brcm_phy_start(pcie); if (ret) { reset_control_rearm(pcie->rescal); - clk_disable_unprepare(pcie->clk); - return ret; + goto clk_out; } ret = brcm_pcie_setup(pcie); @@ -1676,6 +1675,10 @@ static int brcm_pcie_probe(struct platform_device *pdev) return 0; +clk_out: + clk_disable_unprepare(pcie->clk); + return ret; + fail: __brcm_pcie_remove(pcie); return ret;
o Move the clk_prepare_enable() below the resource allocations. o Add a jump target (clk_out) so that a bit of exception handling can be better reused at the end of this function implementation. Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com> Fixes: bb610757fcd7 ("PCI: brcmstb: Use reset/rearm instead of deassert/assert") --- drivers/pci/controller/pcie-brcmstb.c | 29 +++++++++++++++------------ 1 file changed, 16 insertions(+), 13 deletions(-)