linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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

* [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 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 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

* 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

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).