linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/2] PCI: j721e: A couple of cleanups
@ 2025-10-28 15:42 Anand Moon
  2025-10-28 15:42 ` [PATCH v3 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock Anand Moon
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Anand Moon @ 2025-10-28 15:42 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, Markus Elfring, Dan Carpenter

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.

v3  : https://lore.kernel.org/all/20251027090310.38999-1-linux.amoon@gmail.com/
v2  : https://lore.kernel.org/all/20251025074336.26743-1-linux.amoon@gmail.com/
v1  : https://lore.kernel.org/all/20251014113234.44418-1-linux.amoon@gmail.com/
RFC : https://lore.kernel.org/all/20251013101727.129260-1-linux.amoon@gmail.com/

Changes
v4  : Improve the commit message.

v2  Drop the dev_err_probe return patch.
    Fix small issue address issue by Dan and Markus.
v1:
   Add new patch for dev_err_probe return.
   dropped unsesary clk_disable_unprepare as its handle by
   devm_clk_get_optional_enabled.

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 | 33 ++++++++--------------
 1 file changed, 11 insertions(+), 22 deletions(-)


base-commit: fd57572253bc356330dbe5b233c2e1d8426c66fd
-- 
2.50.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v3 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock
  2025-10-28 15:42 [PATCH v3 0/2] PCI: j721e: A couple of cleanups Anand Moon
@ 2025-10-28 15:42 ` Anand Moon
  2025-10-28 15:42 ` [PATCH v3 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable Anand Moon
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Anand Moon @ 2025-10-28 15:42 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, Markus Elfring, Dan Carpenter

Use devm_clk_get_optional_enabled() helper instead of calling
devm_clk_get_optional() and then clk_prepare_enable(). It simplifies
the clk_prepare_enable() and clk_disable_unprepare() with proper error
handling and makes the code more compact.
The result of devm_clk_get_optional_enabled() is now assigned directly
to pcie->refclk. This removes a superfluous local clk variable,
improving code readability and compactness. The functionality
remains unchanged, but the code is now more streamlined.

Cc: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
v4: Add Rb Siddharth
---
 drivers/pci/controller/cadence/pci-j721e.c | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c
index 5bc5ab20aa6d..a88b2e52fd78 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,19 +602,13 @@ 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");
+		pcie->refclk = devm_clk_get_optional_enabled(dev, "pcie_refclk");
+		if (IS_ERR(pcie->refclk)) {
+			ret = dev_err_probe(dev, PTR_ERR(pcie->refclk),
+					    "failed to enable pcie_refclk\n");
 			goto err_pcie_setup;
 		}
 
-		ret = clk_prepare_enable(clk);
-		if (ret) {
-			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
 		 * Specification (Revision 5.1) mandates that the deassertion
@@ -629,10 +622,8 @@ static int j721e_pcie_probe(struct platform_device *pdev)
 		}
 
 		ret = cdns_pcie_host_setup(rc);
-		if (ret < 0) {
-			clk_disable_unprepare(pcie->refclk);
+		if (ret < 0)
 			goto err_pcie_setup;
-		}
 
 		break;
 	case PCI_MODE_EP:
@@ -679,7 +670,6 @@ static void j721e_pcie_remove(struct platform_device *pdev)
 
 	gpiod_set_value_cansleep(pcie->reset_gpio, 0);
 
-	clk_disable_unprepare(pcie->refclk);
 	cdns_pcie_disable_phy(cdns_pcie);
 	j721e_pcie_disable_link_irq(pcie);
 	pm_runtime_put(dev);
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable
  2025-10-28 15:42 [PATCH v3 0/2] PCI: j721e: A couple of cleanups Anand Moon
  2025-10-28 15:42 ` [PATCH v3 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock Anand Moon
@ 2025-10-28 15:42 ` Anand Moon
  2025-10-28 19:58   ` [PATCH v? " Markus Elfring
  2025-10-28 17:00 ` [PATCH v3 0/2] PCI: j721e: A couple of cleanups Anand Moon
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Anand Moon @ 2025-10-28 15:42 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, Markus Elfring, Dan Carpenter

Assign the result of devm_gpiod_get_optional() directly to pcie->reset_gpio.
Thus removes a superfluous local variable, which simplifies control flow
and improves code clarity without affecting functional behavior.

Cc: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
v4: Improve the commit message
---
 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 a88b2e52fd78..ecd1b0312400 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) {
@@ -616,9 +615,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] 9+ messages in thread

* Re: [PATCH v3 0/2] PCI: j721e: A couple of cleanups
  2025-10-28 15:42 [PATCH v3 0/2] PCI: j721e: A couple of cleanups Anand Moon
  2025-10-28 15:42 ` [PATCH v3 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock Anand Moon
  2025-10-28 15:42 ` [PATCH v3 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable Anand Moon
@ 2025-10-28 17:00 ` Anand Moon
  2025-10-28 19:51 ` [PATCH v? " Markus Elfring
  2025-10-31  8:53 ` [PATCH v3 " Manivannan Sadhasivam
  4 siblings, 0 replies; 9+ messages in thread
From: Anand Moon @ 2025-10-28 17:00 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: Markus Elfring, Dan Carpenter

Hi All,

On Tue, 28 Oct 2025 at 21:12, Anand Moon <linux.amoon@gmail.com> wrote:
>
> 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.
>
These changes are v4 revision. This got messed up in the format output folder
Sorry for the inconvenience.

Thanks
-Anand
> v3  : https://lore.kernel.org/all/20251027090310.38999-1-linux.amoon@gmail.com/
> v2  : https://lore.kernel.org/all/20251025074336.26743-1-linux.amoon@gmail.com/
> v1  : https://lore.kernel.org/all/20251014113234.44418-1-linux.amoon@gmail.com/
> RFC : https://lore.kernel.org/all/20251013101727.129260-1-linux.amoon@gmail.com/
>
> Changes
> v4  : Improve the commit message.
>
> v2  Drop the dev_err_probe return patch.
>     Fix small issue address issue by Dan and Markus.
> v1:
>    Add new patch for dev_err_probe return.
>    dropped unsesary clk_disable_unprepare as its handle by
>    devm_clk_get_optional_enabled.
>
> 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 | 33 ++++++++--------------
>  1 file changed, 11 insertions(+), 22 deletions(-)
>
>
> base-commit: fd57572253bc356330dbe5b233c2e1d8426c66fd
> --
> 2.50.1
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v? 0/2] PCI: j721e: A couple of cleanups
  2025-10-28 15:42 [PATCH v3 0/2] PCI: j721e: A couple of cleanups Anand Moon
                   ` (2 preceding siblings ...)
  2025-10-28 17:00 ` [PATCH v3 0/2] PCI: j721e: A couple of cleanups Anand Moon
@ 2025-10-28 19:51 ` Markus Elfring
  2025-10-30  5:13   ` Anand Moon
  2025-10-31  8:53 ` [PATCH v3 " Manivannan Sadhasivam
  4 siblings, 1 reply; 9+ messages in thread
From: Markus Elfring @ 2025-10-28 19:51 UTC (permalink / raw)
  To: Anand Moon, linux-omap, linux-pci, linux-arm-kernel,
	Bjorn Helgaas, Krzysztof Wilczyński, Lorenzo Pieralisi,
	Manivannan Sadhasivam, Rob Herring, Siddharth Vadapalli,
	Vignesh Raghavendra
  Cc: LKML, Dan Carpenter

…> Changes
> v4  : Improve the commit message.

Would an other version number be more appropriate for the subject prefixes
of this patch series?


…> v1:
…>    dropped unsesary clk_disable_unprepare as its handle by
…

             unnecessary?

Regards,
Markus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v? 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable
  2025-10-28 15:42 ` [PATCH v3 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable Anand Moon
@ 2025-10-28 19:58   ` Markus Elfring
  0 siblings, 0 replies; 9+ messages in thread
From: Markus Elfring @ 2025-10-28 19:58 UTC (permalink / raw)
  To: Anand Moon, linux-omap, linux-pci, linux-arm-kernel,
	Bjorn Helgaas, Krzysztof Wilczyński, Lorenzo Pieralisi,
	Manivannan Sadhasivam, Rob Herring, Siddharth Vadapalli,
	Vignesh Raghavendra
  Cc: LKML, Dan Carpenter

…> Thus removes a superfluous local variable, which simplifies control flow

       remove?                               Simplify?


> and improves code clarity without affecting functional behavior.

      improve?


Regards,
Markus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v? 0/2] PCI: j721e: A couple of cleanups
  2025-10-28 19:51 ` [PATCH v? " Markus Elfring
@ 2025-10-30  5:13   ` Anand Moon
  0 siblings, 0 replies; 9+ messages in thread
From: Anand Moon @ 2025-10-30  5:13 UTC (permalink / raw)
  To: Markus Elfring
  Cc: linux-omap, linux-pci, linux-arm-kernel, Bjorn Helgaas,
	Krzysztof Wilczyński, Lorenzo Pieralisi,
	Manivannan Sadhasivam, Rob Herring, Siddharth Vadapalli,
	Vignesh Raghavendra, LKML, Dan Carpenter

Hi Markus,


On Wed, 29 Oct 2025 at 01:21, Markus Elfring <Markus.Elfring@web.de> wrote:
>
> …> Changes
> > v4  : Improve the commit message.
>
> Would an other version number be more appropriate for the subject prefixes
> of this patch series?
>
Yes, if there are some more review comments on these patches,
Or they get lost in emails.
>
> …> v1:
> …>    dropped unsesary clk_disable_unprepare as its handle by
> …
>
>              unnecessary?
>
> Regards,
> Markus
>
Thanks
-Anand

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 0/2] PCI: j721e: A couple of cleanups
  2025-10-28 15:42 [PATCH v3 0/2] PCI: j721e: A couple of cleanups Anand Moon
                   ` (3 preceding siblings ...)
  2025-10-28 19:51 ` [PATCH v? " Markus Elfring
@ 2025-10-31  8:53 ` Manivannan Sadhasivam
  2025-11-13 18:26   ` Bjorn Helgaas
  4 siblings, 1 reply; 9+ messages in thread
From: Manivannan Sadhasivam @ 2025-10-31  8:53 UTC (permalink / raw)
  To: Vignesh Raghavendra, Siddharth Vadapalli, Lorenzo Pieralisi,
	Krzysztof Wilczyński, Rob Herring, Bjorn Helgaas, linux-omap,
	linux-pci, linux-arm-kernel, linux-kernel, Anand Moon
  Cc: Markus Elfring, Dan Carpenter


On Tue, 28 Oct 2025 21:12:22 +0530, Anand Moon wrote:
> 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.
> 
> [...]

Applied, thanks!

[1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock
      commit: 59ba8c0981e73cb2bb70074be4ef46b4188424ea
[2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable
      commit: 8895c0fc0671f38746ee1c02b728b126f7dbbf97

Best regards,
-- 
Manivannan Sadhasivam <mani@kernel.org>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 0/2] PCI: j721e: A couple of cleanups
  2025-10-31  8:53 ` [PATCH v3 " Manivannan Sadhasivam
@ 2025-11-13 18:26   ` Bjorn Helgaas
  0 siblings, 0 replies; 9+ messages in thread
From: Bjorn Helgaas @ 2025-11-13 18:26 UTC (permalink / raw)
  To: Manivannan Sadhasivam
  Cc: Vignesh Raghavendra, Siddharth Vadapalli, Lorenzo Pieralisi,
	Krzysztof Wilczyński, Rob Herring, Bjorn Helgaas, linux-omap,
	linux-pci, linux-arm-kernel, linux-kernel, Anand Moon,
	Markus Elfring, Dan Carpenter

On Fri, Oct 31, 2025 at 02:23:20PM +0530, Manivannan Sadhasivam wrote:
> 
> On Tue, 28 Oct 2025 21:12:22 +0530, Anand Moon wrote:
> > 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.
> > 
> > [...]
> 
> Applied, thanks!
> 
> [1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock
>       commit: 59ba8c0981e73cb2bb70074be4ef46b4188424ea
> [2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable
>       commit: 8895c0fc0671f38746ee1c02b728b126f7dbbf97

Moved to pci/controller/j721e so they're separate from the keystone
changes.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-11-13 18:26 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-28 15:42 [PATCH v3 0/2] PCI: j721e: A couple of cleanups Anand Moon
2025-10-28 15:42 ` [PATCH v3 1/2] PCI: j721e: Use devm_clk_get_optional_enabled() to get the clock Anand Moon
2025-10-28 15:42 ` [PATCH v3 2/2] PCI: j721e: Use inline reset GPIO assignment and drop local variable Anand Moon
2025-10-28 19:58   ` [PATCH v? " Markus Elfring
2025-10-28 17:00 ` [PATCH v3 0/2] PCI: j721e: A couple of cleanups Anand Moon
2025-10-28 19:51 ` [PATCH v? " Markus Elfring
2025-10-30  5:13   ` Anand Moon
2025-10-31  8:53 ` [PATCH v3 " Manivannan Sadhasivam
2025-11-13 18:26   ` Bjorn Helgaas

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