linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] pinctrl: tegra: Use of_device_get_match_data()
@ 2019-09-23  9:36 Thierry Reding
  2019-09-23  9:54 ` Thierry Reding
  0 siblings, 1 reply; 3+ messages in thread
From: Thierry Reding @ 2019-09-23  9:36 UTC (permalink / raw)
  To: Linus Walleij; +Cc: Jonathan Hunter, linux-gpio, linux-tegra

From: Thierry Reding <treding@nvidia.com>

Use the of_device_get_match_data() helper instead of open-coding.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/pinctrl/tegra/pinctrl-tegra-xusb.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c b/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c
index 95002e3ecaff..6b6d027c6fd0 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c
@@ -7,6 +7,7 @@
 #include <linux/io.h>
 #include <linux/module.h>
 #include <linux/of.h>
+#include <linux/of_device.h>
 #include <linux/phy/phy.h>
 #include <linux/pinctrl/pinctrl.h>
 #include <linux/pinctrl/pinmux.h>
@@ -872,7 +873,6 @@ int tegra_xusb_padctl_legacy_remove(struct platform_device *pdev);
 int tegra_xusb_padctl_legacy_probe(struct platform_device *pdev)
 {
 	struct tegra_xusb_padctl *padctl;
-	const struct of_device_id *match;
 	struct resource *res;
 	struct phy *phy;
 	int err;
@@ -885,8 +885,7 @@ int tegra_xusb_padctl_legacy_probe(struct platform_device *pdev)
 	mutex_init(&padctl->lock);
 	padctl->dev = &pdev->dev;
 
-	match = of_match_node(tegra_xusb_padctl_of_match, pdev->dev.of_node);
-	padctl->soc = match->data;
+	padctl->soc = of_device_get_match_data(&pdev->dev);
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	padctl->regs = devm_ioremap_resource(&pdev->dev, res);
-- 
2.23.0


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

* Re: [PATCH] pinctrl: tegra: Use of_device_get_match_data()
  2019-09-23  9:36 [PATCH] pinctrl: tegra: Use of_device_get_match_data() Thierry Reding
@ 2019-09-23  9:54 ` Thierry Reding
  2019-10-04 21:21   ` Linus Walleij
  0 siblings, 1 reply; 3+ messages in thread
From: Thierry Reding @ 2019-09-23  9:54 UTC (permalink / raw)
  To: Linus Walleij; +Cc: Jonathan Hunter, linux-gpio, linux-tegra

[-- Attachment #1: Type: text/plain, Size: 1950 bytes --]

On Mon, Sep 23, 2019 at 11:36:37AM +0200, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Use the of_device_get_match_data() helper instead of open-coding.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  drivers/pinctrl/tegra/pinctrl-tegra-xusb.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)

Actually, scratch that. We can't do this because the match table is
different for the legacy case from what the new PHY driver uses which
calls this only for the legacy case. Instead, I'd propose the attached
patch.

Thierry

--- >8 ---
From 6c96f18a2608b21d178007c97337400b788c3f9e Mon Sep 17 00:00:00 2001
From: Thierry Reding <treding@nvidia.com>
Date: Mon, 23 Sep 2019 11:47:25 +0200
Subject: [PATCH] pinctrl: tegra: xusb: Add note about legacy status

Add a comment about why the call to of_match_node() cannot be replaced
by of_device_get_match_data(). This will hopefully prevent people from
attempting to clean this up in the future.

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 drivers/pinctrl/tegra/pinctrl-tegra-xusb.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c b/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c
index 95002e3ecaff..f2fa1f76ebb7 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra-xusb.c
@@ -885,6 +885,12 @@ int tegra_xusb_padctl_legacy_probe(struct platform_device *pdev)
 	mutex_init(&padctl->lock);
 	padctl->dev = &pdev->dev;
 
+	/*
+	 * Note that we can't replace this by of_device_get_match_data()
+	 * because we need the separate matching table for this legacy code on
+	 * Tegra124. of_device_get_match_data() would attempt to use the table
+	 * from the updated driver and fail.
+	 */
 	match = of_match_node(tegra_xusb_padctl_of_match, pdev->dev.of_node);
 	padctl->soc = match->data;
 
-- 
2.23.0


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH] pinctrl: tegra: Use of_device_get_match_data()
  2019-09-23  9:54 ` Thierry Reding
@ 2019-10-04 21:21   ` Linus Walleij
  0 siblings, 0 replies; 3+ messages in thread
From: Linus Walleij @ 2019-10-04 21:21 UTC (permalink / raw)
  To: Thierry Reding; +Cc: Jonathan Hunter, open list:GPIO SUBSYSTEM, linux-tegra

On Mon, Sep 23, 2019 at 11:54 AM Thierry Reding
<thierry.reding@gmail.com> wrote:

> Actually, scratch that. We can't do this because the match table is
> different for the legacy case from what the new PHY driver uses which
> calls this only for the legacy case. Instead, I'd propose the attached
> patch.

OK I applied that instead.

Yours,
Linus Walleij

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

end of thread, other threads:[~2019-10-04 21:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-23  9:36 [PATCH] pinctrl: tegra: Use of_device_get_match_data() Thierry Reding
2019-09-23  9:54 ` Thierry Reding
2019-10-04 21:21   ` Linus Walleij

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