Use devm_clk_get_optional_enabled() helper instead of calling
devm_clk_get_optional() and then clk_prepare_enable(). It simplifies
the error handling and makes the code more compact. This changes removes
the unnecessary clk variable and assigns the result of the
devm_clk_get_optional_enabled() call directly to pcie->refclk.
This makes the code more concise and readable without changing the
behavior.
Cc: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
drivers/pci/controller/cadence/pci-j721e.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c
index 5bc5ab20aa6d..d6bbd04c615b 100644
--- a/drivers/pci/controller/cadence/pci-j721e.c
+++ b/drivers/pci/controller/cadence/pci-j721e.c
@@ -479,7 +479,6 @@ static int j721e_pcie_probe(struct platform_device *pdev)
struct cdns_pcie_ep *ep = NULL;
struct gpio_desc *gpiod;
void __iomem *base;
- struct clk *clk;
u32 num_lanes;
u32 mode;
int ret;
@@ -603,18 +602,11 @@ static int j721e_pcie_probe(struct platform_device *pdev)
goto err_get_sync;
}
- clk = devm_clk_get_optional(dev, "pcie_refclk");
- if (IS_ERR(clk)) {
- ret = dev_err_probe(dev, PTR_ERR(clk), "failed to get pcie_refclk\n");
- goto err_pcie_setup;
- }
-
- ret = clk_prepare_enable(clk);
- if (ret) {
+ pcie->refclk = devm_clk_get_optional_enabled(dev, "pcie_refclk");
+ if (IS_ERR(pcie->refclk)) {
dev_err_probe(dev, ret, "failed to enable pcie_refclk\n");
goto err_pcie_setup;
}
- pcie->refclk = clk;
/*
* Section 2.2 of the PCI Express Card Electromechanical
--
2.50.1
On Mon, 2025-10-13 at 15:47 +0530, Anand Moon wrote:
> Use devm_clk_get_optional_enabled() helper instead of calling
> devm_clk_get_optional() and then clk_prepare_enable(). It simplifies
> the error handling and makes the code more compact. This changes removes
> the unnecessary clk variable and assigns the result of the
> devm_clk_get_optional_enabled() call directly to pcie->refclk.
> This makes the code more concise and readable without changing the
> behavior.
>
> Cc: Siddharth Vadapalli <s-vadapalli@ti.com>
> Signed-off-by: Anand Moon <linux.amoon@gmail.com>
> ---
> drivers/pci/controller/cadence/pci-j721e.c | 12 ++----------
> 1 file changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c
> index 5bc5ab20aa6d..d6bbd04c615b 100644
> --- a/drivers/pci/controller/cadence/pci-j721e.c
> +++ b/drivers/pci/controller/cadence/pci-j721e.c
> @@ -479,7 +479,6 @@ static int j721e_pcie_probe(struct platform_device *pdev)
> struct cdns_pcie_ep *ep = NULL;
> struct gpio_desc *gpiod;
> void __iomem *base;
> - struct clk *clk;
> u32 num_lanes;
> u32 mode;
> int ret;
> @@ -603,18 +602,11 @@ static int j721e_pcie_probe(struct platform_device *pdev)
> goto err_get_sync;
> }
>
> - clk = devm_clk_get_optional(dev, "pcie_refclk");
> - if (IS_ERR(clk)) {
> - ret = dev_err_probe(dev, PTR_ERR(clk), "failed to get pcie_refclk\n");
> - goto err_pcie_setup;
> - }
> -
> - ret = clk_prepare_enable(clk);
> - if (ret) {
> + pcie->refclk = devm_clk_get_optional_enabled(dev, "pcie_refclk");
> + if (IS_ERR(pcie->refclk)) {
> dev_err_probe(dev, ret, "failed to enable pcie_refclk\n");
> goto err_pcie_setup;
'err_pcie_setup' returns 'ret' which isn't being updated above.
Maybe add:
ret = pcie->refclk;
above dev_err_probe(...
> }
> - pcie->refclk = clk;
>
> /*
> * Section 2.2 of the PCI Express Card Electromechanical
Regards,
Siddharth.
Hi Siddharth,
Thanks for your review comment
On Mon, 13 Oct 2025 at 16:43, Siddharth Vadapalli <s-vadapalli@ti.com> wrote:
>
> On Mon, 2025-10-13 at 15:47 +0530, Anand Moon wrote:
> > Use devm_clk_get_optional_enabled() helper instead of calling
> > devm_clk_get_optional() and then clk_prepare_enable(). It simplifies
> > the error handling and makes the code more compact. This changes removes
> > the unnecessary clk variable and assigns the result of the
> > devm_clk_get_optional_enabled() call directly to pcie->refclk.
> > This makes the code more concise and readable without changing the
> > behavior.
> >
> > Cc: Siddharth Vadapalli <s-vadapalli@ti.com>
> > Signed-off-by: Anand Moon <linux.amoon@gmail.com>
> > ---
> > drivers/pci/controller/cadence/pci-j721e.c | 12 ++----------
> > 1 file changed, 2 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c
> > index 5bc5ab20aa6d..d6bbd04c615b 100644
> > --- a/drivers/pci/controller/cadence/pci-j721e.c
> > +++ b/drivers/pci/controller/cadence/pci-j721e.c
> > @@ -479,7 +479,6 @@ static int j721e_pcie_probe(struct platform_device *pdev)
> > struct cdns_pcie_ep *ep = NULL;
> > struct gpio_desc *gpiod;
> > void __iomem *base;
> > - struct clk *clk;
> > u32 num_lanes;
> > u32 mode;
> > int ret;
> > @@ -603,18 +602,11 @@ static int j721e_pcie_probe(struct platform_device *pdev)
> > goto err_get_sync;
> > }
> >
> > - clk = devm_clk_get_optional(dev, "pcie_refclk");
> > - if (IS_ERR(clk)) {
> > - ret = dev_err_probe(dev, PTR_ERR(clk), "failed to get pcie_refclk\n");
> > - goto err_pcie_setup;
> > - }
> > -
> > - ret = clk_prepare_enable(clk);
> > - if (ret) {
> > + pcie->refclk = devm_clk_get_optional_enabled(dev, "pcie_refclk");
> > + if (IS_ERR(pcie->refclk)) {
> > dev_err_probe(dev, ret, "failed to enable pcie_refclk\n");
> > goto err_pcie_setup;
>
> 'err_pcie_setup' returns 'ret' which isn't being updated above.
> Maybe add:
> ret = pcie->refclk;
> above dev_err_probe(...
All return values from the dev_err_probe function appear to be missing
in this file.
I'll address this in the next revision through a separate patch.
>
> > }
> > - pcie->refclk = clk;
> >
> > /*
> > * Section 2.2 of the PCI Express Card Electromechanical
>
> Regards,
> Siddharth.
Thanks
-Anand
© 2016 - 2026 Red Hat, Inc.