* [RFC v1 0/2] PCI: j721e: A couple of cleanups @ 2025-10-13 10:17 Anand Moon 2025-10-13 10:17 ` [RFC v1 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock Anand Moon 2025-10-13 10:17 ` [RFC v1 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable Anand Moon 0 siblings, 2 replies; 6+ messages in thread From: Anand Moon @ 2025-10-13 10:17 UTC (permalink / raw) To: Vignesh Raghavendra, Siddharth Vadapalli, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, open list:PCI DRIVER FOR TI DRA7XX/J721E, open list:PCI DRIVER FOR TI DRA7XX/J721E, moderated list:PCI DRIVER FOR TI DRA7XX/J721E, open list Cc: Anand Moon Refactor the J721e probe function to use devres helpers for resource management. This replaces manual clock handling with devm_clk_get_optional_enabled() and assigns the reset GPIO directly to the struct members, eliminating unnecessary local variables. These patches have been compile-tested only, as I do not have access to the hardware for runtime verification. Thanks -Anand Anand Moon (2): PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock PCI: j721e: Use inline reset GPIO assignment and drop local variable drivers/pci/controller/cadence/pci-j721e.c | 25 +++++++--------------- 1 file changed, 8 insertions(+), 17 deletions(-) base-commit: 3a8660878839faadb4f1a6dd72c3179c1df56787 -- 2.50.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [RFC v1 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock 2025-10-13 10:17 [RFC v1 0/2] PCI: j721e: A couple of cleanups Anand Moon @ 2025-10-13 10:17 ` Anand Moon 2025-10-13 11:13 ` Siddharth Vadapalli 2025-10-13 10:17 ` [RFC v1 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable Anand Moon 1 sibling, 1 reply; 6+ messages in thread From: Anand Moon @ 2025-10-13 10:17 UTC (permalink / raw) To: Vignesh Raghavendra, Siddharth Vadapalli, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, open list:PCI DRIVER FOR TI DRA7XX/J721E, open list:PCI DRIVER FOR TI DRA7XX/J721E, moderated list:PCI DRIVER FOR TI DRA7XX/J721E, open list Cc: Anand Moon 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 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [RFC v1 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock 2025-10-13 10:17 ` [RFC v1 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock Anand Moon @ 2025-10-13 11:13 ` Siddharth Vadapalli 2025-10-13 14:02 ` Anand Moon 0 siblings, 1 reply; 6+ messages in thread From: Siddharth Vadapalli @ 2025-10-13 11:13 UTC (permalink / raw) To: Anand Moon Cc: Vignesh Raghavendra, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, open list:PCI DRIVER FOR TI DRA7XX/J721E, open list:PCI DRIVER FOR TI DRA7XX/J721E, moderated list:PCI DRIVER FOR TI DRA7XX/J721E, open list, Siddharth Vadapalli 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. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC v1 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock 2025-10-13 11:13 ` Siddharth Vadapalli @ 2025-10-13 14:02 ` Anand Moon 0 siblings, 0 replies; 6+ messages in thread From: Anand Moon @ 2025-10-13 14:02 UTC (permalink / raw) To: Siddharth Vadapalli Cc: Vignesh Raghavendra, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, open list:PCI DRIVER FOR TI DRA7XX/J721E, open list:PCI DRIVER FOR TI DRA7XX/J721E, moderated list:PCI DRIVER FOR TI DRA7XX/J721E, open list 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [RFC v1 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable 2025-10-13 10:17 [RFC v1 0/2] PCI: j721e: A couple of cleanups Anand Moon 2025-10-13 10:17 ` [RFC v1 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock Anand Moon @ 2025-10-13 10:17 ` Anand Moon 2025-10-13 11:22 ` Siddharth Vadapalli 1 sibling, 1 reply; 6+ messages in thread From: Anand Moon @ 2025-10-13 10:17 UTC (permalink / raw) To: Vignesh Raghavendra, Siddharth Vadapalli, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, open list:PCI DRIVER FOR TI DRA7XX/J721E, open list:PCI DRIVER FOR TI DRA7XX/J721E, moderated list:PCI DRIVER FOR TI DRA7XX/J721E, open list Cc: Anand Moon Change removes the unnecessary local gpiod variable and assigns the result of the devm_gpiod_get_optional() call directly to pcie->reset_gpio. 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 | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c index d6bbd04c615b..1ece4b183dfa 100644 --- a/drivers/pci/controller/cadence/pci-j721e.c +++ b/drivers/pci/controller/cadence/pci-j721e.c @@ -477,7 +477,6 @@ static int j721e_pcie_probe(struct platform_device *pdev) struct j721e_pcie *pcie; struct cdns_pcie_rc *rc = NULL; struct cdns_pcie_ep *ep = NULL; - struct gpio_desc *gpiod; void __iomem *base; u32 num_lanes; u32 mode; @@ -589,12 +588,12 @@ static int j721e_pcie_probe(struct platform_device *pdev) switch (mode) { case PCI_MODE_RC: - gpiod = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW); - if (IS_ERR(gpiod)) { - ret = dev_err_probe(dev, PTR_ERR(gpiod), "Failed to get reset GPIO\n"); + pcie->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW); + if (IS_ERR(pcie->reset_gpio)) { + ret = dev_err_probe(dev, PTR_ERR(pcie->reset_gpio), + "Failed to get reset GPIO\n"); goto err_get_sync; } - pcie->reset_gpio = gpiod; ret = cdns_pcie_init_phy(dev, cdns_pcie); if (ret) { @@ -615,9 +614,9 @@ static int j721e_pcie_probe(struct platform_device *pdev) * This shall ensure that the power and the reference clock * are stable. */ - if (gpiod) { + if (pcie->reset_gpio) { msleep(PCIE_T_PVPERL_MS); - gpiod_set_value_cansleep(gpiod, 1); + gpiod_set_value_cansleep(pcie->reset_gpio, 1); } ret = cdns_pcie_host_setup(rc); -- 2.50.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [RFC v1 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable 2025-10-13 10:17 ` [RFC v1 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable Anand Moon @ 2025-10-13 11:22 ` Siddharth Vadapalli 0 siblings, 0 replies; 6+ messages in thread From: Siddharth Vadapalli @ 2025-10-13 11:22 UTC (permalink / raw) To: Anand Moon Cc: Vignesh Raghavendra, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Rob Herring, Bjorn Helgaas, open list:PCI DRIVER FOR TI DRA7XX/J721E, open list:PCI DRIVER FOR TI DRA7XX/J721E, moderated list:PCI DRIVER FOR TI DRA7XX/J721E, open list, Siddharth Vadapalli On Mon, 2025-10-13 at 15:47 +0530, Anand Moon wrote: > Change removes the unnecessary local gpiod variable and assigns the result > of the devm_gpiod_get_optional() call directly to pcie->reset_gpio. > 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> Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com> > --- > drivers/pci/controller/cadence/pci-j721e.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) [TRIMMED] I have also tested the series (despite my feedback on the first patch). Logs: https://gist.github.com/Siddharth-Vadapalli-at-TI/ca82a16e15a892b3349396be17b37643 Please address the feedback on the first patch. Regards, Siddharth. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-10-13 14:03 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-10-13 10:17 [RFC v1 0/2] PCI: j721e: A couple of cleanups Anand Moon 2025-10-13 10:17 ` [RFC v1 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock Anand Moon 2025-10-13 11:13 ` Siddharth Vadapalli 2025-10-13 14:02 ` Anand Moon 2025-10-13 10:17 ` [RFC v1 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable Anand Moon 2025-10-13 11:22 ` Siddharth Vadapalli
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).