linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marcin Wojtas <mw@semihalf.com>
To: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org,
	linux-acpi@vger.kernel.org
Cc: graeme.gregory@linaro.org, davem@davemloft.net,
	linux@armlinux.org.uk, rafael.j.wysocki@intel.com,
	andrew@lunn.ch, f.fainelli@gmail.com,
	antoine.tenart@free-electrons.com,
	thomas.petazzoni@free-electrons.com,
	gregory.clement@free-electrons.com, stefanc@marvell.com,
	nadavh@marvell.com, neta@marvell.com, ard.biesheuvel@linaro.org,
	mw@semihalf.com, jaz@semihalf.com, tn@semihalf.com
Subject: [net-next: PATCH v4 2/7] device property: Introduce fwnode_get_phy_mode()
Date: Thu, 18 Jan 2018 13:31:39 +0100	[thread overview]
Message-ID: <1516278704-17141-3-git-send-email-mw@semihalf.com> (raw)
In-Reply-To: <1516278704-17141-1-git-send-email-mw@semihalf.com>

Until now there were two almost identical functions for
obtaining network PHY mode - of_get_phy_mode() and,
more generic, device_get_phy_mode(). However it is not uncommon,
that the network interface is represented as a child
of the actual controller, hence it is not associated
directly to any struct device, required by the latter
routine.

This commit allows for getting the PHY mode for
children nodes in the ACPI world by introducing a new function -
fwnode_get_phy_mode(). This commit also changes
device_get_phy_mode() routine to be its wrapper, in order
to prevent unnecessary duplication.

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/base/property.c  | 24 ++++++++++++++++----
 include/linux/property.h |  1 +
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/drivers/base/property.c b/drivers/base/property.c
index f261d1a..7c4a53d 100644
--- a/drivers/base/property.c
+++ b/drivers/base/property.c
@@ -1126,21 +1126,21 @@ enum dev_dma_attr device_get_dma_attr(struct device *dev)
 EXPORT_SYMBOL_GPL(device_get_dma_attr);
 
 /**
- * device_get_phy_mode - Get phy mode for given device
- * @dev:	Pointer to the given device
+ * fwnode_get_phy_mode - Get phy mode for given firmware node
+ * @fwnode:	Pointer to the given node
  *
  * The function gets phy interface string from property 'phy-mode' or
  * 'phy-connection-type', and return its index in phy_modes table, or errno in
  * error case.
  */
-int device_get_phy_mode(struct device *dev)
+int fwnode_get_phy_mode(struct fwnode_handle *fwnode)
 {
 	const char *pm;
 	int err, i;
 
-	err = device_property_read_string(dev, "phy-mode", &pm);
+	err = fwnode_property_read_string(fwnode, "phy-mode", &pm);
 	if (err < 0)
-		err = device_property_read_string(dev,
+		err = fwnode_property_read_string(fwnode,
 						  "phy-connection-type", &pm);
 	if (err < 0)
 		return err;
@@ -1151,6 +1151,20 @@ int device_get_phy_mode(struct device *dev)
 
 	return -ENODEV;
 }
+EXPORT_SYMBOL_GPL(fwnode_get_phy_mode);
+
+/**
+ * device_get_phy_mode - Get phy mode for given device
+ * @dev:	Pointer to the given device
+ *
+ * The function gets phy interface string from property 'phy-mode' or
+ * 'phy-connection-type', and return its index in phy_modes table, or errno in
+ * error case.
+ */
+int device_get_phy_mode(struct device *dev)
+{
+	return fwnode_get_phy_mode(dev_fwnode(dev));
+}
 EXPORT_SYMBOL_GPL(device_get_phy_mode);
 
 static void *fwnode_get_mac_addr(struct fwnode_handle *fwnode,
diff --git a/include/linux/property.h b/include/linux/property.h
index 35620e0..9b13332 100644
--- a/include/linux/property.h
+++ b/include/linux/property.h
@@ -279,6 +279,7 @@ int device_get_phy_mode(struct device *dev);
 
 void *device_get_mac_address(struct device *dev, char *addr, int alen);
 
+int fwnode_get_phy_mode(struct fwnode_handle *fwnode);
 void *fwnode_get_mac_address(struct fwnode_handle *fwnode,
 			     char *addr, int alen);
 struct fwnode_handle *fwnode_graph_get_next_endpoint(
-- 
2.7.4

  parent reply	other threads:[~2018-01-18 12:34 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-18 12:31 [net-next: PATCH v4 0/7] Armada 7k/8k PP2 ACPI support Marcin Wojtas
2018-01-18 12:31 ` [net-next: PATCH v4 1/7] device property: Introduce fwnode_get_mac_address() Marcin Wojtas
2018-01-23  0:03   ` Rafael J. Wysocki
2018-01-23  6:12     ` Marcin Wojtas
2018-01-24  2:08       ` Rafael J. Wysocki
2018-01-24  6:17         ` Marcin Wojtas
2018-01-18 12:31 ` Marcin Wojtas [this message]
2018-01-18 12:31 ` [net-next: PATCH v4 3/7] device property: Introduce fwnode_irq_get() Marcin Wojtas
2018-01-23  0:01   ` Rafael J. Wysocki
2018-01-18 12:31 ` [net-next: PATCH v4 4/7] device property: Allow iterating over available child fwnodes Marcin Wojtas
2018-01-23  0:05   ` Rafael J. Wysocki
2018-01-18 12:31 ` [net-next: PATCH v4 5/7] net: mvpp2: simplify maintaining enabled ports' list Marcin Wojtas
2018-01-18 12:31 ` [net-next: PATCH v4 6/7] net: mvpp2: use device_*/fwnode_* APIs instead of of_* Marcin Wojtas
2018-01-18 12:31 ` [net-next: PATCH v4 7/7] net: mvpp2: enable ACPI support in the driver Marcin Wojtas
2018-01-18 13:23 ` [net-next: PATCH v4 0/7] Armada 7k/8k PP2 ACPI support Antoine Tenart
2018-01-22 13:00   ` Marcin Wojtas
2018-01-22 14:35     ` David Miller
2018-01-22 14:43       ` Andrew Lunn
2018-01-22 15:21         ` Marcin Wojtas
2018-01-22 15:57         ` David Miller
2018-01-22 16:09           ` Marcin Wojtas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1516278704-17141-3-git-send-email-mw@semihalf.com \
    --to=mw@semihalf.com \
    --cc=andrew@lunn.ch \
    --cc=antoine.tenart@free-electrons.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=graeme.gregory@linaro.org \
    --cc=gregory.clement@free-electrons.com \
    --cc=jaz@semihalf.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=nadavh@marvell.com \
    --cc=neta@marvell.com \
    --cc=netdev@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=stefanc@marvell.com \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=tn@semihalf.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).