linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: mw@semihalf.com (Marcin Wojtas)
To: linux-arm-kernel@lists.infradead.org
Subject: [net-next: PATCH v2 2/5] device property: Introduce fwnode_get_phy_mode()
Date: Sun, 31 Dec 2017 12:58:37 +0100	[thread overview]
Message-ID: <1514721520-18964-3-git-send-email-mw@semihalf.com> (raw)
In-Reply-To: <1514721520-18964-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>
---
 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:[~2017-12-31 11:58 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-31 11:58 [net-next: PATCH v2 0/5] Armada 7k/8k PP2 ACPI support Marcin Wojtas
2017-12-31 11:58 ` [net-next: PATCH v2 1/5] device property: Introduce fwnode_get_mac_address() Marcin Wojtas
2018-01-03 11:27   ` Rafael J. Wysocki
2017-12-31 11:58 ` Marcin Wojtas [this message]
2018-01-03 11:27   ` [net-next: PATCH v2 2/5] device property: Introduce fwnode_get_phy_mode() Rafael J. Wysocki
2017-12-31 11:58 ` [net-next: PATCH v2 3/5] net: mvpp2: simplify maintaining enabled ports' list Marcin Wojtas
2017-12-31 11:58 ` [net-next: PATCH v2 4/5] net: mvpp2: use device_*/fwnode_* APIs instead of of_* Marcin Wojtas
2017-12-31 19:18   ` Andrew Lunn
2018-01-01 10:04     ` Marcin Wojtas
2017-12-31 11:58 ` [net-next: PATCH v2 5/5] net: mvpp2: enable ACPI support in the driver Marcin Wojtas
2017-12-31 19:23   ` Andrew Lunn
2018-01-01 10:10     ` Marcin Wojtas
2018-01-02 13:33       ` Andrew Lunn
2018-01-02 13:55         ` Marcin Wojtas
2018-01-02 14:08           ` Andrew Lunn
2018-01-02 15:05             ` Marcin Wojtas
2018-01-02 17:22               ` Florian Fainelli
2018-01-03 11:16     ` graeme.gregory at linaro.org
2018-01-03 11:19       ` 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=1514721520-18964-3-git-send-email-mw@semihalf.com \
    --to=mw@semihalf.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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).